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