Arc (язык программирования) - Arc (programming language)
Парадигмы | Мультипарадигма: функциональный, мета, процедурный |
---|---|
Семья | Лисп |
Разработано | Пол Грэм |
Разработчики | Пол Грэм, Роберт Моррис, Дуга сообщество |
Впервые появился | 29 января 2008 г. |
Стабильный выпуск | 3.2 / 28 октября 2018[1] |
Печатная дисциплина | Динамический |
Язык реализации | Ракетка |
Платформа | IA-32, x86-64 |
Операционные системы | Linux |
Лицензия | Художественная лицензия 2.0 |
Расширения имени файла | .arc |
Интернет сайт | arclanguage |
Главный реализации | |
Арка, Анарки, Аркадия, Радуга | |
Под влиянием | |
Лисп, Схема |
Дуга это язык программирования, а диалект языка Лисп, разработан Пол Грэм и Роберт Моррис. это бесплатное программное обеспечение с открытым исходным кодом выпущен под Художественная лицензия 2.0.
История
В 2001 году Пол Грэм объявил, что работает над новым диалект Лиспа с именем Дуга. С тех пор он написал несколько эссе, описывающих особенности или цели языка, а также несколько внутренних проектов в Graham's запускать бизнес-инкубатор названный Y комбинатор были написаны в Arc, в первую очередь Хакерские новости веб-форум и программа-агрегатор новостей. Арка написана на Ракетка.[2]
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 |
Мотивы
В эссе Быть популярным[3] Грэм описывает несколько своих целей в отношении языка. Хотя многие цели носят общий характер («Дуга должна быть взломана», «должна быть хорошая библиотеки "), он привел некоторые особенности. Например, он считает важным, чтобы язык был кратким:
Было бы недалеко от истины сказать, что хакер, собирающийся написать программу, решает, какой язык использовать, по крайней мере, подсознательно, исходя из общего количества символов, которые ему придется напечатать. Если хакеры думают не так, то разработчику языков следовало бы действовать так, как если бы это было так.
Он также заявил, что для языка лучше реализовывать лишь небольшое количество аксиомы, даже если это означает, что язык может не иметь функций, которые нужны крупным организациям, например объектная ориентация (OO). Кроме того, Грэм считает, что объектно-ориентированный объект бесполезен как его методы и узоры являются просто «хорошим дизайном», и он считает, что языковые функции, используемые для реализации объектно-ориентированного программирования, частично ошибочны.[4][5] При представлении Arc в 2008 году Грэм заявил, что одним из его преимуществ является краткость.[6]
Среди программистов на Лиспе возникают разногласия по поводу того, насколько s-выражения языка должны быть дополнены другими формами синтаксис. Грэм считает, что добавленный синтаксис следует использовать в ситуациях, когда чистые s-выражения будут слишком многословными, говоря: «Я не думаю, что мы должны религиозно противиться введению синтаксиса в Лисп». Грэм также считает, что проблемы эффективности следует решать, давая программисту хорошее профайлер.[7]
Прием
Когда Arc был выпущен в 2008 году, он вызвал неоднозначную реакцию, некоторые называли его просто расширением Lisp или Схема а не сам по себе язык программирования. Другие аплодировали Arc за то, что он лишил Lisp самого необходимого. Вскоре после выпуска Arc был перенесен на JavaScript, и поддерживался Schemescript, интегрированная среда развития (IDE) на основе Затмение.[8]
Примеры
Привет мир в Арке:
(прн "Привет, мир")
Чтобы проиллюстрировать краткость Арк, Грэм использует краткую программу. Он создает форму с одним полем по адресу "/ said". Когда форма отправлена, она ведет на страницу со ссылкой «щелкните здесь», которая затем ведет на страницу со значением исходного поля ввода.[9]
(defop сказал req (форма [ссылка "кликните сюда" (пр "ты сказал: " (аргумент _ "фу"))] (Вход "фу") (Разместить)))
Версии
Официальная версия
Первая публично выпущенная версия Arc была доступна 29 января 2008 г.[10] реализовано на Ракетка (тогда она была названа PLT-Scheme). Релиз представлен в виде .tar архив, содержащий Ракетку исходный код для Arc. Учебник[11] и дискуссионный форум[12] также доступны. На форуме используется та же программа, что и Хакерские новости делает, и написано в Arc.
Неофициальные версии
Из-за отсутствия обновлений в официальной ветке Arc, некоторые участники Arc сообщество запустили собственные репозитории с неофициальными модификациями, расширениями и библиотеками. Одна версия, Анарки,[13] разрешенный[14] любой желающий отправить изменения в проект и имеет вики, управляемую сообществом.[15]
Радуга[16] это реализация Arc в Ява.
Аркадия[17] это реализация Arc в C.
Рекомендации
- ^ "Arc Forum: Tell Arc: Arc 3.2". Arclanguage.org. Получено 2018-11-07.
- ^ «Arc Forum: установить». Arclanguage.org. Получено 2018-11-07.
- ^ Грэм, Пол (май 2001 г.). «Быть популярным». PaulGraham.com. Получено 2018-12-05.
- ^ Грэм, Пол. «Почему Arc не особо объектно-ориентирована». PaulGraham.com. Получено 2018-12-05.
- ^ Грэм, Пол. "Arc FAQ". PaulGraham.com. Получено 2018-12-05.
- ^ Хубер, Матиас (2008-02-08). "Arc делает программы короче". Журнал Linux. Лоуренс, Канзас: Linux New Media USA. Получено 2018-11-25.
- ^ Грэм, Пол (май 2001 г.). «Пять вопросов о языковом дизайне». PaulGraham.com. Получено 2018-12-05.
- ^ «Пионер Интернета поражает критиков перчаткой Лиспа». Реестр. Великобритания. 2008-02-07.
- ^ Грэм, Пол (февраль 2008 г.). "Примите вызов Arc". PaulGraham.com. Получено 2018-12-05.
- ^ Грэм, Пол (29 января 2008 г.). "Arc's Out". PaulGraham.com. Получено 2018-12-05.
- ^ "Учебник по дуге". Пол Грэм. Получено 2018-12-05..
- ^ «Арк Форум». Язык дуги.
- ^ Рэпп, Кеннет (Кеннетрапп) (14 ноября 2018 г.). "Анарки". GitHub. Получено 2018-12-05.
- ^ Агарам, Картик (Аккартик) (27 мая 2013 г.). «Объявление: анарки больше не подлежат мировым обязательствам». Arc Forum. Язык дуги. Получено 2018-12-05.
- ^ "Arc Lang Wiki". Места. Google. Получено 2018-12-05.
- ^ Дальтон, Конан (конанит) (12 октября 2010 г.). "Радуга". GitHub. Получено 2018-12-05.
- ^ Ким, Тэгён (kimtg) (19 августа 2018 г.). "Аркадия". GitHub. Получено 2018-12-05.