Logo języka | |
Pojawienie się |
1970 |
---|---|
Paradygmat | |
Typowanie | |
Aktualna wersja stabilna |
R7RS-small |
Twórca |
Guy L. Steele Jr., Gerald Jay Sussman |
Platforma sprzętowa | |
Platforma systemowa | |
Strona internetowa |
Scheme – funkcyjny język programowania, dialekt (wariant) Lispu, który został zaprojektowany na MIT przez Guy L. Steele'a i Geralda Jaya Sussmana w latach 70. Jego główną ideą jest minimalizm, co oznacza, że sam język zawiera jedynie podstawowe mechanizmy, a na ich bazie, już z użyciem Scheme, tworzone są bardziej zaawansowane rozwiązania. Scheme nie jest czysto funkcyjnym językiem programowania, co oznacza, że dopuszczalne są efekty uboczne obliczeń. Scheme umożliwia również tworzenie programów w stylu proceduralnym i obiektowym. Jest to język o dynamicznym systemie typów. Zarządzanie pamięcią jest w pełni automatyczne. Scheme był pierwszym dialektem Lispu, który używał zmiennych leksykalnych i pierwszym, który wymagał od implementacji optymalizacji wywołań z rekurencją ogonową.
Scheme jest ustandaryzowany przez organizację IEEE oraz przez specyfikacje Revisedn Report on the Algorithmic Language Scheme (RnRS)[1], z których najczęściej implementowane są R5RS z 1998 roku, R6RS z 2007 roku oraz najnowszy R7RS (small) z 2013 roku. Przy czym wersja R6RS ma mieszane opinie w gronie programistów używających języka Scheme. Głównym powodem negatywnych opinii na temat tej specyfikacji jest jej duża objętość[2]. Dodatkowo istnieją oficjalne rozszerzenia języka tzw. SRFI (ang. Scheme Request For Implementation)[3]. Niektóry SRFI stały się częścią standardów RnRS.