Co to jest format pliku SS?
Plik .ss zawiera kod źródłowy Scheme - minimalistyczny dialekt Lispu charakteryzujący się zasięgiem leksykalnym, kontynuacjami pierwszej klasy i jednolitą składnią S-wyrażeń. Rozszerzenie to zostało spopularyzowane w latach 90. przez Chez Scheme i PLT Scheme jako konwencjonalny przyrostek dla plików źródłowych Scheme.
Kod Scheme składa się z zagnieżdżonych wyrażeń w nawiasach - define, lambda, let, cond - bez specjalnej składni terminatora instrukcji. Plik .ss może zaczynać się od dyrektywy #lang, która określa dokładny dialekt, co jest konwencją wprowadzoną przez Racket.
Standard języka jest utrzymywany poprzez Revised Report on the Algorithmic Language Scheme (RnRS). R7RS (2013) jest obecnym standardem; R6RS (2007) dodał formalny system modułów. Zarówno .ss, jak i powiązane rozszerzenie .scm są szeroko stosowane w kursach akademickich, zwłaszcza tych opartych na *Structure and Interpretation of Computer Programs*.
Kiedy PLT Scheme został przemianowany na Racket 7 czerwca 2010 r. (wersja 5.0), preferowanym rozszerzeniem dla nowego kodu Racket stało się .rkt. Rozszerzenie .ss jest nadal akceptowane przez DrRacket i Chez Scheme i pozostaje powszechne w podręcznikach oraz programach uniwersyteckich opartych na wcześniejszych wydaniach.
Pliki .ss to zwykły tekst UTF-8 bez sygnatury binarnej. DrRacket zapewnia REPL, dokumentację inline i podświetlanie błędów; MIT Scheme, Guile i Chez Scheme uruchamiają pliki .ss z poziomu wiersza poleceń.
Bezpieczeństwo
RYZYKO: LOWKod źródłowy w formacie tekstowym; nie może zostać wykonany bez interpretera Scheme. Kod z niezaufanych źródeł powinien zostać sprawdzony przed uruchomieniem - Scheme może wykonywać operacje na systemie plików i sieci.
Szczegóły formatu
w pigułce- Sound Script (różne silniki gier) - Niektóre silniki gier i narzędzia audio używają .ss dla własnościowych plików skryptów dźwiękowych lub sekwencji.
- Plik arkusza kalkulacyjnego (SuperCalc) - Starszy format arkusza kalkulacyjnego SuperCalc używał .ss, obecnie przestarzały.
Programy otwierające pliki SS
Szczegóły techniczne
specyfikacja| Paradygmat składni | S-wyrażenie (notacja prefiksowa w nawiasach; rodzina Lisp) |
| Kodowanie znaków | UTF-8 lub ASCII; brak nagłówka binarnego |
| Typ MIME | text/x-scheme (również text/plain, application/x-scheme) |
| Deklaracja dialektu | Opcjonalna dyrektywa `#lang` w pierwszej linii (konwencja Racket) |
| Aktualny standard języka | R7RS (2013); R5RS i R6RS są również szeroko wspierane |
| Wymóg wywołania ogonowego | Właściwa optymalizacja wywołań ogonowych obowiązkowa według R5RS i nowszych; umożliwia bezpieczną głęboką rekurencję |
| Obsługa kontynuacji | Kontynuacje pierwszej klasy poprzez `call/cc` (call-with-current-continuation) |
| System modułów | R6RS definiuje formalną składnię bibliotek; Racket używa `#lang` + `require`/`provide` |
| Główne implementacje | Chez Scheme, DrRacket, MIT Scheme, GNU Guile, Chicken Scheme |
| Relacja do .rkt | PLT Scheme zmienił nazwę na Racket w 2010 roku; `.rkt` jest teraz preferowane; `.ss` jest starsze, ale nadal akceptowane |
| Typowe zastosowanie | Nauczanie akademickie (kursy oparte na SICP), skryptowanie, wbudowane interpretery Scheme |
| Formy najwyższego poziomu | `define`, `lambda`, `let`, `letrec`, `begin`, `import`, `module` |
| Wydano | 1970s (Scheme language); .ss extension popularised by PLT Scheme / Chez Scheme circa 1990s |
| Najnowsza wersja | R7RS (2013) is the current Scheme standard; Racket 8.x uses .rkt/.ss |
| Otwarty standard | Tak · bezpłatny (royalty-free) |
| Specyfikacja | small.r7rs.org |
Pytania i odpowiedzi społeczności
pytania użytkownikówBrak pytań - bądź pierwszą osobą, która zapyta o pliki SS.