Was ist das SS-Dateiformat?
Eine .ss-Datei enthält Scheme-Quellcode - einen minimalistischen Lisp-Dialekt, der durch lexikalisches Scoping, First-Class-Continuations und eine einheitliche S-Expression-Syntax gekennzeichnet ist. Die Dateiendung wurde in den 1990er Jahren durch Chez Scheme und PLT Scheme als konventionelles Suffix für Scheme-Quelldateien populär.
Scheme-Code besteht aus verschachtelten, in Klammern gesetzten Ausdrücken - define, lambda, let, cond - ohne spezielle Syntax für Anweisungs-Terminatoren. Eine .ss-Datei kann mit einer #lang-Direktive beginnen, die den genauen Dialekt spezifiziert, eine von Racket eingeführte Konvention.
Der Sprachstandard wird durch den „Revised Report on the Algorithmic Language Scheme” (RnRS) gepflegt. R7RS (2013) ist der aktuelle Standard; R6RS (2007) fügte ein formales Modulsystem hinzu. Sowohl .ss als auch die verwandte Endung .scm sind in akademischen Kursen weit verbreitet, insbesondere in solchen, die auf *Structure and Interpretation of Computer Programs* basieren.
Als PLT Scheme am 7. Juni 2010 (Version 5.0) in Racket umbenannt wurde, wurde .rkt zur bevorzugten Endung für neuen Racket-Code. Die Endung .ss wird weiterhin von DrRacket und Chez Scheme akzeptiert und bleibt in Lehrbüchern und universitären Lehrplänen, die auf früheren Ausgaben basieren, gebräuchlich.
.ss-Dateien sind einfacher UTF-8-Text ohne binäre Signatur. DrRacket bietet eine REPL, Inline-Dokumentation und Fehlerhervorhebung; MIT Scheme, Guile und Chez Scheme führen .ss-Dateien alle über die Befehlszeile aus.
Sicherheit
RISIKO: LOWReiner Text-Quellcode; kann ohne einen Scheme-Interpreter nicht ausgeführt werden. Code aus nicht vertrauenswürdigen Quellen sollte vor der Ausführung überprüft werden - Scheme kann Dateisystem- und Netzwerkoperationen durchführen.
Formatdetails
kurz gefasst- Sound Script (verschiedene Game-Engines) - Einige Game-Engines und Audio-Tools verwenden .ss für proprietäre Sound-Script- oder Sequenzdateien.
- SpreadSheet-Datei (SuperCalc) - Das veraltete SuperCalc-Tabellenformat verwendete .ss, ist heute jedoch obsolet.
Programme zum Öffnen von SS-Dateien
Technische Details
technische Spezifikation| Syntax-Paradigma | S-Expression (Präfixnotation in Klammern; Lisp-Familie) |
| Zeichenkodierung | UTF-8 oder ASCII; kein binärer Header |
| MIME-Typ | text/x-scheme (auch text/plain, application/x-scheme) |
| Dialekt-Deklaration | Optionale `#lang`-Direktive in der ersten Zeile (Racket-Konvention) |
| Aktueller Sprachstandard | R7RS (2013); R5RS und R6RS ebenfalls weitgehend unterstützt |
| Tail-Call-Anforderung | Echte Endrekursionsoptimierung (Tail-Call Optimization) obligatorisch nach R5RS und später; ermöglicht sichere tiefe Rekursion |
| Continuation-Unterstützung | First-Class-Continuations via `call/cc` (call-with-current-continuation) |
| Modulsystem | R6RS definiert formale Bibliotheks-Syntax; Racket nutzt `#lang` + `require`/`provide` |
| Primäre Implementierungen | Chez Scheme, DrRacket, MIT Scheme, GNU Guile, Chicken Scheme |
| Beziehung zu `.rkt` | PLT Scheme wurde 2010 in Racket umbenannt; `.rkt` wird jetzt bevorzugt; `.ss` ist veraltet, wird aber noch akzeptiert |
| Typische Verwendung | Akademische Lehre (SICP-basierte Kurse), Scripting, eingebettete Scheme-Interpreter |
| Top-Level-Formen | `define`, `lambda`, `let`, `letrec`, `begin`, `import`, `module` |
| Veröffentlicht | 1970s (Scheme language); .ss extension popularised by PLT Scheme / Chez Scheme circa 1990s |
| Neueste Version | R7RS (2013) is the current Scheme standard; Racket 8.x uses .rkt/.ss |
| Offener Standard | Ja · lizenzgebührenfrei |
| Spezifikation | small.r7rs.org |
Community Q&A
von Nutzern gefragtNoch keine Fragen - stellen Sie die erste Frage zu SS-Dateien.