Forth http://fforum.winglion.ru/ |
|
Интересные ссылки http://fforum.winglion.ru/viewtopic.php?f=35&t=161 |
Страница 45 из 58 |
Автор: | zma [ Сб дек 05, 2020 21:54 ] |
Заголовок сообщения: | Re: Интересные ссылки |
Цитата: только, в этом случае, скорость "Форт" кода не будет иметь лучшие позиции Если он встраивается, то, скорее всего, в качестве скриптового языка, а он и не обязан быть супербыстрым - критичные к скорости выполнения участки кода пишутся на чём-то более производительном |
Автор: | Hishnik [ Сб дек 05, 2020 22:57 ] |
Заголовок сообщения: | Re: Интересные ссылки |
KPG писал(а): только, в этом случае, скорость "Форт" кода не будет иметь лучшие позиции. т.е. если до этого об каких то оптимизациях алгоритма в "чистом" Форт можно было особо не думать, то в таком варианте его использования могут быть неудобства. В скрипте главное - чтобы его было удобно разрабатывать и сопровождать. Если он управляет запуском кода, написанного на базовом языке, то может оказаться, что 99% производительности этим языком и определяется. |
Автор: | KPG [ Вс дек 06, 2020 02:56 ] |
Заголовок сообщения: | Re: Интересные ссылки |
zma писал(а): Цитата: только, в этом случае, скорость "Форт" кода не будет иметь лучшие позиции Если он встраивается, то, скорее всего, в качестве скриптового языка, а он и не обязан быть супербыстрым - критичные к скорости выполнения участки кода пишутся на чём-то более производительном Тогда надо определиться, Форт подразумевает "низкоуровневое" программирование или это лишнее в его использовании и соответственно на чём тогда он конкурирует, например, с Lua ... и другими скриптовыми и шелл языками для конечного пользователя. Целевой пользователь "Форт" языка не так же просто возьмёт и будет его использовать в современном выборе альтернатив. Hishnik писал(а): B скрипте главное - чтобы его было удобно разрабатывать и сопровождать. Если он управляет запуском кода, написанного на базовом языке, то может оказаться, что 99% производительности этим языком и определяется. Думаю, важнее, приемлемый уровень покрытия Форт "DSL" модели решения задач на него заточенных. |
Автор: | Hishnik [ Вс дек 06, 2020 04:26 ] |
Заголовок сообщения: | Re: Интересные ссылки |
KPG писал(а): Тогда надо определиться, Форт подразумевает "низкоуровневое" программирование или это лишнее в его использовании и соответственно на чём тогда он конкурирует, например, с Lua ... и другими скриптовыми и шелл языками для конечного пользователя. Современное программирование достаточно уверенно подразделяется на desktop, web, mobile, embedded. В этих сферах, а также по областям применения, существуют различные приоритетные характеристики. Общее свойство Форта, конкурентоспособное в любых условиях - он может быть специально разработан для встраивания в систему. Lua, tcl, python, какой-то еще язык с возможностями скриптования развиваются их разработчиками и могут в любой момент пойти в ту сторону, в какую разработчик считает правильным. Поэтому в главной степени преимущество Форта проявляется в том, что его проще остальных (сопоставимых по возможностям) языков написать самостоятельно с требуемыми характеристиками. Соответственно, и с Lua он конкурирует не тем, что у него, условно, возможностей больше реализован (как любят иногда демонстрировать знание жаргона - "из коробки"), или что у него на некоторой задаче производительность выше на 2%, а тем, что выход за пределы реализованных возможностей Lua потребует все-таки глубокого вникания в реализацию Lua, а разработчик Форта уже понимает, что он заложил в свою реализацию, и для него внесение изменений - это не порог профессионализма, который он должен перепрыгнуть, а нормальный эволюционный процесс. Для автомеханика собранная машина лучше любой купленной, если уж он имеет гараж с ворохом деталей и навыки. KPG писал(а): Думаю, важнее, приемлемый уровень покрытия Форт "DSL" модели решения задач на него заточенных. А это оно и есть. Причем заранее понять, какое там должно быть покрытие, практически невозможно. Адаптация Форта это и есть процесс сопровождения. |
Автор: | zma [ Вс дек 06, 2020 17:53 ] |
Заголовок сообщения: | Re: Интересные ссылки |
KPG писал(а): Тогда надо определиться, Форт подразумевает "низкоуровневое" программирование или это лишнее в его использовании и соответственно на чём тогда он конкурирует, например, с Lua ... и другими скриптовыми и шелл языками для конечного пользователя. Это зависит от конкретной Форт-системы и от конкретного её применения в проекте. К низкоуровневым языкам программирования совсем другие требования, соответственно и Форт нужно будет строить по-другому. |
Автор: | Victor__v [ Пн дек 07, 2020 11:30 ] |
Заголовок сообщения: | Re: Интересные ссылки |
Hishnik писал(а): разработчик Форта уже понимает, что он заложил в свою реализацию, и для него внесение изменений - это не порог профессионализма, который он должен перепрыгнуть, а нормальный эволюционный процесс. Для автомеханика собранная машина лучше любой купленной, если уж он имеет гараж с ворохом деталей и навыки. А если форт используется не собственный, а тот, чья реализация для его использующего темный лес? |
Автор: | KPG [ Пн дек 07, 2020 12:59 ] |
Заголовок сообщения: | Re: Интересные ссылки |
Victor__v писал(а): А если форт используется не собственный, а тот, чья реализация для его использующего темный лес? Обычно разбирается тот уровень Форт, который хочешь использовать и соответственно от этого и дальнейшие действия по возможным вариантам. P.S. Самое главное не забыть, что в Форт - всё в СЛОВАХ. |
Автор: | Hishnik [ Пн дек 07, 2020 16:44 ] |
Заголовок сообщения: | Re: Интересные ссылки |
Victor__v писал(а): А если форт используется не собственный, а тот, чья реализация для его использующего темный лес? Если не собственный, то много принципиальных возможностей просто теряются. Не на уровне "какое тут есть слово", а методологических. |
Автор: | KPG [ Вс дек 27, 2020 19:54 ] |
Заголовок сообщения: | Re: Интересные ссылки |
Обновилась программа форматирования Си|C++ исходников (язык реализации "диалект" Win32Forth) http://www.inventio.co.uk/Cweedexe.htm P.S. Видео с проекта: Gameduino + FM synthesis (ссылка на проект под видео) https://www.youtube.com/watch?v=o0-lQ3pMrYY В FPGA Gameduino есть и возможность размещать специализированные Моды той или иной функциональности, (в репозитории того же автора) |
Автор: | KPG [ Ср мар 10, 2021 05:12 ] |
Заголовок сообщения: | Re: Интересные ссылки |
MinForth (A minimalistic but complete standard Forth compiler in C) Код: MinForth V3.4 is a classic Forth system with command-line interface. Development resource requirements are minimal. A source text editor and a C compiler are sufficient. By design no toolchain is required to adapt or rebuild MinForth. A complete rebuild takes only few seconds. Current sources are for Windows and Linux (32-bit or 64-bit). MinForth primitive definitions are written in mixed Forth and C language and are transpiled to pure C code. Main but not exclusive application for the transpiler is to build the MinForth V3.4 high-level Forth compiler. Forthlang Код: A simple LLVM frontend to Forthlang - my own simple dialect of Forth |
Автор: | Hishnik [ Ср мар 10, 2021 12:19 ] |
Заголовок сообщения: | Re: Интересные ссылки |
Вот! Люди берут и пишут себе Форт на чем хотят! |
Автор: | KPG [ Чт мар 11, 2021 16:49 ] |
Заголовок сообщения: | Re: Интересные ссылки |
Hishnik писал(а): Вот! Люди берут и пишут себе Форт на чем хотят! Больше хороших и разных Форт-систем. На чём хотят для себя, отдельный Фортёр решает сам. P.S. Посмотрел на Форт-систему MinForth. Всё вполне рабочее. У себя проверил в 32-х бит варианте под Windows при сборке TCC компиляторoм на последнем официальном релизе. (всё собралось в рабочую систему). В качестве эмулятора VT100 использовал ConEmu в связке с Far, хотя автор проекта приложил какой то эмулятор ANS, Немного сначала не получилось собрать Turnkey вариант примера автономной программы, но некоторая правка примера помогла. (файл компилируется в каталоге src) Код: \ ---------------------------------------------------------------------------- \ MinForth V3.4 File Checker \ ---------------------------------------------------------------------------- \ uses an overlay file filecheck.ovl that \ - is loaded and executed automatically when correct and present \ - when not present, asks for a passkey to start the interpreter \ Usage: \ mf2c.bat filecheck.mfc \ tc32,bat filecheck \ ------ Minforth Wordsets --------------------------------------------------- \ include only required wordsets #include core.mfc #include facility.mfc #include double.mfc #include string.mfc #include file.mfc #include tools.mfc #include overlay.mfc \ ------ Filecheck Integration ----------------------------------------------- : _FCHECKNOBOOT ; IS _START \ disable other starts and cl parameters IS _LOGO \ silent mode w/o logo display : _FCHECKNOSTART \ ungraceful exit ." ?? wrong key" cr bye ; : _FILECHECKBOOT \ either load overlay and autostart, or ask for passkey s" filecheck.ovl" file-status nip ~IF \ overlay found s" filecheck.ovl" loaded-overlay s" mfchksum" evaluate 0 sysexit ELSE ." Passkey? " here dup 8 accept _number? IF 1234 <> IF _fchecknostart THEN ELSE \ no number _fchecknostart THEN THEN \ start normal interpreter deferred _boot \ standard boot sequences s" filecheck.mf" included cr ." type:" cr ." save-overlay filecheck.ovl" cr ." bye" cr ; IS _BOOT \ ------ Start MinForth System ----------------------------------------------- : MAIN \ ( -- ) MF Hilevel Forth system, called by C main() function _boot \ initialize system \ _logo \ startup message \ _start \ start _abort \ initialize and start Forth text interpreter bye ; \ clean system before program end Интересно, что в этом варианте используется приложение сформированное отдельным способом в виде бинарного оверлейного файла загруженного Форт-кода и выгруженного из системы после перезапуска Форт-системы и далее словом save-overlay. При старте Forth системы примера этот оверлей находится, загружается и по действию завершения программы он автоматически стартует на последнее слово в нём. В качестве такого приложения приведён Форт код вычисления контрольной суммы файла. Консольный тетрис и бенчмарки тоже запустились. Подкупает в дизайне этой Форт-системы, что в одном файле сшивается Форт и Си код с помощью транспиллера. и система для DOS, Linux, Windows в разрядности 32/64 собираемая разными Си компиляторами, (лицензия системы основана на MIT) Для Win10 для поддержки ESC последовательностей достаточно в терминале выполнить команду Код: reg add HKCU\Console /v VirtualTerminalLevel /t REG_DWORD /d 1
|
Автор: | Hishnik [ Пт мар 12, 2021 09:35 ] |
Заголовок сообщения: | Re: Интересные ссылки |
KPG писал(а): Посмотрел на Форт-систему MinForth. Всё вполне рабочее. Главное - наконец осмелиться писать код самостоятельно |
Автор: | KPG [ Ср май 19, 2021 11:28 ] |
Заголовок сообщения: | Re: Интересные ссылки |
Форт в виде модуля в ядре Linux kForth in kernel Linux У меня проект собрался и показал работоспособность, но автор вроде не осилил колбэки. Цитата: root# insmod ./kforth.ko root# echo WORDS > /dev/kforth root# cat /dev/kforth KFORTH words forget >name >link export kcall kallsyms_lookup_name @0 ." r" " parse_string .str x.str u.str >str str_ptr str_buf +! } { constant does> (does2) (does1) immediate ; : variable create latest definitions leave loop lev _end_loop_ _loop_ do _do_ until begin else then if allot ] [ / init init_msg interpret literal [compile] ['] ' cfa, execute number number_res pow ?stack ?exec ?comp ?pair ?csp !csp csp error abort quit ok_msg message erb warning msgs _interpret_ -find (find) (compare) c= c_lower n>link query word trailing expect count type . x. u. cr emit key ?emit ?key depth , c, state case_sensitive span >in tib_size tib (u/) umod nop c! c@ >> << i+ j i 2dup over RP! RP@ SP! SP@ r> >r = < > xor or and mod * - + lit swap dup drop ! @ 9 8 7 6 5 4 3 2 1 0 local_scope local base cell here rp0 sp0 dp context0 current0 context current bl OK Код: echo | cat ./test > /dev/kforth kforth.ko (~29.3 Kb) в 32-х разрядной Linux LiveCD XenialPup составил. (для ядра 4.4,95) |
Автор: | KPG [ Пт май 21, 2021 22:49 ] |
Заголовок сообщения: | Re: Интересные ссылки |
Интересно, почему проект Collapse OS на Github имеет столько звёзд (4,2k)? Collapse OS Код: Collapse OS - это операционная система Forth и набор инструментов и документации с единственной целью: сохранить возможность программирования микроконтроллеров после цивилизационного коллапса. P.S. Другие проекты под тэгом Forth на Github |
Страница 45 из 58 | Часовой пояс: UTC + 3 часа [ Летнее время ] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |