Hva er SS-filformatet?
En .ss-fil inneholder Scheme kildekode - en minimalistisk dialekt av Lisp preget av leksikalsk rekkevidde (lexical scoping), førsteklasses kontunueringer og uniform S-uttrykk-syntaks. Filendelsen ble popularisert på 1990-tallet av Chez Scheme og PLT Scheme som et konvensjonelt suffiks for Scheme-kildekodefiler.
Scheme-kode består av nøstede uttrykk i parenteser - define, lambda, let, cond - uten spesiell syntaks for å avslutte setninger. En .ss-fil kan starte med et #lang-direktiv som spesifiserer den nøyaktige dialekten, en konvensjon introdusert av Racket.
Språkstandarden vedlikeholdes gjennom «Revised Report on the Algorithmic Language Scheme» (RnRS). R7RS (2013) er den nåværende standarden; R6RS (2007) la til et formelt modulsystem. Både .ss og den relaterte .scm-filendelsen er mye brukt i akademiske kurs, spesielt de som er basert på *Structure and Interpretation of Computer Programs*.
Da PLT Scheme ble omdøpt til Racket den 7. juni 2010 (versjon 5.0), ble den foretrukne filendelsen for ny Racket-kode .rkt. Filendelsen .ss aksepteres fortsatt av DrRacket og Chez Scheme, og er fortsatt vanlig i lærebøker og universitetsplaner bygget rundt tidligere utgaver.
.ss-filer er ren UTF-8-tekst uten binær signatur. DrRacket tilbyr en REPL, innebygd dokumentasjon og feilutheving; MIT Scheme, Guile og Chez Scheme kjører alle .ss-filer fra kommandolinjen.
Sikkerhet og trygghet
RISIKO: LOWKildekode i ren tekst; kan ikke kjøres uten en Scheme-tolker. Kode fra utrolige kilder bør gjennomgås før kjøring - Scheme kan utføre filsystem- og nettverksoperasjoner.
Formatdetaljer
i et nøtteskall- Sound Script (ulike spillmotorer) - Noen spillmotorer og lydverktøy bruker .ss for proprietære lydskript eller sekvensfiler.
- SpreadSheet-fil (SuperCalc) - Det eldre regnearkformatet SuperCalc brukte .ss, nå foreldet.
Programmer som åpner SS-filer
Tekniske detaljer
dyp spesifikasjon| Syntaksparadigme | S-uttrykk (parentes-basert prefiksnotasjon; Lisp-familien) |
| Tegnoding | UTF-8 eller ASCII; ingen binær header |
| MIME-type | text/x-scheme (også text/plain, application/x-scheme) |
| Dialekterklæring | Valgfritt `#lang`-direktiv på første linje (Racket-konvensjon) |
| Gjeldende språkstandard | R7RS (2013); R5RS og R6RS er også vidt støttet |
| Krav til halekall | Korrekt halekall-optimalisering (tail-call optimization) er obligatorisk i henhold til R5RS og senere; muliggjør trygg dyp rekursjon |
| Støtte for kontunueringer | Førsteklasses kontunueringer via `call/cc` (call-with-current-continuation) |
| Modulsystem | R6RS definerer formell biblioteksyntaks; Racket bruker `#lang` + `require`/`provide` |
| Primære implementeringer | Chez Scheme, DrRacket, MIT Scheme, GNU Guile, Chicken Scheme |
| Forhold til .rkt | PLT Scheme ble omdøpt til Racket i 2010; `.rkt` er nå foretrukket; `.ss` er eldre, men fortsatt akseptert |
| Typisk bruk | Akademisk undervisning (SICP-baserte kurs), skripting, innebygde Scheme-tolkere |
| Toppnivå-former | `define`, `lambda`, `let`, `letrec`, `begin`, `import`, `module` |
| Utgitt | 1970s (Scheme language); .ss extension popularised by PLT Scheme / Chez Scheme circa 1990s |
| Siste versjon | R7RS (2013) is the current Scheme standard; Racket 8.x uses .rkt/.ss |
| Åpen standard | Ja · royalty-fri |
| Spesifikasjon | small.r7rs.org |
Spørsmål og svar fra fellesskapet
spurt av brukereIngen spørsmål ennå - vær den første til å spørre om SS-filer.