Page 4 of 4

Re: Форт в ядре колибри.

Posted: Thu Jan 22, 2009 12:27 pm
by Mihail
bw wrote: мне не понятен смысл Forth и других языков в ядре.
Тело Форта представляетсобой набор иненованных, слаба связанных между собой
процедур, доступных пользователю. Т.е. идея заклюается в предоставлении всех процедур
не задумываясь о том, зачем они могут понадобится пользователю. Я планирую открыть ядро
системы пользователю для чтения и передачи управления, для использования его в кочестве
библиотеки подпрограмм. Работа форт-интерпретатора заключается
1. в изъятии очередного слова из входного потока
2 поиску его в словаре
3 передачи управления по адресу, соответствующему этому слову
Т.е. интерпретатор примитивен и для системы не накладен.
Словарь изначально может быть неполным дополнительные словарные статьи
могут быть загружены по мере необходимости. Любую процедуру Колибри
можно оформить в виде словарной статьи.
Единствено надо учесть, что ей передаются параметры не как принято в
Форте через стек данных, а через регистры.

Re: Форт в ядре колибри.

Posted: Thu Jan 22, 2009 5:12 pm
by tsdima
Mihail wrote:идея заклюается в предоставлении всех процедур
не задумываясь о том, зачем они могут понадобится пользователю
При таком подходе ни о какой стабильности работы ОС говорить не приходится. :evil:

Re: Форт в ядре колибри.

Posted: Fri Jan 23, 2009 8:38 pm
by Mihail
tsdima wrote:
Mihail wrote:идея заклюается в предоставлении всех процедур
не задумываясь о том, зачем они могут понадобится пользователю
При таком подходе ни о какой стабильности работы ОС говорить не приходится. :evil:
Для стабильности работы ОС, достаточно область памяти ее месторасположения, защитить от
записи. Но для экспериментов можно предоставить режим с полным доступом.
Galkov wrote:Вы продвигали идею оптимизации кода на Форте.
А о том КАК Вы это делали - только некая ссылка на wiki
Все таки сошлюсь http://wiki.forth.org.ru/optimizer .
Может это еще кому интересно. И это описания я ели из себя выдавил.
Оптимизация достигается подменой кода. Т.ч. настроив оптимизатор на
конкретную программу можно достичь идеальной оптимизации.

В последней версии встроенного в Колибри Форта http://depositfiles.com/files/xqeg2bxq2
я разблокировал оптимизатор. Для демонстрации включен генератор листингов для
некоторых файлов.(после сборки появляются файлы с _L в конце).
В рантайме весь оптимизатор не влезает работает урезанная версия

Re: Форт в ядре колибри.

Posted: Tue Feb 17, 2009 3:59 pm
by Kopa
Mario wrote: Между прочим идея перспективная. В данном контексте Форт можно рассматривать как JCL, CLIST и REXX (языки на майнфреймах IBM) с возможностью развития любым пользователем. Форт не отменяет асм - он его дополняет.
Не удержался, что бы не запостить ссылку где почти весь проект ( от 10 Мб исходников Biosa на Форте )
http://tracker.coreboot.org/trac/openfirmware/browser

там же http://tracker.coreboot.org/trac/ есть ещё использование Форта в Bios
для других проектов. Скачивать можно заходя в поддиректории trac-a и кликая на значок внизу страницы - zip архив одним файлом.

P.S. Sorry если не к месту :)

Re: Форт в ядре колибри.

Posted: Thu Dec 11, 2014 2:37 am
by kiv
Вижу тема заглохла, что и следовало ожидать.
Тем, кто вопрошал :

- ИМХО forth: "компилятор/интерпритатор" представляет из себя реализацию стековой машины, в виду этого может встраиваться в любой ЯП, математический аналог лямбда-исчисления реализованного автоматом с магазиннойпамятью в противовес машине-Тьюринга, физическим аналогом является ALU с MISC архитектурой в противовес RISC решая в частности туже задачу, что решает введение регистровых окон в RISC ALU в SPARC архитектуре, forth предоставляет механизм общий для всех высокоуровневых ЯП баз самого этого ЯП;

- ИМХО позволяет: реализовать глобальные переменные, писать в функциональном стиле - как в Lisp, писать в ООП стиле (возможно, какая-то убогая реализация раз вместо кучи используются стеки), "легко" переносить программы между ЯП меняя только код базовых функций (см. как программируют на Lisp) - записей в словаре, генерировать компактный код, генерировать великолепно кэшируемый код, в случае хорошего оптимизатора; (вероятно, при желании можно впихнуть любые особенности ВЯП использующие стеки и различные стратегии вычислений, но это потребует еще больше компиляции\интерпретации\оптимизации от языка)

- ИМХО бездумное повсеместное использование противопоказано и ведет к нервным срывам (не забываем про инкапсуляцию всего и вся в лямбда-исчислении и что на этом писать реальные алгоритмы).

Сам я не за и не против его использования, а за здравый смысл...

Re: Форт в ядре колибри.

Posted: Sat May 23, 2015 7:25 pm
by Kopa
На просторах интернета нашёлся и такой проект. :)
GFOS

Code: Select all

The 32-bit GFOS (Graphical Forth Operating System) was written entirely in assembly with NASM (Intel, minimum PENTIUM). It has been tested with emulators (BOCHS and QEMU) and on real hardware (an old desktop, a netbook and a laptop). The bochs-config file can be found in gfos.zip and fos.zip. fos.zip is an old non-graphical version of GFOS, no multitasking
This OS doesn't use the mouse.
It has most of the words from ANSI Forth. The main things that are missing are the double cells, value, locals and ;code. The search-related words are only: FIND, ORDER and ORDER? . GFOS is case insensitive. Currently there are four dictionaries/vocabularies consisting of 8 subdictionaries according to the length of the words. This speeds up the search. forth.asm in the source is very well commented and the source of YForth should also be checked (it's written in C and can be downloaded from this page).
Features:
- Multitasking
- IDE HDD support
- Floating Point
- 1024*768*16
- USB (EHCI, UHCI) pendrive support (sectors/files)
- HD Audio driver
- Boots from winchester(also from USB pen-drive), floppy, CD-with-floppyemulation (from floppy and disk also with Bochs)
A Bitmap Font Editor is also available (BFEditor.zip, written in python 2.7) in order to facilitate the design of charsets for high resolution in GFOS (e.g. 16*24 fonts for 1024*768).
Последние правки в проекте May 21, 2015,

P.S. Сейчас в рамках использования Форт для ARM контроллеров/процессоров экспериментирую с возможностями VFX (коммерческой Форт системы в Lite версии) для STM32 (Cortex ядер). Опробовал запуск VFX на STM32L1xx серии контроллеров (почти полнофункционально)
Для PC тоже доступен урезанный вариант данной Форт системы.
Со временем, возможно, "сниму" ограничения доступных вариантов VFX кросс средств :) (есть некоторые результаты в этом направлении)
Если будет открытое железо для Kолибри, то, например, ARM контроллеры в нём тоже можно применить по задачам.

Re: Форт в ядре колибри.

Posted: Tue May 26, 2015 3:33 pm
by Gluk
до сих пор не видел реализации форта лучше чем amforth, просто супер-пупер и на своём месте (в отличии от гипотетического форта в ядре Колибри)