Hvad er SS-filformatet?
En .ss-fil indeholder Scheme kildekode - en minimalistisk dialekt af Lisp kendetegnet ved leksikalsk rækkevidde, first-class continuations og ensartet S-expression syntaks. Filendelsen blev populariseret i 1990'erne af Chez Scheme og PLT Scheme som et konventionelt suffiks for Scheme-kildekodefiler.
Scheme-kode består af indlejrede udtryk i parentes - define, lambda, let, cond - uden speciel syntaks til afslutning af sætninger. En .ss-fil kan begynde med et #lang-direktiv, der angiver den nøjagtige dialekt, en konvention introduceret af Racket.
Sprogstandarden vedligeholdes gennem Revised Report on the Algorithmic Language Scheme (RnRS). R7RS (2013) er den nuværende standard; R6RS (2007) tilføjede et formelt modulsystem. Både .ss og den relaterede .scm-filendelse er meget brugt i akademiske kurser, især dem baseret på *Structure and Interpretation of Computer Programs*.
Da PLT Scheme blev omdøbt til Racket den 7. juni 2010 (version 5.0), blev den foretrukne filendelse for ny Racket-kode .rkt. .ss-filendelsen accepteres stadig af DrRacket og Chez Scheme og forbliver almindelig i lærebøger og universitetsundervisning bygget omkring tidligere udgaver.
.ss-filer er almindelig UTF-8-tekst uden binær signatur. DrRacket tilbyder en REPL, inline-dokumentation og fejlmarkering; MIT Scheme, Guile og Chez Scheme kører alle .ss-filer fra kommandolinjen.
Sikkerhed og tryghed
RISIKO: LOWKildekode i almindelig tekst; kan ikke eksekveres uden en Scheme-fortolker. Kode fra upålidelige kilder bør gennemgås før kørsel - Scheme kan udføre filsystem- og netværksoperationer.
Formatdetaljer
kort fortalt- Sound Script (forskellige spilmotorer) - Nogle spilmotorer og lydværktøjer bruger .ss til proprietære lydscript- eller sekvensfiler.
- SpreadSheet fil (SuperCalc) - Det ældre SuperCalc-regnearksformat brugte .ss, nu forældet.
Programmer der åbner SS-filer
Tekniske detaljer
dyb specifikation| Syntaksparadigme | S-expression (parentes-præfiksnotation; Lisp-familien) |
| Tegnkodning | UTF-8 eller ASCII; ingen binær header |
| MIME-type | text/x-scheme (også text/plain, application/x-scheme) |
| Dialekterklæring | Valgfrit `#lang`-direktiv på første linje (Racket-konvention) |
| Nuværende sprogstandard | R7RS (2013); R5RS og R6RS er også bredt understøttet |
| Tail-call krav | Korrekt tail-call optimering er obligatorisk i henhold til R5RS og senere; muliggør sikker dyb rekursion |
| Understøttelse af continuation | First-class continuations via `call/cc` (call-with-current-continuation) |
| Modulsystem | R6RS definerer formel bibliotekssyntaks; Racket bruger `#lang` + `require`/`provide` |
| Primære implementeringer | Chez Scheme, DrRacket, MIT Scheme, GNU Guile, Chicken Scheme |
| Relation til `.rkt` | PLT Scheme omdøbt til Racket i 2010; `.rkt` er nu foretrukket; `.ss` er forældet, men accepteres stadig |
| Typisk brug | Akademisk undervisning (SICP-baserede kurser), scripting, indlejrede Scheme-fortolkere |
| Top-level former | `define`, `lambda`, `let`, `letrec`, `begin`, `import`, `module` |
| Udgivet | 1970s (Scheme language); .ss extension popularised by PLT Scheme / Chez Scheme circa 1990s |
| Seneste version | R7RS (2013) is the current Scheme standard; Racket 8.x uses .rkt/.ss |
| Åben standard | Ja · royaltyfri |
| Specifikation | small.r7rs.org |
Fællesskabets Q&A
spurgt af brugereIngen spørgsmål endnu - vær den første til at spørge om SS-filer.