Arc (язык программирования)
Парадигмы | Мультипарадигма : функциональная , мета , процедурная. |
---|---|
Семья | Лисп |
Разработано | Пол Грэм |
Разработчики | Пол Грэм, Роберт Моррис, Арк Сообщество |
Впервые появился | 29 января 2008 г |
Стабильная версия | 3.2
/ 28 октября 2018 г [1] |
Дисциплина набора текста | Динамический |
Язык реализации | Ракетка |
Платформа | ИА-32 , x86-64 |
ТЫ | Линукс |
Лицензия | Художественная лицензия 2.0 |
Расширения имен файлов | .arc |
Веб-сайт | дуговой язык |
Основные реализации | |
Дуга, Анарки, Аркадия, Радуга | |
Под влиянием | |
Лисп , Схема |
Arc — язык программирования , диалект языка Lisp , разработанный Полом Грэмом и Робертом Моррисом . Это бесплатное программное обеспечение с открытым исходным кодом , выпущенное под лицензией Artistic License 2.0.
История [ править ]
В 2001 году Пол Грэм объявил, что работает над новым диалектом Лиспа под названием Arc . За прошедшие годы он написал несколько эссе, описывающих особенности или цели языка, а некоторые внутренние проекты стартап- бизнес-инкубатора Грэма под названием Y Combinator были написаны на Arc, в первую очередь веб-форум Hacker News и программа-агрегатор новостей. Arc написан на Racket . [2]
Мотивы [ править ]
В эссе « Быть популярным» [3] Грэм описывает несколько своих целей в отношении языка. Хотя многие цели носят очень общий характер («Arc должен быть взломан», «должны быть хорошие библиотеки »), он все же дал некоторые подробности. Например, он считает, что язык должен быть кратким:
Было бы недалеко от истины сказать, что хакер, собирающийся написать программу, решает, какой язык использовать, по крайней мере подсознательно, исходя из общего количества символов, которые ему придется набрать. Если хакеры думают не так, разработчику языка следовало бы действовать так, как будто это так.
Он также заявил, что лучше, чтобы язык реализовывал лишь небольшое количество аксиом , даже если это означает, что язык может не иметь функций, которые нужны крупным организациям, таких как объектно-ориентированность (ОО). Более того, Грэм считает, что объектно-ориентированный подход бесполезен, поскольку его методы и шаблоны представляют собой просто «хороший дизайн», а особенности языка, используемые для реализации объектно-ориентированного подхода, он считает частично ошибочными. [4] [5] При представлении Arc в 2008 году Грэм заявил, что одним из его преимуществ является краткость. [6]
Среди программистов на Лиспе ведутся разногласия по поводу того, следует ли и в какой степени дополнять s-выражения языка другими формами синтаксиса . Грэм считает, что добавленный синтаксис следует использовать в ситуациях, когда чистые s-выражения будут слишком многословными, говоря: «Я не думаю, что мы должны быть религиозно настроены против введения синтаксиса в Лисп». Грэм также считает, что проблемы эффективности следует решать, предоставив программисту хороший профилировщик . [7]
Прием [ править ]
Выпущенный в 2008 году Arc вызвал неоднозначную реакцию: некоторые называли его просто расширением Lisp или Scheme , а не самостоятельным языком программирования. Другие аплодировали Arc за то, что он урезал Lisp до самого необходимого. Вскоре после выпуска Arc был портирован на JavaScript и поддерживался Schemescript , интегрированной средой разработки (IDE), основанной на Eclipse . [8]
Примеры [ править ]
Привет, мир в Арке:
(prn "Hello, World")
Чтобы проиллюстрировать краткость Арк, Грэм использует краткую программу. Он создает форму с одним полем по URL-адресу «/said». Когда форма отправляется, она ведет на страницу со ссылкой «нажмите здесь», которая затем ведет на страницу со значением исходного поля ввода. [9]
(defop said req
(aform [onlink "click here" (pr "you said: " (arg _ "foo"))]
(input "foo")
(submit)))
Версии [ править ]
Официальная версия [ править ]
Первая общедоступная версия Arc стала доступна 29 января 2008 года. [10] реализован на Racket (тогда называвшемся PLT-Scheme). Релиз представлен в виде архива .tar Racket , содержащего исходный код для Arc. Учебное пособие [11] и дискуссионный форум [12] также доступны. Форум использует ту же программу, что и Hacker News , и написан на Arc.
Неофициальные версии [ править ]
Из-за отсутствия обновлений в официальной ветке Arc некоторые члены сообщества Arc создали собственные репозитории с неофициальными модификациями, расширениями и библиотеками. Одна из версий, Анарки , [13] разрешено [14] любой, кто может отправлять изменения в проект и имеет вики, управляемую сообществом. [15]
Радуга [16] представляет собой реализацию Arc на Java .
Аркадия [17] является реализацией Arc C. на
Арк++ [18] является реализацией Arc на C++ .
Хронология диалектов LISP
1958 | 1960 | 1965 | 1970 | 1975 | 1980 | 1985 | 1990 | 1995 | 2000 | 2005 | 2010 | 2015 | 2020 | ||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ЛИСП 1, 1.5, ЛИСП 2 (заброшенный) | |||||||||||||||
Маклисп | |||||||||||||||
Интерлисп | |||||||||||||||
леев | |||||||||||||||
Лисп-машина Лисп | |||||||||||||||
Схема | Р5РС | Р6РС | R7RS маленький | ||||||||||||
НОЛЬ | |||||||||||||||
ЗИЛ (язык реализации Zork) | |||||||||||||||
Франц Лисп | |||||||||||||||
Общий Лисп | стандарт ANSI | ||||||||||||||
Лисп | |||||||||||||||
Схема СО | |||||||||||||||
XLISP | |||||||||||||||
Т | |||||||||||||||
На схеме | |||||||||||||||
Эмакс Лисп | |||||||||||||||
АвтоЛИСП | |||||||||||||||
ПикоЛисп | |||||||||||||||
Гамбит | |||||||||||||||
EuLisp | |||||||||||||||
ИСЛИСП | |||||||||||||||
ОпенЛисп | |||||||||||||||
Схема PLT | Ракетка | ||||||||||||||
новыйLISP | |||||||||||||||
GNU Коварство | |||||||||||||||
Визуальный ЛИСП | |||||||||||||||
Кложур | |||||||||||||||
Дуга | |||||||||||||||
ЛФЭ | |||||||||||||||
Он | |||||||||||||||
Хиалисп |
Ссылки [ править ]
- ^ «Форум Arc: Расскажите Arc: Arc 3.2» . Arclanguage.org . Проверено 7 ноября 2018 г.
- ^ «Дуга Форум: установить» . Arclanguage.org . Проверено 7 ноября 2018 г.
- ^ Грэм, Пол (май 2001 г.). «Быть популярным» . ПолГрэм.com . Проверено 5 декабря 2018 г.
- ^ Грэм, Пол. «Почему Arc не особенно объектно-ориентирован» . ПолГрэм.com . Проверено 5 декабря 2018 г.
- ^ Грэм, Пол. «Часто задаваемые вопросы по дуге» . ПолГрэм.com . Проверено 5 декабря 2018 г.
- ^ Хубер, Матиас (8 февраля 2008 г.). «Дуга делает программы короче» . Журнал Линукс . Лоуренс, Канзас: Linux New Media USA . Проверено 25 ноября 2018 г.
- ^ Грэм, Пол (май 2001 г.). «Пять вопросов о языковом дизайне» . ПолГрэм.com . Проверено 5 декабря 2018 г.
- ^ «Пионер Интернета бьет критиков перчаткой Лиспа» . Регистр . Великобритания . 07.02.2008.
- ^ Грэм, Пол (февраль 2008 г.). «Прими вызов дуги» . ПолГрэм.com . Проверено 5 декабря 2018 г.
- ^ Грэм, Пол (29 января 2008 г.). «Арка погасла» . ПолГрэм.com . Проверено 5 декабря 2018 г.
- ^ «Учебник по дуге» . Пол Грэм . Проверено 5 декабря 2018 г. .
- ^ «Арк Форум» . Язык дуги .
- ^ Рэпп, Кеннет (kennethrapp) (14 ноября 2018 г.). «Анарки» . Гитхаб . Проверено 5 декабря 2018 г.
- ^ Агарам, Картик (akkartik) (27 мая 2013 г.). «Объявление: Анарки больше не являются общепризнанными» . Арк Форум . Язык дуги . Проверено 5 декабря 2018 г.
- ^ «Арк Ланг Вики» . Сайты . Проверено 5 декабря 2018 г.
- ^ Далтон, Конан (конанит) (12 октября 2010 г.). «Радуга» . Гитхаб . Проверено 5 декабря 2018 г.
- ^ Ким, Тэгюн (kimtg) (19 августа 2018 г.). «Аркадия» . Гитхаб . Проверено 5 декабря 2018 г.
- ^ Ким, Тэгюн (kimtg) (13 августа 2023 г.). «Аркпп» . Гитхаб . Проверено 13 августа 2023 г.