easimonenko Evgeny Simonenko

Краткий обзор реализаций Scheme

23 May 2022 |  Review  |  Scheme   Functional Programming  

Наверное все, кто изучал информатику и вычислительную технику в университете, так или иначе, в курсе функционального программирования, например, столкнулся с Scheme – языком функционального программирования, произошедшем от Lisp, и известным как язык со скобками, то есть где всё является так называемыми S-выражениями. Скорее всего это был MIT/GNU Scheme или Racket. Но на самом деле реализаций Scheme великое множество. В этой статье собраны в таблицы различные реализации Scheme, указаны поддерживаемые ими версии языка, является ли реализация компилятором или интерпретатором, и другая информация.

Самые значимые реализации

Название Компилятор Интерпретатор Стандарт Написано на Лицензия Репозиторий Число звёзд на GitHub Последняя версия Версия в Ubuntu 22.04 LTS Название пакета в Ubuntu Версия в Nix Название пакета в Nix Версия в Guix Название пакета в Guix
MIT/GNU Scheme + + R7RS Scheme GNU General Public License v2.0     12.1 11.2 mit-scheme 12.1 mitscheme 11.2 mit-scheme
SCM + + R5RS C, Scheme GNU General Public License v3.0     5f3 5f3 scm     5f3 scm
Guile + + R6RS C GNU General Public License v3.0     3.0.9 3.0.7 guile-3.0 3.0.9 guile 3.0.9 guile
ChezScheme + + R6RS Scheme, C Apache License 2.0 cisco/chezscheme 6780 9.6.4 9.5.4 chezscheme 9.6.4 chez 9.5.8 chez-scheme
Racket - + R6RS Scheme, C MIT License racket/racket 4635 8.11.1 8.2 racket 8.10 racket 8.11.1 racket
CHICKEN + - R5RS Scheme BSD License (3-Clause)     5.3.0 5.2.0 chicken-bin 5.3.0 chicken 5.3.0 chicken
Scheme 48 - + R5RS C, Scheme BSD License (3-Clause)     1.9.2 1.9.2 scheme48 1.9.2 scheme48 1.9.2 scheme48
Gambit + + R5RS C, Scheme Apache License 2.0 gambit/gambit 1225 4.9.5 4.9.3 gambc 4.9.5 gambit 4.9.5 gambit-c
Chibi-Scheme - + R7RS Scheme, C BSD License (3-Clause) ashinn/chibi-scheme 1145 0.10 0.9.1 chibi-scheme 0.10 chibi 0.10 chibi-scheme
Gerbil + + R7RS Scheme GNU Lesser General Public License v2.1 vyzo/gerbil 1047 0.18.1     0.18 gerbil 0.17.0 gerbil
Cyclone Scheme + + R7RS Scheme, C MIT License justinethier/cyclone 788 0.35.0     0.34.0 cycle-scheme    
Gauche - + R7RS Scheme, C BSD License (3-Clause) shirok/Gauche 755 0.9.13 0.9.10 gauche 0.9.10 gauche 0.9.12 gauche
BiwaScheme - + R7RS JavaScript MIT License biwascheme/biwascheme 713 0.8.0            

Другие реализации

Название Компилятор Интерпретатор Стандарт Написано на Лицензия Репозиторий Число звёзд на GitHub Последняя версия Версия в Ubuntu 22.04 LTS Название пакета в Ubuntu Версия в Nix Название пакета в Nix Версия в Guix Название пакета в Guix
Stalin + -   Scheme, C GNU General Public License v2.0     0.11 0.11 stalin 0.11 stalin 0.11 stalin
SISC - + R5RS Java Mozilla Public License Version 1.1     1.16.6 1.16.6 sisc        
Scheme 9 from Empty Space - + R4RS C, Scheme Public Domain     2018.12.05 2018.12.05 scheme9        
Larceny Scheme + + R7RS Scheme, C   larcenists/larceny 198 1.3            
Vicare + - R6RS Scheme, C GNU General Public License v3.0 marcomaggi/vicare 196 0.4.1            
Picobit + +   C, Racket GNU General Public License v3.0 stamourv/picobit 177              
Mosh     R6RS Rust, Scheme BSD License (2-Clause) higepon/mosh 172 0.2.9            
Bigloo + + R5RS Scheme, C GNU General Public License v2.0 manuel-serrano/bigloo 120 4.5a-1     4.4b bigloo 4.3g bigloo
scheme2c + + R4RS C   barak/scheme2c 76 2012.10.14 2012.10.14 scheme2c        
Ikarus + - R6RS C, Scheme GNU General Public License v3.0     0.0.3 0.0.3 ikarus        
Elk - +   C       3.99.8 3.99.8 elk        
STklos     R7RS C, Scheme GNU General Public License v2.0 egallesio/STklos 64 2.0         1.70 stklos
Kawa + +   Java, Scheme MIT License kashell/Kawa 51 (GitLab) 3.1.1         3.1.1 kawa
Ypsilon     R7RS Scheme, C++ BSD License (2-Clause) fujita-y/ypsilon 47 2.0.8            
Sagittarius Scheme     R7RS Scheme, C BSD License (2-Clause) ktakashi/sagittarius-scheme 42 0.9.10     0.9.10 sagittarius-scheme    
SigScheme - + R5RS Scheme, C BSD License (3-Clause) uim/sigscheme 23 0.9.1 0.9.1 sigscheme        
TinyScheme - + R5RS           1.42 tinyscheme 1.42 tinyscheme 1.42 tinyscheme
RScheme +     Scheme, C       0.7.3.4            

Библиотеки, разное

Название Назначение Стандарт Написано на Лицензия Репозиторий Число звёзд на GitHub Последняя версия Версия в Ubuntu 22.04 LTS Название пакета в Ubuntu
SLIB Библиотека   Scheme Public Domain     3b7 3b6 slib
Nanopass Framework DSL для создания компиляторов   Scheme MIT License nanopass/nanopass-framework-scheme 452 1.9.2 1.9.2 r6rs-nanopass-dev
Scsh Оболочка (Shell) на базе Scheme 48 R5RS Scheme, C BSD License (3-Clause) scheme/scsh 356 0.6.7    
Scheme-to-C Пример неполного компилятора Scheme, построенного по технологии Nanopass   Scheme MIT License akeep/scheme-to-c 331      
stex Конвертация кода на Scheme в LaTeX   Scheme MIT License dybvig/stex 84 1.2.2 1.2.1 stex
Gerbil Utilities Коллекция дополнительных модулей для Gerbil R7RS Scheme GNU Lesser General Public License v2.1 fare/gerbil-utils 41 0.2    

Обновления

Обновление от 4 августа 2022

Обновление от 14 ноября 2022

Обновление от 19 ноября 2022

Обновление от 23 ноября 2022

Обновление от 7 мая 2023

Обновление от 6 января 2024

(c) Симоненко Евгений, 2022, 2023, 2024