Wat is het SS-bestandsformaat?
Een .ss bestand bevat Scheme broncode - een minimalistisch dialect van Lisp dat wordt gekenmerkt door lexical scoping, first-class continuations en een uniforme S-expression syntaxis. De extensie werd in de jaren 90 populair gemaakt door Chez Scheme en PLT Scheme als een conventioneel achtervoegsel voor Scheme bronbestanden.
Scheme-code bestaat uit geneste expressies tussen haakjes - define, lambda, let, cond - zonder speciale syntaxis voor het beëindigen van statements. Een .ss bestand kan beginnen met een #lang richtlijn die het exacte dialect specificeert, een conventie geïntroduceerd door Racket.
De taalstandaard wordt onderhouden via de Revised Report on the Algorithmic Language Scheme (RnRS). R7RS (2013) is de huidige standaard; R6RS (2007) voegde een formeel modulesysteem toe. Zowel .ss als de gerelateerde .scm extensie worden veel gebruikt in academische cursussen, vooral die gebaseerd op *Structure and Interpretation of Computer Programs*.
Toen PLT Scheme op 7 juni 2010 (versie 5.0) werd hernoemd naar Racket, werd de voorkeursextensie voor nieuwe Racket-code .rkt. De .ss extensie wordt nog steeds geaccepteerd door DrRacket en Chez Scheme, en blijft gebruikelijk in leerboeken en universitaire curricula die zijn gebaseerd op eerdere edities.
.ss bestanden zijn platte UTF-8 tekst zonder binaire signatuur. DrRacket biedt een REPL, inline documentatie en foutmarkering; MIT Scheme, Guile en Chez Scheme voeren alle .ss bestanden uit vanaf de opdrachtregel.
Beveiliging & veiligheid
RISICO: LOWPlatte tekst broncode; kan niet worden uitgevoerd zonder een Scheme-interpreter. Code van niet-vertrouwde bronnen moet worden gecontroleerd voor uitvoering - Scheme kan bestandssysteem- en netwerkbewerkingen uitvoeren.
Formaatdetails
in een notendop- Sound Script (diverse game engines) - Sommige game engines en audio-tools gebruiken .ss voor eigen sound script- of sequence-bestanden.
- SpreadSheet bestand (SuperCalc) - Legacy SuperCalc spreadsheet-formaat gebruikte .ss, nu verouderd.
Programma's die SS-bestanden openen
Technische details
diepe specificaties| Syntaxisparadigma | S-expression (prefixnotatie tussen haakjes; Lisp-familie) |
| Tekstcodering | UTF-8 of ASCII; geen binaire header |
| MIME-type | text/x-scheme (ook text/plain, application/x-scheme) |
| Dialectverklaring | Optionele `#lang` richtlijn op de eerste regel (Racket-conventie) |
| Huidige taalstandaard | R7RS (2013); R5RS en R6RS worden ook breed ondersteund |
| Tail-call vereiste | Correcte tail-call optimalisatie verplicht volgens R5RS en later; maakt veilige diepe recursie mogelijk |
| Continuation ondersteuning | First-class continuations via `call/cc` (call-with-current-continuation) |
| Modulesysteem | R6RS definieert formele bibliotheeksyntaxis; Racket gebruikt `#lang` + `require`/`provide` |
| Primaire implementaties | Chez Scheme, DrRacket, MIT Scheme, GNU Guile, Chicken Scheme |
| Relatie tot .rkt | PLT Scheme hernoemd naar Racket in 2010; `.rkt` heeft nu de voorkeur; `.ss` is legacy maar wordt nog geaccepteerd |
| Typisch gebruik | Academisch onderwijs (op SICP gebaseerde cursussen), scripting, embedded Scheme-interpreters |
| Top-level vormen | `define`, `lambda`, `let`, `letrec`, `begin`, `import`, `module` |
| Uitgebracht | 1970s (Scheme language); .ss extension popularised by PLT Scheme / Chez Scheme circa 1990s |
| Laatste versie | R7RS (2013) is the current Scheme standard; Racket 8.x uses .rkt/.ss |
| Open standaard | Ja · royaltyvrij |
| Specificatie | small.r7rs.org |
Community V&A
gevraagd door gebruikersNog geen vragen - wees de eerste om iets te vragen over SS-bestanden.