O que é o formato de ficheiro SS?
Um arquivo .ss contém código-fonte Scheme - um dialeto minimalista de Lisp caracterizado por escopo léxico, continuações de primeira classe e sintaxe de S-expression uniforme. A extensão foi popularizada nos anos 1990 pelo Chez Scheme e PLT Scheme como um sufixo convencional para arquivos de origem Scheme.
O código Scheme consiste em expressões entre parênteses aninhadas - define, lambda, let, cond - sem sintaxe especial de terminador de instrução. Um arquivo .ss pode começar com uma diretiva #lang que especifica o dialeto exato, uma convenção introduzida pelo Racket.
O padrão da linguagem é mantido através do Revised Report on the Algorithmic Language Scheme (RnRS). O R7RS (2013) é o padrão atual; o R6RS (2007) adicionou um sistema de módulos formal. Tanto a extensão .ss quanto a relacionada .scm são amplamente utilizadas em cursos acadêmicos, especialmente aqueles baseados em *Structure and Interpretation of Computer Programs*.
Quando o PLT Scheme foi renomeado para Racket em 7 de junho de 2010 (versão 5.0), a extensão preferida para o novo código Racket tornou-se .rkt. A extensão .ss ainda é aceita pelo DrRacket e Chez Scheme, e permanece comum em livros didáticos e currículos universitários construídos em torno de edições anteriores.
Arquivos .ss são texto simples UTF-8 sem assinatura binária. O DrRacket fornece um REPL, documentação em linha e realce de erros; MIT Scheme, Guile e Chez Scheme executam arquivos .ss a partir da linha de comando.
Segurança e proteção
RISCO: LOWCódigo-fonte em texto simples; não pode ser executado sem um interpretador Scheme. O código de fontes não confiáveis deve ser revisado antes da execução - o Scheme pode realizar operações de sistema de arquivos e rede.
Detalhes do formato
em resumo- Sound Script (vários motores de jogo) - Alguns motores de jogo e ferramentas de áudio usam .ss para arquivos proprietários de script de som ou sequência.
- Arquivo SpreadSheet (SuperCalc) - O formato de planilha SuperCalc legado usava .ss, agora obsoleto.
Programas que abrem arquivos SS
Detalhes técnicos
especificação profunda| Paradigma de sintaxe | S-expression (notação de prefixo entre parênteses; família Lisp) |
| Codificação de caracteres | UTF-8 ou ASCII; sem cabeçalho binário |
| Tipo MIME | text/x-scheme (também text/plain, application/x-scheme) |
| Declaração de dialeto | Diretiva `#lang` opcional na primeira linha (convenção Racket) |
| Padrão de linguagem atual | R7RS (2013); R5RS e R6RS também amplamente suportados |
| Requisito de chamada de cauda | Otimização de chamada de cauda adequada obrigatória conforme R5RS e posteriores; permite recursão profunda segura |
| Suporte a continuação | Continuações de primeira classe via `call/cc` (call-with-current-continuation) |
| Sistema de módulos | R6RS define sintaxe de biblioteca formal; Racket usa `#lang` + `require`/`provide` |
| Principais implementações | Chez Scheme, DrRacket, MIT Scheme, GNU Guile, Chicken Scheme |
| Relação com .rkt | PLT Scheme renomeado para Racket em 2010; `.rkt` é agora preferido; `.ss` é legado, mas ainda aceito |
| Uso típico | Ensino acadêmico (cursos baseados em SICP), scripting, interpretadores Scheme incorporados |
| Formas de nível superior | `define`, `lambda`, `let`, `letrec`, `begin`, `import`, `module` |
| Lançado | 1970s (Scheme language); .ss extension popularised by PLT Scheme / Chez Scheme circa 1990s |
| Versão mais recente | R7RS (2013) is the current Scheme standard; Racket 8.x uses .rkt/.ss |
| Padrão aberto | Sim · livre de royalties |
| Especificação | small.r7rs.org |
Perguntas e Respostas da Comunidade
perguntado por usuáriosAinda não há perguntas - seja o primeiro a perguntar sobre arquivos SS.