Реальное использование конкатенативных языков программирования
8 ответов
http://factorcode.org/, http://concatenative.org/ и http://tinyvid.tv/ работают на основе Furnace, веб-сервера и платформы Factor.
PostScript является конкатенативным, и, очевидно, существует огромное количество приложений PostScript. Это просто не язык программирования общего назначения.
Как писал Грег, PostScript - это гигантский пример.
Конкатенативные языки появляются повсюду, вполне естественно, из-за тривиальной природы языковой среды исполнения. Это фаворит для многих прошивок: я впервые столкнулся с Forth "во плоти" в загрузчике для Sun Sparcstation. Он обеспечивает прошивку для OLPC.
Родитель Окамла, Камл, был основан на реализации семантики функционального программирования как категориальной абстрактной машины (CAM в Caml).
Bibtex использует конкатенационный язык для компиляции файлов стилей.
Существует несколько устаревший, но очень крутой Quartus Forth для Palm, который позволил полностью скомпилировать разработку приложений на устройстве Palm (Forth как минималистский язык работает довольно хорошо в этих обстоятельствах). На их домашней странице перечислены несколько приложений Palm.
На этой странице FIG есть список в основном встроенных проектов, включая ссылку на очень крутое использование Forth NASA.
В 1991 году на конференции Apple в Квинсленде я встретил парня, который продавал приложение для планирования дорог, написанное на MacForth.
Кристофер Диггинс говорил о том, что его язык Cat используется в Microsoft для оптимизации компиляторов, но я не знаю, пошло ли это куда-нибудь.
Я подозреваю, что PowerMOPS (преемник Neon) может ускользнуть от определения конкатенации, потому что его большая проблема - добавление объектной ориентации, что подразумевает экземпляры.
Взгляните на FORTH Inc, они перечисляют несколько проектов, которые они и их клиенты сделали, используя свой FORTH.
Протокол биткойнов и большинство других криптовалют используют скрипты pubkey и сигнатурные скрипты для проверки транзакций:
Сценарии Pubkey и сценарии подписи объединяют разделы и подписи secp256k1 с условной логикой, создавая программируемый механизм авторизации.
Эти сценарии написаны на родном языке:
Язык сценариев представляет собой Forth-подобный основанный на стеке язык, специально разработанный для того, чтобы он не имел состояния и не был полным по Тьюрингу. Отсутствие состояния гарантирует, что после добавления транзакции в цепочку блоков не существует условия, которое делает ее постоянно ненадежной. Неполнота тьюринга (в частности, отсутствие циклов или переходов) делает язык сценариев менее гибким и более предсказуемым, что значительно упрощает модель безопасности.
Часть прошивки на Mac (по крайней мере, в старых моделях PowerPC) была написана на Forth.
Смотрите: http://osxbook.com/book/bonus/ancient/whatismacosx/arch_boot.html