Che cos'è il formato di file SS?
Un file .ss contiene codice sorgente Scheme - un dialetto minimalista del Lisp caratterizzato da scoping lessicale, continuazioni di prima classe e una sintassi uniforme basata su S-expression. L'estensione è stata resa popolare negli anni '90 da Chez Scheme e PLT Scheme come suffisso convenzionale per i file sorgente Scheme.
Il codice Scheme consiste in espressioni nidificate tra parentesi - define, lambda, let, cond - senza una sintassi speciale per il terminatore di istruzioni. Un file .ss può iniziare con una direttiva #lang che specifica l'esatto dialetto, una convenzione introdotta da Racket.
Lo standard del linguaggio è mantenuto attraverso il Revised Report on the Algorithmic Language Scheme (RnRS). R7RS (2013) è lo standard attuale; R6RS (2007) ha aggiunto un sistema di moduli formale. Sia l'estensione .ss che la correlata .scm sono ampiamente utilizzate nei corsi accademici, specialmente quelli basati su *Structure and Interpretation of Computer Programs*.
Quando PLT Scheme è stato rinominato Racket il 7 giugno 2010 (versione 5.0), l'estensione preferita per il nuovo codice Racket è diventata .rkt. L'estensione .ss è ancora accettata da DrRacket e Chez Scheme, e rimane comune nei libri di testo e nei programmi universitari basati sulle edizioni precedenti.
I file .ss sono semplice testo UTF-8 senza firma binaria. DrRacket fornisce una REPL, documentazione in linea ed evidenziazione degli errori; MIT Scheme, Guile e Chez Scheme eseguono tutti i file .ss dalla riga di comando.
Sicurezza e incolumità
RISCHIO: LOWCodice sorgente in testo semplice; non può essere eseguito senza un interprete Scheme. Il codice proveniente da fonti non attendibili deve essere revisionato prima dell'esecuzione - Scheme può eseguire operazioni sul file system e sulla rete.
Dettagli del formato
in sintesi- Sound Script (vari motori di gioco) - Alcuni motori di gioco e strumenti audio utilizzano .ss per file proprietari di script sonori o sequenze.
- File SpreadSheet (SuperCalc) - Il formato di foglio di calcolo legacy SuperCalc utilizzava .ss, ora obsoleto.
Programmi che aprono file SS
Dettagli tecnici
specifiche approfondite| Paradigma della sintassi | S-expression (notazione prefissa tra parentesi; famiglia Lisp) |
| Codifica dei caratteri | UTF-8 o ASCII; nessun header binario |
| Tipo MIME | text/x-scheme (anche text/plain, application/x-scheme) |
| Dichiarazione del dialetto | Direttiva `#lang` opzionale sulla prima riga (convenzione Racket) |
| Standard attuale del linguaggio | R7RS (2013); anche R5RS e R6RS sono ampiamente supportati |
| Requisito tail-call | Ottimizzazione della chiamata in coda (tail-call) obbligatoria secondo R5RS e successivi; consente una ricorsione profonda sicura |
| Supporto alle continuazioni | Continuazioni di prima classe tramite `call/cc` (call-with-current-continuation) |
| Sistema di moduli | R6RS definisce una sintassi formale per le librerie; Racket usa `#lang` + `require`/`provide` |
| Implementazioni primarie | Chez Scheme, DrRacket, MIT Scheme, GNU Guile, Chicken Scheme |
| Relazione con .rkt | PLT Scheme rinominato Racket nel 2010; `.rkt` è ora preferito; `.ss` è legacy ma ancora accettato |
| Uso tipico | Insegnamento accademico (corsi basati su SICP), scripting, interpreti Scheme incorporati |
| Forme di alto livello | `define`, `lambda`, `let`, `letrec`, `begin`, `import`, `module` |
| Rilasciato | 1970s (Scheme language); .ss extension popularised by PLT Scheme / Chez Scheme circa 1990s |
| Ultima versione | R7RS (2013) is the current Scheme standard; Racket 8.x uses .rkt/.ss |
| Standard aperto | Sì · royalty-free |
| Specifica | small.r7rs.org |
Domande e risposte della community
chiesto dagli utentiAncora nessuna domanda - sii il primo a chiedere informazioni sui file SS.