Парадигма | Мультипарадигма : процедурная , функциональная , объектно-ориентированная , мета , рефлексивная , общая |
---|---|
Семья | Лисп |
Разработано | Поль Тальямонте |
Разработчики | Основная команда |
Впервые появился | 2013 |
Предварительный выпуск | |
Объем | лексический, необязательно динамический [ необходима ссылка ] |
Платформа | IA-32 , x86-64 |
Операционные системы | Кроссплатформенность |
Лицензия | MIT- стиль |
Расширения имени файла | .hy |
Веб-сайт | hylang |
Под влиянием | |
Лисп , Кава , Clojure , Общий Лисп |
Hy является диалектом на Lisp язык программирования . Он предназначен для взаимодействия с языком Python путем перевода выражений в абстрактное синтаксическое дерево Python (AST). [2] [3] Хай был представлен на конференции Python (PyCon) 2013 Полом Тальямонте. [4]
Подобно тому, как Kawa и Clojure отображают s-выражения на виртуальную машину Java (JVM), [5] Hy предназначен для работы в качестве прозрачного интерфейса Lisp для абстрактного синтаксиса Python. [6] Lisp позволяет работать с кодом как с данными ( метапрограммирование ). Таким образом, Hy можно использовать для написания предметно-ориентированных языков . [7] Hy также позволяет импортировать библиотеки Python , включая стандартную библиотеку , и обращаться к ним вместе с кодом Hy с помощью этапа компиляции [примечание 1], преобразующего структуру данных обоих в AST Python. [заметка 2][8] [9] [10]
Пример кода [ править ]
Из языковой документации: [11]
=> ( выведите «Хи!» ) Хи! => ( defn salutationsnm [ name ] ( print ( + "Hy" name "!" ))) => ( salutationsnm "YourName" ) Hy YourName!
См. Также [ править ]
- Common Lisp
- Clojure
- Кава (реализация схемы)
- CLPython
Заметки [ править ]
- ^ «Скомпилированный» - это термин, который может относиться к выражению кода Hy в AST Python или преобразованию этого AST в байт-код, причем последний зависит от конкретного используемого интерпретатора Python, а не Hy.
- ^ Hy протестирован на Python 2.7, 3.4–3.6 и PyPy .
Ссылки [ править ]
- ^ a b "Hy 0.19.0" . GitHub.
- ^ Яворский, Михал; Зиаде, Тарек (2019). Эксперт по программированию на Python (Третье изд.). Бирмингем, Великобритания: Packt Publishing. п. 173. ISBN. 978-1-78980-677-9. OCLC 1125343555 .
- ^ Danjou, Жюльен (2018). Серьезный Python: черный пояс по развертыванию, масштабируемости, тестированию и многому другому . Сан-Франциско, Калифорния: Пресса без крахмала. С. 145–149. ISBN 9781593278793. OCLC 1057729260 .
- ^ Tagliamonte, Пол (2 апреля 2013). PyCon Lightning Talk (Речь). Конференция Python (PyCon). Санта-Клара . Проверено 2 сентября 2014 года .
- ^ Turto, Tuukka (14 февраля 2014). «Программирование может быть забавным с Хай» . Открытый исходный код для вас . Проверено 2 сентября 2014 года .
- ↑ Edge, Джейк (30 апреля 2014 г.). «Получение Хай на Python» . LWN.net . Проверено 2 сентября 2014 года .
- ^ Tagliamonte, Пол (11 апреля 2014). Получение Hy на Python: как реализовать интерфейс Lisp для Python (Speech). PyCon . Монреаль . Проверено 2 сентября 2014 года .
- ^ "Hy Документация" . hylang.org . Проверено 3 сентября 2014 года .
- ^ Danjou, Жюльен (26 марта 2014). «АСТ» . Руководство хакера по Python . С. 165–172.
- ^ Kitchin, Джон (31 марта 2016). «Подробнее о Хай и о том, почему я думаю, что это важно» . Китчинская исследовательская группа . Университет Карнеги-Меллона . Проверено 19 сентября 2018 года .
- ^ «Быстрый старт» . Hylang.org . 15 мая 2018 . Проверено 19 сентября 2018 года .
Внешние ссылки [ править ]
- Официальный сайт
- hy на GitHub
- Документация
- Видео выступления PyCon 2014
1955 г. | 1960 г. | 1965 г. | 1970 г. | 1975 г. | 1980 г. | 1985 г. | 1990 г. | 1995 г. | 2000 г. | 2005 г. | 2010 г. | 2015 г. | 2020 г. | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
LISP 1, 1.5, LISP 2 (заброшен) | ||||||||||||||
Маклисп | ||||||||||||||
Интерлисп | ||||||||||||||
Лисп-машина Лисп | ||||||||||||||
Схема | R5RS | R6RS | R7RS маленький | |||||||||||
Ноль | ||||||||||||||
Ференц Лисп | ||||||||||||||
Common Lisp | ||||||||||||||
Le Lisp | ||||||||||||||
Т | ||||||||||||||
Chez Scheme | ||||||||||||||
Emacs Lisp | ||||||||||||||
AutoLISP | ||||||||||||||
ПикоЛисп | ||||||||||||||
EuLisp | ||||||||||||||
ISLISP | ||||||||||||||
OpenLisp | ||||||||||||||
Схема PLT | Ракетка | |||||||||||||
GNU Guile | ||||||||||||||
Визуальный LISP | ||||||||||||||
Clojure | ||||||||||||||
Дуга | ||||||||||||||
LFE | ||||||||||||||
Hy |