Что такое формат файла SS?
Файл .ss содержит исходный код Scheme - минималистичного диалекта Lisp, характеризующегося лексической областью видимости, продолжениями первого класса и единообразным синтаксисом S-выражений. Расширение стало популярным в 1990-х годах благодаря Chez Scheme и PLT Scheme как общепринятый суффикс для файлов исходного кода Scheme.
Код Scheme состоит из вложенных выражений в скобках - define, lambda, let, cond - без специального синтаксиса завершения операторов. Файл .ss может начинаться с директивы #lang, которая указывает конкретный диалект - соглашение, введенное Racket.
Стандарт языка поддерживается через «Revised Report on the Algorithmic Language Scheme» (RnRS). R7RS (2013) является текущим стандартом; R6RS (2007) добавил формальную систему модулей. Как .ss, так и родственное расширение .scm широко используются в академических курсах, особенно основанных на книге «Structure and Interpretation of Computer Programs».
Когда PLT Scheme был переименован в Racket 7 июня 2010 года (версия 5.0), предпочтительным расширением для нового кода Racket стало .rkt. Расширение .ss по-прежнему принимается DrRacket и Chez Scheme и остается распространенным в учебниках и университетских программах, построенных на более ранних изданиях.
Файлы .ss представляют собой обычный текст UTF-8 без бинарной сигнатуры. DrRacket предоставляет REPL, встроенную документацию и подсветку ошибок; MIT Scheme, Guile и Chez Scheme позволяют запускать файлы .ss из командной строки.
Безопасность и защита
РИСК: LOWИсходный код в формате обычного текста; не может быть выполнен без интерпретатора Scheme. Код из ненадежных источников следует проверять перед запуском - Scheme может выполнять операции с файловой системой и сетью.
Детали формата
в двух словах- Sound Script (различные игровые движки) - Некоторые игровые движки и аудиоинструменты используют .ss для проприетарных файлов звуковых скриптов или последовательностей.
- Файл SpreadSheet (SuperCalc) - Устаревший формат электронных таблиц SuperCalc использовал расширение .ss, ныне не используется.
Программы, открывающие файлы SS
Технические подробности
глубокая спецификация| Парадигма синтаксиса | S-выражение (префиксная нотация в скобках; семейство Lisp) |
| Кодировка символов | UTF-8 или ASCII; без бинарного заголовка |
| MIME-тип | text/x-scheme (также text/plain, application/x-scheme) |
| Объявление диалекта | Необязательная директива `#lang` в первой строке (соглашение Racket) |
| Текущий стандарт языка | R7RS (2013); R5RS и R6RS также широко поддерживаются |
| Требование хвостового вызова | Правильная оптимизация хвостового вызова обязательна согласно R5RS и более поздним версиям; обеспечивает безопасную глубокую рекурсию |
| Поддержка продолжений | Продолжения первого класса через `call/cc` (call-with-current-continuation) |
| Система модулей | R6RS определяет формальный синтаксис библиотек; Racket использует `#lang` + `require`/`provide` |
| Основные реализации | Chez Scheme, DrRacket, MIT Scheme, GNU Guile, Chicken Scheme |
| Связь с `.rkt` | PLT Scheme переименован в Racket в 2010 году; `.rkt` теперь предпочтительнее; `.ss` является устаревшим, но все еще принимается |
| Типичное использование | Академическое обучение (курсы на базе SICP), написание скриптов, встроенные интерпретаторы Scheme |
| Формы верхнего уровня | `define`, `lambda`, `let`, `letrec`, `begin`, `import`, `module` |
| Выпущен | 1970s (Scheme language); .ss extension popularised by PLT Scheme / Chez Scheme circa 1990s |
| Последняя версия | R7RS (2013) is the current Scheme standard; Racket 8.x uses .rkt/.ss |
| Открыть стандартное | Да · без роялти |
| Спецификация | small.r7rs.org |
Вопросы и ответы сообщества
спрошено пользователямиВопросов пока нет - станьте первым, кто спросит о файлах SS.