Guile: различия между версиями

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
[отпатрулированная версия][отпатрулированная версия]
Содержимое удалено Содержимое добавлено
История: опечатка,повтор
Метки: с мобильного устройства из мобильной версии
Спасено источников — 1, отмечено мёртвыми — 0. Сообщить об ошибке. См. FAQ.) #IABot (v2.0.9.5
 
(не показано 13 промежуточных версий 11 участников)
Строка 1: Строка 1:
{{Infobox Software|name=GNU Guile|logo=GNU-Guile-logo.svg|caption=Gnu/Guile new design logo|developer=[[GNU Project]]|released={{Start date and age|1993}}{{sfn|Blandy|1997|p=102}}|frequently updated=yes|operating system=[[Linux]], [[BSD]], [[MS Windows]] (посредством [[MinGW]] или [[Cygwin]])|genre=[[Язык программирования]]|license=[[GNU Lesser General Public License]]|website={{URL|https://www.gnu.org/software/guile/}}|standard=R5RS, частично R6RS}}
{{Infobox Software|name=GNU Guile|logo=GNU-Guile-logo.svg|caption=Gnu/Guile new design logo|developer=[[GNU Project]]|released={{Start date and age|1993}}{{sfn|Blandy|1998|p=102}}|frequently updated=yes|operating system=[[Linux]], [[BSD]], [[MS Windows]] (посредством [[MinGW]] или [[Cygwin]])|genre=[[Язык программирования]]|license=[[GNU Lesser General Public License]]|website={{URL|https://www.gnu.org/software/guile/}}|standard=R5RS, частично R6RS}}
'''GNU Guile''' — реализация языка программирования [[Scheme]], рекомендованная в качестве [[Скриптовые языки|скриптового языка]], встраиваемого в программные продукты проекта [[GNU]]<ref>{{Книга|автор=Sandeep Koranne|часть=1.6.9. Scheme|заглавие=Handbook of Open Source Tools|ссылка=https://books.google.ru/books?id=ukXrNh2g6fQC&pg=PA27|ответственный=|издание=|место=|издательство=Springer Science & Business Media|год=2010-10-17|страницы=|страниц=505|isbn=9781441977199}}</ref>.
'''GNU Guile''' — реализация языка программирования [[Scheme]], рекомендованная в качестве [[Скриптовые языки|скриптового языка]], встраиваемого в программные продукты проекта [[GNU]]<ref>{{Книга|автор=Sandeep Koranne|часть=1.6.9. Scheme|заглавие=Handbook of Open Source Tools|ссылка=https://books.google.ru/books?id=ukXrNh2g6fQC&pg=PA27|ответственный=|издание=|место=|издательство=Springer Science & Business Media|год=2010-10-17|страницы=|страниц=505|isbn=9781441977199|archivedate=2016-11-01|archiveurl=https://web.archive.org/web/20161101101746/https://books.google.ru/books?id=ukXrNh2g6fQC&pg=PA27}}</ref>. Используется в таких продуктах, как [[Guix System Distribution|Guix]], [[GNU Debugger|GDB]], [[GnuCash]] и [[LilyPond]].


Распространяется на условиях [[LGPL]] и реализует стандарт R5RS<ref name=":0" />. С R6RS имеется ряд несовместимостей, однако [[стандартная библиотека]] Scheme, определённая этим стандартом, реализована<ref>{{Cite web|url=https://www.gnu.org/software/guile/manual/html_node/R6RS-Support.html#R6RS-Support|title=Guile Reference Manual: R6RS Support|publisher=www.gnu.org|accessdate=2016-10-31|archive-date=2016-11-01|archive-url=https://web.archive.org/web/20161101102158/https://www.gnu.org/software/guile/manual/html_node/R6RS-Support.html#R6RS-Support|deadlink=no}}</ref>. Язык доступен в виде готового к работе интерпретатора <code>guile</code>, с поддержкой интерактивного режима<ref name=":0" /> и подключаемой к приложениям, в которые нужно встроить язык сценариев, библиотеки <code>libguile</code> (в [[Дистрибутив Linux|линукс-дистрибутивах]] обычно устанавливаемой в виде пакета <code>guile-devel</code><ref name=":0" />).
В частности, он используется в таких продуктах, как [[GnuCash]] и [[LilyPond]].


Создан в начале 1990-х годов как альтернатива языку [[Tcl]], набиравшему популярность в качестве встраиваемого скриптового языка, но не одобренного [[Столлман, Ричард Мэттью|Столлманом]]<ref>{{Cite web|url=http://vanderburg.org/old_pages/Tcl/war/|title=The Tcl War|publisher=Glenn Vanderburg|accessdate=2016-10-31|archive-date=2016-10-08|archive-url=https://web.archive.org/web/20161008094751/http://vanderburg.org/old_pages/Tcl/war/|deadlink=no}}</ref>, который посчитал Tcl недостаточно мощным, а необходимость знакомства с новым [[Синтаксис (программирование)|синтаксисом]], хоть и построенным по близким к [[лисп]]у принципам, но заметно отличающегося — излишней. Взамен он предложил использовать интерпретатор Scheme. Подходящего интерпретатора не было, его взялся реализовать Том Лорд ({{Lang-en|Tom Lord}}). В качестве основы он использовал {{Iw|SIOD}} (Scheme in One Day) и ядро {{Iw|SCM (реализация Scheme)|SCM|4=SCM (Scheme implementation)}}, написанное Обри Джаффером ({{Lang-en|Aubrey Jaffer}}). Название Guile предложил в ходе обсуждения в соответствующей [[Usenet]]-[[Группа новостей|группе]] Ли Томас ({{lang-en2|Lee Thomas}}) как [[аббревиатура|аббревиатуру]] от {{lang-en|GNU’s Ubiquitous Interactive Language for Extension}} (повсеместно применяемый интерактивный язык для расширений GNU), и, в то же время, {{lang-en|guile}} дословно переводится как «обман; вероломство, коварство; хитрость, уловка»<ref name=":0">{{Cite web|url=https://www.ibm.com/developerworks/ru/library/os-Guile_1/|title=Guile — универсальный инструмент программирования. Часть 1. Как с ним обращаться|author=Алексей Снастин|work=[[DeveloperWorks]]|date=2010-08-11|publisher=[[IBM]]|accessdate=2016-10-31|archive-date=2016-11-01|archive-url=https://web.archive.org/web/20161101041224/https://www.ibm.com/developerworks/ru/library/os-Guile_1/|deadlink=no}}</ref>.
== Особенности ==
Guile распространяется на условиях [[LGPL]] и реализует стандарт R5RS<ref name=":0" />. С R6RS имеется ряд несовместимостей, однако [[стандартная библиотека]] Scheme, определённая этим стандартом, реализована<ref>{{Cite web|url=https://www.gnu.org/software/guile/manual/html_node/R6RS-Support.html#R6RS-Support|title=Guile Reference Manual: R6RS Support|publisher=www.gnu.org|accessdate=2016-10-31}}</ref>.

Язык доступен в виде готового к работе интерпретатора <code>guile</code>, с поддержкой интерактивного режима<ref name=":0" /> и подключаемой к приложениям, в которые нужно встроит язык сценариев, библиотеки <code>libguile</code> (в [[Дистрибутив Linux|линукс-дистрибутивах]] обычно устанавливаемой в виде пакета <code>guile-devel</code><ref name=":0" />).

== История ==
Guile был создан в начале 1990-х годов, в пику языку [[Tcl]], набиравшему популярность в качестве встраиваемого скриптового языка, но не одобренного [[Столлман]]ом<ref>{{Cite web|url=http://vanderburg.org/old_pages/Tcl/war/|title=The Tcl War|publisher=Glenn Vanderburg|accessdate=2016-10-31}}</ref>, который посчитал Tcl недостаточно мощным, а необходимость знакомства с новым [[Синтаксис (программирование)|синтаксисом]], хоть и построенным по близким к [[лисп]]<nowiki/>у принципам, но заметно отличающегося — излишней. Взамен он предложил использовать интерпретатор Scheme. Подходящего интерпретатор взялся реализовать Том Лорд ({{Lang-en|Tom Lord}}). В качестве основы он использовал {{Iw|SIOD}} (Scheme in One Day) и ядро {{Iw|SCM (реализация Scheme)|SCM|4=SCM (Scheme implementation)}}, написанное Обри Джаффером ({{Lang-en|Aubrey Jaffer}}). Название Guile предложил в ходе обсуждения в соответствующей [[Usenet]]-[[Группа новостей|группе]] Ли Томас (Lee Thomas). Это [[аббревиатура]], раскрываемая как GNU’s Ubiquitous Interactive Language for Extension повсеместно применяемый интерактивный язык для расширений GNU, и, в то же время, слово «guile» дословно переводится как «обман; вероломство, коварство; хитрость, уловка»<ref name=":0">{{Cite web|url=https://www.ibm.com/developerworks/ru/library/os-Guile_1/|title=Guile — универсальный инструмент программирования. Часть 1. Как с ним обращаться|author=Алексей Снастин|work=[[DeveloperWorks]]|date=2010-08-11|publisher=[[IBM]]|accessdate=2016-10-31}}</ref>.

== См. также ==
* [[GNU]]
* [[Scheme]]
* [[Tcl]]
* [[Lua]]


== Примечания ==
== Примечания ==
{{Примечания|2}}
{{Примечания}}


== Литература ==
== Литература ==
* {{Книга|автор=Jim Blandy|часть=Guile: An Interpreter Core for Complete Applications|заглавие=Handbook of Programming Languages: Functional and logic programming languages|ссылка=https://books.google.ru/books/about/Handbook_of_Programming_Languages_Functi.html?id=9IdGAAAAYAAJ&redir_esc=y|ответственный=[[Peter H. Salus]]|издание=|место=|издательство=Macmillan Technical Pub.|год=1998|страницы=87–104|страниц=280|isbn=9781578700110|ref=Blandy}}
* {{Книга|автор=Jim Blandy|часть=Guile: An Interpreter Core for Complete Applications|заглавие=Handbook of Programming Languages: Functional and logic programming languages|ссылка=https://books.google.ru/books/about/Handbook_of_Programming_Languages_Functi.html?id=9IdGAAAAYAAJ&redir_esc=y|ответственный=[[Peter H. Salus]]|издание=|место=|издательство=Macmillan Technical Pub.|год=1998|страницы=87—104|страниц=280|isbn=9781578700110|ref=Blandy}}
* {{Cite web|url=https://www.ibm.com/developerworks/ru/library/os-Guile_1/|title=Guile — универсальный инструмент программирования. Часть 1. Как с ним обращаться|author=Алексей Снастин|work=[[DeveloperWorks]]|date=2010-08-11|publisher=[[IBM]]|lang=ru-RU|accessdate=2016-10-31}}
* {{Cite web|url=https://www.ibm.com/developerworks/ru/library/os-Guile_1/|title=Guile — универсальный инструмент программирования. Часть 1. Как с ним обращаться|author=Алексей Снастин|work=[[DeveloperWorks]]|date=2010-08-11|publisher=[[IBM]]|lang=ru|accessdate=2016-10-31}}
** {{Cite web|url=https://www.ibm.com/developerworks/ru/library/os-Guile_2/|title=Часть 2. Как с ним обращаться|author=|work=|date=2010-08-05|accessdate=2016-10-31}}</ref>
** {{Cite web|url=https://www.ibm.com/developerworks/ru/library/os-Guile_2/|title=Часть 2. Как с ним обращаться|author=|work=|date=2010-08-05|accessdate=2016-10-31}}
** {{Cite web|url=https://www.ibm.com/developerworks/ru/library/os-Guile_3/|title=Часть 3. Взаимодействие с языком C (начало)|date=2010-08-05|accessdate=2016-10-31}}
** {{Cite web|url=https://www.ibm.com/developerworks/ru/library/os-Guile_3/|title=Часть 3. Взаимодействие с языком C (начало)|date=2010-08-05|accessdate=2016-10-31}}
** {{Cite web|url=https://www.ibm.com/developerworks/ru/library/os-Guile_4/|title=Часть 4. Взаимодействие с языком C (окончание)|date=2011-06-14|accessdate=2016-10-31}}
** {{Cite web|url=https://www.ibm.com/developerworks/ru/library/os-Guile_4/|title=Часть 4. Взаимодействие с языком C (окончание)|date=2011-06-14|accessdate=2016-10-31}}
Строка 30: Строка 18:


== Ссылки ==
== Ссылки ==
{{Official}}
* {{Official}}

<references />
{{Лисп}}
{{Нет полных библиографических описаний}}


[[Категория:Реализации языка программирования Scheme]]
[[Категория:Реализации языка программирования Scheme]]

Текущая версия от 05:50, 9 июня 2023

GNU Guile
Логотип программы GNU Guile
Тип Язык программирования
Разработчик GNU Project
Написана на Си
Интерфейс Ncurses[3]
Операционные системы Linux, BSD, MS Windows (посредством MinGW или Cygwin)
Первый выпуск 1993; 31 год назад (1993)[1]
Последняя версия
Репозиторий git.savannah.gnu.org/cgi…
Лицензия GNU Lesser General Public License
Сайт gnu.org/software/guile/
Логотип Викисклада Медиафайлы на Викискладе

GNU Guile — реализация языка программирования Scheme, рекомендованная в качестве скриптового языка, встраиваемого в программные продукты проекта GNU[4]. Используется в таких продуктах, как Guix, GDB, GnuCash и LilyPond.

Распространяется на условиях LGPL и реализует стандарт R5RS[5]. С R6RS имеется ряд несовместимостей, однако стандартная библиотека Scheme, определённая этим стандартом, реализована[6]. Язык доступен в виде готового к работе интерпретатора guile, с поддержкой интерактивного режима[5] и подключаемой к приложениям, в которые нужно встроить язык сценариев, библиотеки libguileлинукс-дистрибутивах обычно устанавливаемой в виде пакета guile-devel[5]).

Создан в начале 1990-х годов как альтернатива языку Tcl, набиравшему популярность в качестве встраиваемого скриптового языка, но не одобренного Столлманом[7], который посчитал Tcl недостаточно мощным, а необходимость знакомства с новым синтаксисом, хоть и построенным по близким к лиспу принципам, но заметно отличающегося — излишней. Взамен он предложил использовать интерпретатор Scheme. Подходящего интерпретатора не было, его взялся реализовать Том Лорд (англ. Tom Lord). В качестве основы он использовал SIOD[англ.] (Scheme in One Day) и ядро SCM[англ.], написанное Обри Джаффером (англ. Aubrey Jaffer). Название Guile предложил в ходе обсуждения в соответствующей Usenet-группе Ли Томас (Lee Thomas) как аббревиатуру от англ. GNU’s Ubiquitous Interactive Language for Extension (повсеместно применяемый интерактивный язык для расширений GNU), и, в то же время, англ. guile дословно переводится как «обман; вероломство, коварство; хитрость, уловка»[5].

Примечания

[править | править код]
  1. Blandy, 1998, p. 102.
  2. Wingo A. GNU Guile 3.0.10 released (англ.) — 2024.
  3. Libraries
  4. Sandeep Koranne. 1.6.9. Scheme // Handbook of Open Source Tools. — Springer Science & Business Media, 2010-10-17. — 505 с. — ISBN 9781441977199. Архивировано 1 ноября 2016 года.
  5. 1 2 3 4 Алексей Снастин. Guile — универсальный инструмент программирования. Часть 1. Как с ним обращаться. DeveloperWorks. IBM (11 августа 2010). Дата обращения: 31 октября 2016. Архивировано 1 ноября 2016 года.
  6. Guile Reference Manual: R6RS Support. www.gnu.org. Дата обращения: 31 октября 2016. Архивировано 1 ноября 2016 года.
  7. The Tcl War. Glenn Vanderburg. Дата обращения: 31 октября 2016. Архивировано 8 октября 2016 года.

Литература

[править | править код]