Guile
Guile | |
---|---|
![]() | |
Тип | Язык программирования |
Разработчик | Проект GNU[3] |
Написана на | Си |
Интерфейс | Ncurses[4] |
Операционные системы | GNU/Linux[5], BSD[вд][5], macOS[5] и Windows |
Первый выпуск | 1993[1] |
Последняя версия | |
Репозиторий | git.savannah.gnu.org/cgi… |
Лицензия | LGPLv3.0+[вд][5][6] |
Сайт | gnu.org/software/… (англ.) |
![]() |
GNU Guile — реализация языка программирования Scheme, рекомендованная в качестве скриптового языка, встраиваемого в программные продукты проекта GNU[7]. Используется в таких продуктах, как Guix, GDB, GnuCash и LilyPond.
Распространяется на условиях LGPL и реализует стандарт R5RS[8]. С R6RS имеется ряд несовместимостей, однако стандартная библиотека Scheme, определённая этим стандартом, реализована[9]. Язык доступен в виде готового к работе интерпретатора guile
, с поддержкой интерактивного режима[8] и подключаемой к приложениям, в которые нужно встроить язык сценариев, библиотеки libguile
(в линукс-дистрибутивах обычно устанавливаемой в виде пакета guile-devel
[8]).
Создан в начале 1990-х годов как альтернатива языку Tcl, набиравшему популярность в качестве встраиваемого скриптового языка, но не одобренного Столлманом[10], который посчитал 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 дословно переводится как «обман; вероломство, коварство; хитрость, уловка»[8].
Примечания
[править | править код]- ↑ Salus P. H. Guile: An Interpreter Core for Complete Applications (англ.) — 1998. — P. 102.
- ↑ Wingo A. GNU Guile 3.0.10 released (англ.) — 2024.
- ↑ GNU's programming and extension language
- ↑ Libraries
- ↑ 1 2 3 4 Free Software Directory
- ↑ https://git.savannah.gnu.org/gitweb/?p=guile.git;a=blob;f=LICENSE
- ↑ Sandeep Koranne. 1.6.9. Scheme // Handbook of Open Source Tools. — Springer Science & Business Media, 2010-10-17. — 505 с. — ISBN 9781441977199. Архивировано 1 ноября 2016 года.
- ↑ 1 2 3 4 Алексей Снастин. Guile — универсальный инструмент программирования. Часть 1. Как с ним обращаться . DeveloperWorks. IBM (11 августа 2010). Дата обращения: 31 октября 2016. Архивировано 1 ноября 2016 года.
- ↑ Guile Reference Manual: R6RS Support . www.gnu.org. Дата обращения: 31 октября 2016. Архивировано 1 ноября 2016 года.
- ↑ 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