What is the SS file format?
A .ss file contains Scheme source code - a minimalist dialect of Lisp characterized by lexical scoping, first-class continuations, and uniform S-expression syntax. The extension was popularized in the 1990s by Chez Scheme and PLT Scheme as a conventional suffix for Scheme source files.
Scheme code consists of nested parenthesized expressions - define, lambda, let, cond - with no special statement-terminator syntax. A .ss file may begin with a #lang directive that specifies the exact dialect, a convention introduced by Racket.
The language standard is maintained through the Revised Report on the Algorithmic Language Scheme (RnRS). R7RS (2013) is the current standard; R6RS (2007) added a formal module system. Both .ss and the related .scm extension are widely used in academic courses, especially those based on *Structure and Interpretation of Computer Programs*.
When PLT Scheme was renamed Racket on June 7, 2010 (version 5.0), the preferred extension for new Racket code became .rkt. The .ss extension is still accepted by DrRacket and Chez Scheme, and remains common in textbooks and university curricula built around earlier editions.
.ss files are plain UTF-8 text with no binary signature. DrRacket provides a REPL, inline documentation, and error highlighting; MIT Scheme, Guile, and Chez Scheme all run .ss files from the command line.
Security & safety
RISK: LOWPlain text source code; cannot execute without a Scheme interpreter. Code from untrusted sources should be reviewed before running - Scheme can perform file system and network operations.
Format details
in a nutshell- Sound Script (various game engines) - Some game engines and audio tools use .ss for proprietary sound script or sequence files.
- SpreadSheet file (SuperCalc) - Legacy SuperCalc spreadsheet format used .ss, now obsolete.
Programs that open SS files
Technical details
deep spec| Syntax paradigm | S-expression (parenthesized prefix notation; Lisp family) |
| Character encoding | UTF-8 or ASCII; no binary header |
| MIME type | text/x-scheme (also text/plain, application/x-scheme) |
| Dialect declaration | Optional `#lang` directive on first line (Racket convention) |
| Current language standard | R7RS (2013); R5RS and R6RS also widely supported |
| Tail-call requirement | Proper tail-call optimization mandatory per R5RS and later; enables safe deep recursion |
| Continuation support | First-class continuations via `call/cc` (call-with-current-continuation) |
| Module system | R6RS defines formal library syntax; Racket uses `#lang` + `require`/`provide` |
| Primary implementations | Chez Scheme, DrRacket, MIT Scheme, GNU Guile, Chicken Scheme |
| Relation to `.rkt` | PLT Scheme renamed Racket in 2010; `.rkt` is now preferred; `.ss` is legacy but still accepted |
| Typical use | Academic teaching (SICP-based courses), scripting, embedded Scheme interpreters |
| Top-level forms | `define`, `lambda`, `let`, `letrec`, `begin`, `import`, `module` |
| Released | 1970s (Scheme language); .ss extension popularised by PLT Scheme / Chez Scheme circa 1990s |
| Latest version | R7RS (2013) is the current Scheme standard; Racket 8.x uses .rkt/.ss |
| Open standard | Yes · royalty-free |
| Specification | small.r7rs.org |
Community Q&A
asked by usersNo questions yet - be the first to ask about SS files.