wd wp Пошук:

Scheme

Scheme — мова праграмавання з сямейства моваў Лісп, створаная Гаем Сцілам і Джэральдам Сасмэнам.

Традыцыйна асноўнай рысай мовы Scheme быў мінімалізм, але стандарт R6RS быў значна большым за папярэднія, а новы стандарт R7RS будзе апісваць два варыянта мовы: «малы» варыянт (уключае толькі найбольш неабходныя ў мове праграмавання рэчы, на аснове якіх можна пабудаваць усе іншыя; ствараецца працоўнай групай 1[1]) і «вялікі» (уключае тое, што неабходна для практычнага выкарыстання мовы; ствараецца працоўнай групай 2[2]).

Фармальным стандартам мовы Scheme з’яўляецца стандарт IEEE 1178. Стандартамі дэ-факта з’яўляюцца дакументы RnRS (англ. Revisedn Report on on the Algorithmic Language Scheme, гэта значыць Палепшаная n раз справаздача пра алгарытмічную мову Scheme), якія ствараюцца спецыяльна абраным камітэтам і прымаюцца ў рэзультаце галасавання. Стандарт R6RS быў прыняты ў 2007 годзе[3]. 20 мая закончыцца галасаванне[4] па «маленькаму» варыянту мовы з R7RS.

Стандарт апісвае толькі неабходны мінімум.

Асноўныя рысы мовы

Як і ўсе мовы з сямейства Ліспаў, Scheme выкарыстоўвае прэфіксную натацыю. У Scheme матэматычныя аператары +, -, /, * разглядаюцца як функцыі і пішуцца перад іх аргументамі. Напрыклад, сума x і 1 запісваецца так:

   (+ x 1)

Выклік функцыі запісваецца такім жа чынам:

   (display "Hello, world")

Для схемы характэрная гомаіканічнасць — код і дадзеныя выглядаюць аднолькава. Выклік функцыі у той жа час з’яўляецца звязаным спісам. Вось так апісваецца спіс з двума элементамі — сімвалічным аб’ектам display і радком "Hello, world":

   '(display "Hello, world")
```

Гомаіканічнасць дазваляе ствараць макрасы — код, які пераўтварае іншы код.


У адрозненне ад іншых ліспаў (у першую чаргу ад [Common Lisp](/Common_Lisp "Common Lisp")), у Схеме ёсць толькі адна прастора імён. Гэта значыць, што імёны зменных і функцый не могуць быць аднолькавымі.



  



Спасылкі
--------


1. [↑](/Scheme#cite_ref-1)  [Charter for working group 1](http://scheme-reports.org/2009/working-group-1-charter.html). Scheme Steering Committee. 2007-08-13.
2. [↑](/Scheme#cite_ref-2)  [Charter for working group 2](http://scheme-reports.org/2010/working-group-2-charter.html). Scheme Steering Committee. 2007-08-13.
3. [↑](/Scheme#cite_ref-3)  [R6RS Ratification Vote](http://www.r6rs.org/ratification/results.html). Scheme Steering Committee. 2007-08-13.
4. [↑](/Scheme#cite_ref-4)  Ліст [extension of voting period](http://lists.scheme-reports.org/pipermail/scheme-reports/2013-May/003401.html) [Архівавана](https://web.archive.org/web/20130721162308/http://lists.scheme-reports.org/pipermail/scheme-reports/2013-May/003401.html) 21 ліпеня 2013. у спіску рассылкі Scheme-reports.`
Тэмы гэтай старонкі (3):
Катэгорыя·Мовы праграмавання паводле алфавіта
Катэгорыя·Мовы праграмавання
Катэгорыя·З’явіліся ў 1975 годзе