Interested Article - Factor (язык программирования)
- 2021-03-04
- 1
Factor — это динамически типизированный конкатенативный язык программирования , чья разработка и реализация ведётся Славой Пестовым . Основное влияние на язык Factor оказали языки программирования Joy , Forth , Lisp и Self .
Автор определяет Factor как «практический стековый язык программирования», важными факторами, определяющими направление его развития, являются производительность, богатство выразительных средств (при сохранении ясности и согласованности) и создание достаточно всеобъемлющей стандартной библиотеки.
Подобно другим конкатенативным языкам, Factor имеет постфиксный синтаксис, что означает, что аргументы функции пишут перед её именем. Например, Hello world в языке Factor это:
"Hello world" print
Фактор — язык с динамической типизацией , и уникальной объектной системой, близкой к CLOS . В Факторе есть небольшой набор базовых типов , а пользователи и стандартная библиотека могут создавать собственные классы используя кортежи и другие механизмы. Фактор поддерживает наследование . Помимо классов, являющихся кортежами имеются и другие механизмы создания классов ; Factor поддерживает предикатные классы (подмножества некоего класса, для которых соблюдается условие-предикат) и классы объединения . Встроенные составные типы данных Фактора включают векторы фиксированной и переменной длины и хеш-таблицы . Подобно таким языкам, как Common Lisp и Python , Фактор поддерживает богатый набор арифметических типов данных: простые целые, целые неограниченной длины, числа с плавающей запятой. Комплексные числа , дроби (рациональные числа) реализованы в стандартной библиотеке. Также стандартная библиотека реализует связные списки , массивы статически типизированных значений и другие структуры данных.
Одна из главных целей Фактора — применение в итеративной разработке через тестирование , поэтому ядро Фактора можно рассматривать как безопасный диалект Форта . Хотя Фактор — динамически типизируемый язык, компилятор имеет доступ к глубине стека слова (функции).
Реализация
Первая публичная реализация Фактора была написана на Java , однако в целях повышения эффективности позднее она переписана на C (а затем, в мае 2009 — на C++ ), Java-версия была заброшена. Количество Си-кода в реализации языка постепенно сокращается, а Factor-кода соответственно растёт.
Первоначально Фактор был чисто интерпретируемым языком, но теперь он полностью реализован в виде компилятора (неоптимизирующий компилятор по существу разворачивает (unrolls) цикл интерпретации ), интерпретатор сохранён только для обеспечения интерактивного режима работы). Оптимизирующий компилятор в машинный код также полностью написан на Факторе. Он не производит автономных запускаемых файлов, но генерирует машинный код , сохраняемый в файл образа. Эти образы запускаются с минимальными накладными расходами с помощью виртуальной машины. Подсистема развёртывания (deploying) позволяет сгенерировать из программы автономный запускаемый файл . На реализацию Фактора большое влияние оказал Steel Bank Common Lisp .
Последний стабильный релиз датируется 20 апреля 2013 года и имеет номер 0.96 . Также, пока версия 1.0 всё ещё находится в разработке, регулярно публикуются постоянно обновляющиеся сборки (Continuous Builds) для всех поддерживаемых платформ .
Между выходом версий 0.91 и последовавшей за ней версией 0.92 прошло около 2 лет активного развития языка (с выпуском промежуточных сборок). За это время внесены значительные изменения как в само ядро языка, так и в окружающие его библиотеки (в частности вся работа со строками была переведена на Unicode с поддержкой UTF-8 и UTF-16 ).
Стандартная библиотека
Factor имеет развивающуюся библиотеку с поддержкой словарей , продолжений , HTTP сервера и прилагающегося веб-фреймворка , OpenGL враппер, GUI библиотеки, XML парсера , и т. д..
Примечания
- . Дата обращения: 5 марта 2009. 6 февраля 2009 года.
- . Дата обращения: 15 января 2010. 14 мая 2009 года.
- . Дата обращения: 5 марта 2009. 14 сентября 2008 года.
- . Дата обращения: 5 марта 2009. 12 января 2008 года.
- . Дата обращения: 5 марта 2009. 9 июля 2008 года.
- . Дата обращения: 5 марта 2009. 22 февраля 2009 года.
- . Дата обращения: 18 мая 2013. 26 мая 2013 года.
- . Дата обращения: 5 марта 2009. 24 февраля 2009 года.
- . Дата обращения: 19 июля 2010. 29 ноября 2010 года.
- ↑ . Дата обращения: 23 февраля 2010. 19 февраля 2010 года.
Литература
- Bruce Tate, Fred Daoud, Jack Moffitt, Ian Dees. Factor // Seven More Languages in Seven Weeks. Languages That Are Shaping the Future. — The Pragmatic Bookshelf, 2015. — С. 49-87. — 320 с. — ISBN 978-1941222157 .
- (англ.) — Slava Pestov, Daniel Ehrenberg, Joe Groff.
- . (11 мая 2010). Дата обращения: 31 июля 2013. Архивировано из 20 августа 2013 года.
- Christopher Diggins. . Dr. Dobbs (31 декабря 2008). Архивировано из 14 мая 2012 года.
Ссылки
- (англ.) домашняя страница
- на GitHub
- (недоступная ссылка) (англ.)
- видеозапись авторской презентации языка на
- 2021-03-04
- 1