Как ни «странно», но на Хабр есть Хаб по Haxe («эпизодически» пополняемый статьями одним пользователем, в последнее время, и количеством подпичиков — 759)
P.S. Не являясь пользователем Haxe мне сложно перенести примеры из кукбоок на ресурс rosettacode.org.
Современные Форт системы реализуют по разному и вплоть до нативной компиляции всего кода с оптимизациями разной степени удачности, но позволяющими и Форт коду быть быстрым при исполнении в модели процессоров с регистровой организацией команд. Вот подборка книг по Форт и на русском языке которые были изданы на рубеже 1990 годов
Современных книг по Форт на русском языке нет, но в Форт особых перемен и нет (последний стандарт 94г.) и существующие реализации Форт в той или иной степени следуют стандарту 94года или стандарту от IEEE.
Да, если используется обычная форма CALL вызовов, но они (стэки) не в одном и том же месте и это важно.
P.S. И, кстати, если брать Форт с реализацией в виде Косвенного шитого кода, то там фактически «возврат» из слова — это фактически вызов следующего слова до тех пор пока раскрутка высокоуровневого Форт кода не дойдёт до примитивов написанных на языке ассемблера и цепочка начнёт сворачиваться в обратном направлении. :)
Первый раз познакомился с системой команд PDP-11 (Электроника-60) на обслуживании и ремонте станков с ЧПУ в районе 200х года, а до этого видел ДВК-ки в институте и тогда уже считал их чем то раритетным.
А, далее даже посчастливилось попраграмировать по работе уже процессор K1806ВМ2 и это было достаточно познaвательно. :)
Чем больше, тем лучше и желательно с их описанием
и если есть кукбук, то не должно (или должно) возникнуть сложностей с их размещением и в рамках этого ресурса и возможно со ссылками и в самой «Книге рецепов для IT повара на Hexe»
А, она в нём в целом не нужна т.к. на стеке лежат числа в размере 1-й ячейки хранения принятой в том или ином Форте 16/32/64 а возможность по типизации их предоставляется программисту по применению слов с разными именами ( +, D+ ...) оперирующими сколько, как и в каком размере оперировать ими на стэке.
Если, программист, по определению не даун, то это им легко должно легко пониматься, а если что пошло не так, то последствия его действий не заставят себя ждать (Форт упадёт и/или выведет информацию об эксепшене)
Для чисел плавающей арифметики есть отдельный стэк со словами подобными F+, F-…
P.S. Конечно, в более серьёзном Форт инструментарии может в процессе трансляции программы выводится и проверяться соответствие типов данных и операций применённых к ним, но обычно на это все использующие Форт обычно кладут «болт» и особо не парятся :)
Хотя есть варианты Форт -типа StrongForth где разработчики его стали контролировать типизацию в их Форт.
Если интересен более продвинутый «Форт», то есть например Factor — язык программирования. где на стэк помещаются уже более комплексные сущности чем числа.
Не рассматривали ли возможность ещё писать Пет-проект на освоенном хорошo языке и мoжет через несколько лет он взлетит или заинтересует крупных игроков рынка для его покупки?
А вы не могли бы продолжить мысль? Это по каким-то критериям должно влиять на принятие решения о выборе инструмента?
Например для типовых примеров уже готовых решений в рамках использования нового языка в чём разница Hexe с другими языками на «типовом» примере задачи.
Я не понимаю, как ограничение доступных средств может обеспечить возможность более короткой записи логики. На самом деле, здесь происходит подмена понятий, а «выразительность» достигается комплектными командами. При предоставлении такого же апи, запись этой логики на «родительском» языке вряд ли будет сильно длиннее.
Сентенция с Форт, в общем понимании его как языка программирования приводит к возможности записи каких то «макросов» близко по форме к естественным языкам.
Для кого то это хорошо, а кто то без явно синтаксическо-семантических ограничений присутствующих в современных языках даже не сможет понять для использования Форт.
т.е., наши привычки и освоенные взгляды — наши же «оковы» из «недоступности» понимания, что пути решения задач этим не ограничивается.
Вообще, когда речь заходит про «запилить по-быстрому язык для своей системы с ноля», то в первую очередь в голову придет лисп из-за простоты и надежности. Хотя он далеко не самый юзер-фрэндли для пользователя.
Форт ещё проще т.к. в нём нет скобок в Лисп понимании и он прямолинеен по последовательности выполнения слов при трансляции кода программы в исполнение.
На уровне трансляции Форт программ в базисе Форт нет даже понятия синтаксиса языка, кроме того, что мы имеем дело со словами — самодостаточными сущностями во взаимодействии с другими словами и создающими свой контекст при их использовании для других слов.
Уф… :)
Если следить за стэком становится следить сложно в Форт программе, то что то не правильно делается по его использованию. :)
Обычно происходят мелкие перестановки 2-3 элементов стэка и они не сложно понимаемы. Для других — «особо тяжёлых случаев» никак не ложащихся в алгоритм в Форт реализации можно использовать, например, локальные переменные появившееся в Форт стандарте 94года.
И, конечно, Форт, как язык нацеленный на использование метапрограмирования и DSL наиболее значимо себя проявляет именно при использовании таких техник его использования неплохо описанных во 2-й книге за авторством Броуди «Мышление Форт».
P.S. И, локально оттестировать поведение слова не сложно в Форт.
Да, это и другие возможности доступны и при использовании Форт, но если бы только специфичность Форт была только в постфиксе, то это был бы не Форт, а что то близкое к калькуляторному языку MK-61 и вряд ли Форт, на протяжении 50-ти лет своего существования смог бы войти тогда в современный топ 50-ти языков программирования по версии IEEE Spectrum
P.S. Кстати, страшилки по поводу неудобства «формата» записи Форт программ немного преувеличена в отношении к нему и эта «страшилка Forth» не на первом месте по степени грамотного понимания и использования Форт языка, есть и другие, но серое вещество мозга достаточно гибкая система при её «переформатировании». Форт, как «искуственный» компьютерный язык, гораздо проще в освоении чем, например, иностранный естественный язык по поводу которого нет «предвзятых» взглядов.
> Интересно, что и в связке Java + Forth находятся проекты на Github
А как на рынок труда это влияет? Есть вакансии?
Особо не видно, но вероятно кто то использует в своих проектах и Forth, если и звёзд, бывает, несколько сотен какой то проект с ним на Github набирает.
P.S. Форт просто был первым языком практического програмирования из Concatenative languages использующих стэк(и) как одну из основополагающей структуры данных в языке.
Factor — язык программирования хорошо представлен в своих возможностях. Kitten написанный на Хаскел тоже вроде неплох
…
но эти языки акцентируются на использовании ФП в возможностях стэка.
помимо, как Factor нацеленный на ФП в комбинаторном подходе и стэк это позволяет легко это имплантировать. (в Factor ещё своя VM для запуска на разных ОС)
Если нужен «экстремально» простой и гибкий язык программирования, то даже в качестве DSL — Domain Specific Language применяют Forth (Форт).
При программировании микроконтроллеров и зачастую как основной инструментарий.
Да, интересная ситуация с текущей механикой кармы.
За предыдущий комментарий у меня снялось, похоже, столько же плюсиков за предыдущии комменарии и карму тоже снизили на 4-е единицы.
P.S.Хотя, когда сам одному пользователю поставил + в карму, то она с -3 стала -2,
а когда у этого же пользователя нажал в — (минус), как бы отыграть обратно, то у него сразу стало -4, а у меня убрались 2-а голоса за карму в сумме за эти действия.
Во как! Непонятно — это так и задумано или «глюк» в системе кармо-механики сайта.
У Вас ещё интересней при заплюсованности комментариев — карма действительно слита! Скорее всего — хотят Вас сподвигнуть на написание какой то статьи, иначе зачем все эти игры с кармой.
P.S. Не являясь пользователем Haxe мне сложно перенести примеры из кукбоок на ресурс rosettacode.org.
Вот подборка книг по Форт и на русском языке которые были изданы на рубеже 1990 годов
Современных книг по Форт на русском языке нет, но в Форт особых перемен и нет (последний стандарт 94г.) и существующие реализации Форт в той или иной степени следуют стандарту 94года или стандарту от IEEE.
P.S. И, кстати, если брать Форт с реализацией в виде Косвенного шитого кода, то там фактически «возврат» из слова — это фактически вызов следующего слова до тех пор пока раскрутка высокоуровневого Форт кода не дойдёт до примитивов написанных на языке ассемблера и цепочка начнёт сворачиваться в обратном направлении. :)
P.S. Но, скорее всего, вероятно подразумевалось, например, Лисп, Пролог?
А, далее даже посчастливилось попраграмировать по работе уже процессор K1806ВМ2 и это было достаточно познaвательно. :)
и если есть кукбук, то не должно (или должно) возникнуть сложностей с их размещением и в рамках этого ресурса и возможно со ссылками и в самой «Книге рецепов для IT повара на Hexe»
Если, программист, по определению не даун, то это им легко должно легко пониматься, а если что пошло не так, то последствия его действий не заставят себя ждать (Форт упадёт и/или выведет информацию об эксепшене)
Для чисел плавающей арифметики есть отдельный стэк со словами подобными F+, F-…
P.S. Конечно, в более серьёзном Форт инструментарии может в процессе трансляции программы выводится и проверяться соответствие типов данных и операций применённых к ним, но обычно на это все использующие Форт обычно кладут «болт» и особо не парятся :)
Хотя есть варианты Форт -типа StrongForth где разработчики его стали контролировать типизацию в их Форт.
Если интересен более продвинутый «Форт», то есть например Factor — язык программирования. где на стэк помещаются уже более комплексные сущности чем числа.
Не смотрели для сравнения существующих решений этих и других задач на http://rosettacode.org?
P.S. Интересно, что на rosettacode.org JavaScript 744 решённых задач ,
а на Python — 1,269 и в 18-ти категориях
Например для типовых примеров уже готовых решений в рамках использования нового языка в чём разница Hexe с другими языками на «типовом» примере задачи.
Сентенция с Форт, в общем понимании его как языка программирования приводит к возможности записи каких то «макросов» близко по форме к естественным языкам.
Для кого то это хорошо, а кто то без явно синтаксическо-семантических ограничений присутствующих в современных языках даже не сможет понять для использования Форт.
т.е., наши привычки и освоенные взгляды — наши же «оковы» из «недоступности» понимания, что пути решения задач этим не ограничивается.
Форт ещё проще т.к. в нём нет скобок в Лисп понимании и он прямолинеен по последовательности выполнения слов при трансляции кода программы в исполнение.
На уровне трансляции Форт программ в базисе Форт нет даже понятия синтаксиса языка, кроме того, что мы имеем дело со словами — самодостаточными сущностями во взаимодействии с другими словами и создающими свой контекст при их использовании для других слов.
Уф… :)
Обычно происходят мелкие перестановки 2-3 элементов стэка и они не сложно понимаемы. Для других — «особо тяжёлых случаев» никак не ложащихся в алгоритм в Форт реализации можно использовать, например, локальные переменные появившееся в Форт стандарте 94года.
И, конечно, Форт, как язык нацеленный на использование метапрограмирования и DSL наиболее значимо себя проявляет именно при использовании таких техник его использования неплохо описанных во 2-й книге за авторством Броуди «Мышление Форт».
P.S. И, локально оттестировать поведение слова не сложно в Форт.
P.S. Кстати, страшилки по поводу неудобства «формата» записи Форт программ немного преувеличена в отношении к нему и эта «страшилка Forth» не на первом месте по степени грамотного понимания и использования Форт языка, есть и другие, но серое вещество мозга достаточно гибкая система при её «переформатировании». Форт, как «искуственный» компьютерный язык, гораздо проще в освоении чем, например, иностранный естественный язык по поводу которого нет «предвзятых» взглядов.
В России Форт начался и так же быстро сощёл со сцены в мутные 90-е годы безвременья.
Баранов С.Н. «Язык Форт в СССР и России»
Forth + Rust в проектах на Github
P.S. Не знаю чем это лучше, например, реализаций Форт на Си, ассемблере…
Особо не видно, но вероятно кто то использует в своих проектах и Forth, если и звёзд, бывает, несколько сотен какой то проект с ним на Github набирает.
P.S. Форт просто был первым языком практического програмирования из
Concatenative languages использующих стэк(и) как одну из основополагающей структуры данных в языке.
Factor — язык программирования хорошо представлен в своих возможностях.
Kitten написанный на Хаскел тоже вроде неплох
…
но эти языки акцентируются на использовании ФП в возможностях стэка.
помимо, как Factor нацеленный на ФП в комбинаторном подходе и стэк это позволяет легко это имплантировать. (в Factor ещё своя VM для запуска на разных ОС)
P.S. Используется ли и в какой степени, например JavaCC?
Интересно, что и в связке Java + Forth находятся проекты на Github
Если нужен «экстремально» простой и гибкий язык программирования, то даже в качестве DSL — Domain Specific Language применяют Forth (Форт).
При программировании микроконтроллеров и зачастую как основной инструментарий.
Была и статья на Хабр Универсальный DSL. Возможно ли это?
где Форт рассматривался в качестве DSL языка C# проекта.
Вот и ещё пример — EFrt проект полной реализации Форт на C#
P.S. Конечно же, «поверх» JavaScript JeForth.3we — Форт тоже делают
И на Github достаточно ещё проектов по связке Форт и JS
Mako.JS — Демо игры проекта запускаемые в браузере, с Форт в качестве DSL
Mako on Github
За предыдущий комментарий у меня снялось, похоже, столько же плюсиков за предыдущии комменарии и карму тоже снизили на 4-е единицы.
P.S.Хотя, когда сам одному пользователю поставил + в карму, то она с -3 стала -2,
а когда у этого же пользователя нажал в — (минус), как бы отыграть обратно, то у него сразу стало -4, а у меня убрались 2-а голоса за карму в сумме за эти действия.
Во как! Непонятно — это так и задумано или «глюк» в системе кармо-механики сайта.
У Вас ещё интересней при заплюсованности комментариев — карма действительно слита! Скорее всего — хотят Вас сподвигнуть на написание какой то статьи, иначе зачем все эти игры с кармой.
Мои поздравления.
Вы, ради только этих своих 2-ух комментариев к этой статье зарегились на Хабр вчера чтобы их оставить или так совпали звёзды?