Guile

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. Courtès L. GNU Guile 3.0.9 released (англ.) — 2023.
  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 года.

Литература

  • Jim Blandy. Guile: An Interpreter Core for Complete Applications // Handbook of Programming Languages: Functional and logic programming languages / Peter H. Salus. — Macmillan Technical Pub., 1998. — С. 87—104. — 280 с. — ISBN 9781578700110.
  • Алексей Снастин. Guile — универсальный инструмент программирования. Часть 1. Как с ним обращаться  (рус.). DeveloperWorks. IBM (11 августа 2010). Дата обращения: 31 октября 2016.
    • Часть 2. Как с ним обращаться  (неопр.) (5 августа 2010). Дата обращения: 31 октября 2016.
    • Часть 3. Взаимодействие с языком C (начало)  (неопр.) (5 августа 2010). Дата обращения: 31 октября 2016.
    • Часть 4. Взаимодействие с языком C (окончание)  (неопр.) (14 июня 2011). Дата обращения: 31 октября 2016.
    • Часть 5. Дополнительные средства Guile  (неопр.) (14 июня 2011). Дата обращения: 31 октября 2016.

Ссылки

  • gnu.org/software/… (англ.) — официальный сайт Guile
Перейти к шаблону «Лисп»
Характеристики
Объектные системы systems
Реализации
Стандарты
Common
Lisp
Scheme
ISLISP
Нестандартные
Лого
Операционная система
  • Common Lisp Interface Manager, McCLIM
  • Genera
  • Scsh
  • Аппаратное обеспечение
    Сообщество
    Стандарты
    Образование
    Книги
    • Common Lisp the Language
    • How to Design Programs (HTDP)
    • On Lisp
    Куррикулум
    • ProgramByDesign
    Разработчики
    Люди
    • Категория Категория
    • Категория Категория
    • Список Список