Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Чт мар 28, 2024 16:45

...
Google Search
Forth-FAQ Spy Grafic

Часовой пояс: UTC + 3 часа [ Летнее время ]




Ответить
Имя пользователя:
Заголовок:
Текст сообщения:
Введите текст вашего сообщения. Длина сообщения в символах не более: 60000

Размер шрифта:
Цвет шрифта
Настройки:
BBCode ВКЛЮЧЕН
[img] ВЫКЛЮЧЕН
[flash] ВЫКЛЮЧЕН
[url] ВКЛЮЧЕН
Смайлики ВЫКЛЮЧЕНЫ
Отключить в этом сообщении BBCode
Не преобразовывать адреса URL в ссылки
Вопрос
Теперь гостю придется вводить здесь пароль. Не от своей учетной записи, а ПАРОЛЬ ДЛЯ ГОСТЯ, получить который можно после регистрации на форуме через ЛС.:
Этот вопрос предназначен для выявления и предотвращения автоматических регистраций.
   

Обзор темы - Язык или подход к программированию?
Автор Сообщение
  Заголовок сообщения:  Re: Язык или подход к программированию?  Ответить с цитатой
т.к. есть достаточно много разных языков программирования конкатенативной направленности и на этой Wiki и достаточно близкие Форт,
то, возможно, и какие то дизайн решения из этих языков использовать в рамках "своего" Форта. :)

P.S. В качестве затравки немного поизучал близкий Форт язык LSE64 и некоторые моменты его дизайна выглядят необычно, но вполне интересно.

Например в LSE64:

1. слова сравнения устанавливают переменную флага и в отличии от Форта всегда нужно применять их в отличии от Форт где само число в стеке можно использовать как флаг.
2. Сами слова if ifelse допускают только вызов одного (двух) слов - в Форт между IF ... ELSE ... THEN их любое количество.
3. За счёт того, что можно записывать цепочечное определение слова с одним названием то за счёт общего флага есть возможность не использовать CASE, а при ложном флаге выполнения слова и наличия с тем же именем ещё слова выполниять их последовательно до их исчерпания или позитивного флага результата в очередном слове,
4. Добавлены и некоторое количество необычных слов как, к примеру || && (выход из слова если True False)
и так как для циклов есть "одно" слово repeat (повтор тела слова) то нет необходимости в BEGIN UNTIL WHILE словах.
...
Возможно такие и другие фишки "укорачивают" код программы.

Аналог слова WORDS - dictionary
вместо точки - запятая в разном исполнении. :)
Слово COUNT - переменная счётчика цикла.

формат определения слова Имя : тело
(видется, при использовании Имени-токена до его конкретизации контекста к приведению возможности его использования СЛОВ и как сообщения в Форт системе по аналогии со Smaltalk парадигмой основанной на сообщениях)
...
[] ( addr n -- addr+n )
...

LSE64 on Github
Форк LSE64 (с какими то изменнниями от оригинала)

Ядро LSE64 написано на Cи и небольшое судя по исходникам, а при старте расширяется из файла boot.lse
После сборки под Linux собирается и Deb файл с помощью программы checkinstall

https://rosettacode.org/wiki/Category:LSE64 (почти нет решений на LSE64)
Сообщение Добавлено: Пт окт 14, 2022 12:44
  Заголовок сообщения:  Re: Язык или подход к программированию?  Ответить с цитатой
Задачи и решения из серии Компиляторостроения на rosettacode.org
Compiler

P.S. На Форт тоже приведены решения (возможнa их критика или познавательное осмысление)

Rosetta Code: Popular Programming Languages
Форт в топ 50-ти языков решения задач на rosettacode.org, Factor на 22, Quackery - 61, oForth - 85 ...

А, Бейсик языков в этом рейтинге предостаточно. :)

Глава из книги "Python for Fun"
FORTH - A simple stack oriented language
Сообщение Добавлено: Вт авг 23, 2022 16:41
  Заголовок сообщения:  Re: Язык или подход к программированию?  Ответить с цитатой
KPG писал(а):
аметки о Форт из блога инженера Михаила Киселёва
https://www.mnlist.ru/tags/#Форт


https://www.mnlist.ru/blog/2020/forth-sites
Поискать русские ресурсы по Форту человек не догадался? :)
Сообщение Добавлено: Сб авг 13, 2022 19:38
  Заголовок сообщения:  Re: Язык или подход к программированию?  Ответить с цитатой
Заметки о Форт из блога инженера Михаила Киселёва
https://www.mnlist.ru/tags/#Форт

P.S. Уже было и известно :) Easy Forth (с примером игры Змейка на Форт)

Forth на STM32F103C8T6 — настоящие динозавры не вымирают

post4 (Реализация Форт ядра в Си)
в небольшрм количестве примеров есть игра Life в терминальном выводе. :)
Сообщение Добавлено: Сб авг 13, 2022 10:29
  Заголовок сообщения:  Re: Язык или подход к программированию?  Ответить с цитатой
Total Vacuum писал(а):
Оберонщики гребни топорщат, утверждают, что ...

Такое ощущение, что они сами себе дoказывают значимость своих инструментов не вдаваясь в суть аргументов другой стороны и не поинтересовавшись в том, почему же Форт до сих пор находит своих пользователей при всех ужасах при программировании на нём в их глазах.
А, у страха, как известно, глаза большие. :)

P.S. Вот от таких непытливых глаз Форт и защищён при его непонимании.
Сообщение Добавлено: Чт авг 11, 2022 20:37
  Заголовок сообщения:  Re: Язык или подход к программированию?  Ответить с цитатой
Upd: По последней ссылке позапускал игры в Linux 32 (там же и Windows не проверял)
в CoeurForth
в скрипте для запуска указал ./ текущий путь запуска скрипта
и в оконной оболочке выбрал одним из пунктов навигации по директории методом тыка и загрузил игру и также её можно стартануть из её меню или при введении слова её запуска.

P.S. Показалось, что, к примеру Тетрис тормозит, но игра по отбиванию шарика и разрушения блоков/кирпичей вполне нормально играется в рамках моего бука под Linux 32. Pacman тоже неспешно играется.
Исходников Форт системы не увидел, а эмулятор PIC32 также запускается правкой в скрипте пути для текущей директориию.
Скачал образ сайта утилитой: wget -m <url>

Как понял, автор этого Форта, отрисовывает интерфейсы программ с помощью прямого управления OpenGL.

Ради интереса прогнал в Ida 6.8 файл MicroForth бинарника из Linux и на нём не выявил невозможности реверса, что асм, что Си псевдокод отобразились с сигнатурами использованных функций.
Сообщение Добавлено: Чт авг 11, 2022 20:02
  Заголовок сообщения:  Re: Язык или подход к программированию?  Ответить с цитатой
Total Vacuum писал(а):
А, кстати, есть нормальные игры на Форте-то? :) Я особо не интересовался никогда...

Как определиться с понятием нормальная? (примеры каких то игр в демо примерах той или иной Форт системы Win32Forth ... имеются, и были всякие топики и на местном форуме по поводу игр)
То, что игры написанные в рамках Форт есть - это неоспоримый факт, а какие конкретно продаваемые игры, к примеру, были сделаны на Форт когда либо и под какое железо немного исследовал tru-grue
Старые игры на языке Форт

На Github можно в связке Forth game тоже посмотреть вывод.

P.S. GlForth (расширение gForth для игр) :)
Изображение

Grobots
Изображение

ИзображениеИзображениеИзображение

Windows applications
Изображение
...
Для Pocket PC кто то из фортёров делал игры на DsForth (Delo Soft Forth)
Сообщение Добавлено: Чт авг 11, 2022 14:11
  Заголовок сообщения:  Re: Язык или подход к программированию?  Ответить с цитатой
KPG писал(а):
"Неожиданно", топик обсуждения Форт на zx-pk.ru (05.07.2022)
FORTH vs компилятор бейсика vs C++/Pascal/остальное
Забавно, пробежался по обсуждению. Оберонщики гребни топорщат, утверждают, что на Форте нормальных игр нет и быть не может, и приводят в пример с десяток игр, написанных на Обероне - без слез не взглянешь :)
И неожиданно много защитников Форта :)


А, кстати, есть нормальные игры на Форте-то? :) Я особо не интересовался никогда...
Сообщение Добавлено: Чт авг 11, 2022 11:56
  Заголовок сообщения:  Re: Язык или подход к программированию?  Ответить с цитатой
Заметка о языке :Firth сделанного в рамках Lua.
:Firth pre-alpha 1– a Forth-like language for DSL creation.

P.S. Тут, ещё подумалось, что можно использовать отдельно библиотеку LibJit
для повышения производительности Форт программ при стековом байт коде VM (может и для МК может сработать при наличии ресурсов в необходимой мере)
Библиотека нормально собралась и отработала тесты под Linux 32 (правда не последняя её версия)
В примере библиотеки "скриптовый" Паскаль Dpas с выполнением кода во время загрузки его с исходника.
На Github есть некоторое количество отдельных языков в привязкe к этой библиотеке.

С помощью библиотеки строится внутреннее представление программы в памяти, а далее при наличии поддержки бэка целевой архитектуры он выполняется, но может быть выполнен из этого представления без наличия бек-энда и с хорошей производительностью при этом.

https://ru.bmstu.wiki/LibJIT
...
Основы программного моделирования ЭВМ.pdf
Интерпретаторы байт-кодов своими руками (из 3-ёх статей)
Сообщение Добавлено: Ср авг 10, 2022 04:37
  Заголовок сообщения:  Re: Язык или подход к программированию?  Ответить с цитатой
Думаю, очень многие ломали головы что же такое Forth, какое положение он занимает в привязанности к машинному коду и т.д.
В целом, на Forth можно смотреть с разных точек зрения, поэтому можно предположить, что это скорее набор принципов.
Не ясно можно ли назвать это парадигмой, ведь в Forth-системах применяется стеково-ориентированное программирование или, например, контекстно-ориентированное программирование [1].
Да что вообще можно сказать про Forth? Есть ли у него синтаксис? Ответ: нету :) Весь код, кроме метаданных, состоит из названий определений.
Помимо этого, Forth явных типов данных не имеет. Т.е. смысл определений и их названия определяют как и что на этом языке можно писать.
Можно сказать, что Forth это подход по созданию метаязыка. А стек оказался лишь более удобным способом работы с данными в таких языках.
А какой это будет язык, на чём написан и какие решения будут использованы для разработки – решать разработчикам.
В итоге, получается, что многие Forth-системы, это лишь диалекты базового языка, что предлагают нам стандарты.

Сообщение Добавлено: Пн авг 08, 2022 17:24
  Заголовок сообщения:  Re: Язык или подход к программированию?  Ответить с цитатой
На Спектруме я Форт впервые попробовал "вживую". И надо сказать, что именно на Спектруме он был действительно удобнее и быстрее других компиляторов. Встроенный Бейсик не в счет, и слишком медленный, а остальные языки, от ассемблеров, до расширений Бейсика, а также Си и Паскаля мгновенно съедали память на компилятор, а ведь нужно было еще текст набрать и скомпилированный код куда-то положить. В этом смысле спектрумовский Форт был не только практичнее, поскольку позволял набирать программу и не особо следить за ее размером, но еще и по какой-то причине быстрее. Видимо, на тот момент компиляторы особых оптимизаций и не проводили. До сих пор помню, что пробовал тогда поиск совершенных чисел. В диапазоне от 1 до 10000 Бейсика вообще было не дождаться, а вот Форт оказался быстрее, чем Си.
Сообщение Добавлено: Ср авг 03, 2022 03:59
  Заголовок сообщения:  Re: Язык или подход к программированию?  Ответить с цитатой
"Неожиданно", топик обсуждения Форт на zx-pk.ru (05.07.2022)
FORTH vs компилятор бейсика vs C++/Pascal/остальное

P.S. Из развиваемых проектов Форт для Z80 M4 FORTH: A Forth compiler for the Z80 CPU and ZX Spectrum
и много Z80 Форт и для ZX programandala-net
Сообщение Добавлено: Ср авг 03, 2022 03:06
  Заголовок сообщения:  Re: Язык или подход к программированию?  Ответить с цитатой
Стек и конкатенативная компиляция видятся как технические способы организации вот этой самой последовательности функций. Ну или можно оттолкнуться от конкатенативной компиляции ("видим токен - компилируем вызов"), тогда стек - это просто способ передачи данных между вызовами, а словарь на основе связанного списка - один из вариантов соотнесения имен и адресов.
Сообщение Добавлено: Сб янв 08, 2022 01:53
  Заголовок сообщения:  Re: Язык или подход к программированию?  Ответить с цитатой
Цитата:
"используются ли фортоподобные алгоритмы при построении программного приложения?"

Что тогда относить к фортоподобным алгоритмам? Конкатенативную компиляцию и поиск по словарю или последовательность простых функций (процедур?), работающих с глобальными данными? И насколько данный подход применим за пределами собственно Форта (с постфиксной записью и стеками)? Понятно, что искусственно можно реализовать приведённый пример, но применяется ли такое на практике?
Сообщение Добавлено: Пт янв 07, 2022 12:12
  Заголовок сообщения:  Re: Язык или подход к программированию?  Ответить с цитатой
Может не в тему топика
такой комментарий
одного разработчика встраивающего Форт в свои корпоративные проекты.

P.S. Автоперевод вопроса https://coderoad.ru/11745658/Как-бы-можно-было-закодировать-приложение-в-Forth-или-Factor :)
Сообщение Добавлено: Пт янв 07, 2022 05:55

Часовой пояс: UTC + 3 часа [ Летнее время ]


cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
phpBB сборка от FladeX // Русская поддержка phpBB