Vad är filformatet SS?
En .ss-fil innehåller Scheme källkod - en minimalistisk dialekt av Lisp som kännetecknas av lexikal räckvidd (lexical scoping), förstklassiga fortsättningar (first-class continuations) och enhetlig S-uttryckssyntax. Filändelsen populariserades under 1990-talet av Chez Scheme och PLT Scheme som ett konventionellt suffix för Scheme-källkodsfiler.
Scheme-kod består av nästlade parentesuttryck - define, lambda, let, cond - utan någon speciell syntax för att avsluta satser. En .ss-fil kan börja med ett #lang-direktiv som anger den exakta dialekten, en konvention som introducerades av Racket.
Språkstandarden underhålls genom Revised Report on the Algorithmic Language Scheme (RnRS). R7RS (2013) är den nuvarande standarden; R6RS (2007) lade till ett formellt modulsystem. Både .ss och den relaterade .scm-filändelsen används i stor utsträckning i akademiska kurser, särskilt de som baseras på *Structure and Interpretation of Computer Programs*.
När PLT Scheme bytte namn till Racket den 7 juni 2010 (version 5.0), blev den föredragna filändelsen för ny Racket-kod .rkt. Filändelsen .ss accepteras fortfarande av DrRacket och Chez Scheme, och förblir vanlig i läroböcker och universitetsplaner byggda kring tidigare utgåvor.
.ss-filer är vanlig UTF-8-text utan binär signatur. DrRacket tillhandahåller en REPL, inline-dokumentation och felmarkering; MIT Scheme, Guile och Chez Scheme kör alla .ss-filer från kommandoraden.
Säkerhet & trygghet
RISK: LOWKällkod i klartext; kan inte köras utan en Scheme-tolk. Kod från okända källor bör granskas före körning - Scheme kan utföra filsystems- och nätverksoperationer.
Formatdetaljer
i ett nötskal- Sound Script (olika spelmotorer) - Vissa spelmotorer och ljudverktyg använder .ss för proprietära ljudskript eller sekvensfiler.
- SpreadSheet-fil (SuperCalc) - Det äldre kalkylbladsformatet SuperCalc använde .ss, numera föråldrat.
Program som öppnar SS-filer
Tekniska detaljer
djup specifikation| Syntaxparadigm | S-uttryck (parentetisk prefixnotation; Lisp-familjen) |
| Teckenkodning | UTF-8 eller ASCII; inget binärt huvud |
| MIME-typ | text/x-scheme (även text/plain, application/x-scheme) |
| Dialektdeklaration | Valfritt `#lang`-direktiv på första raden (Racket-konvention) |
| Nuvarande språkstandard | R7RS (2013); R5RS och R6RS stöds också i stor utsträckning |
| Krav på svansanrop | Korrekt optimering av svansanrop (tail-call optimization) är obligatoriskt enligt R5RS och senare; möjliggör säker djup rekursion |
| Stöd för fortsättningar | Förstklassiga fortsättningar via `call/cc` (call-with-current-continuation) |
| Modulsystem | R6RS definierar formell bibliotekssyntax; Racket använder `#lang` + `require`/`provide` |
| Primära implementeringar | Chez Scheme, DrRacket, MIT Scheme, GNU Guile, Chicken Scheme |
| Relation till .rkt | PLT Scheme bytte namn till Racket 2010; `.rkt` föredras nu; `.ss` är äldre men accepteras fortfarande |
| Typisk användning | Akademisk undervisning (SICP-baserade kurser), skripting, inbäddade Scheme-tolkar |
| Toppnivåformer | `define`, `lambda`, `let`, `letrec`, `begin`, `import`, `module` |
| Släppt | 1970s (Scheme language); .ss extension popularised by PLT Scheme / Chez Scheme circa 1990s |
| Senaste version | R7RS (2013) is the current Scheme standard; Racket 8.x uses .rkt/.ss |
| Öppen standard | Ja · royaltyfri |
| Specifikation | small.r7rs.org |
Frågor & svar
frågat av användareInga frågor än - bli den första att fråga om SS-filer.