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

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 858 ]  На страницу Пред.  1 ... 42, 43, 44, 45, 46, 47, 48 ... 58  След.
Автор Сообщение
 Заголовок сообщения: Re: Интересные ссылки
СообщениеДобавлено: Сб дек 05, 2020 21:54 
Не в сети

Зарегистрирован: Пн янв 28, 2019 03:10
Сообщения: 174
Благодарил (а): 20 раз.
Поблагодарили: 13 раз.
Цитата:
только, в этом случае, скорость "Форт" кода не будет иметь лучшие позиции

Если он встраивается, то, скорее всего, в качестве скриптового языка, а он и не обязан быть супербыстрым - критичные к скорости выполнения участки кода пишутся на чём-то более производительном


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Интересные ссылки
СообщениеДобавлено: Сб дек 05, 2020 22:57 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
KPG писал(а):
только, в этом случае, скорость "Форт" кода не будет иметь лучшие позиции.
т.е. если до этого об каких то оптимизациях алгоритма в "чистом" Форт можно было особо не думать, то в таком варианте его использования могут быть неудобства.

В скрипте главное - чтобы его было удобно разрабатывать и сопровождать. Если он управляет запуском кода, написанного на базовом языке, то может оказаться, что 99% производительности этим языком и определяется.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Интересные ссылки
СообщениеДобавлено: Вс дек 06, 2020 02:56 
Не в сети

Зарегистрирован: Пн янв 07, 2013 22:40
Сообщения: 2141
Благодарил (а): 8 раз.
Поблагодарили: 74 раз.
zma писал(а):
Цитата:
только, в этом случае, скорость "Форт" кода не будет иметь лучшие позиции

Если он встраивается, то, скорее всего, в качестве скриптового языка, а он и не обязан быть супербыстрым - критичные к скорости выполнения участки кода пишутся на чём-то более производительном

Тогда надо определиться, Форт подразумевает "низкоуровневое" программирование или это лишнее в его использовании и соответственно на чём тогда он конкурирует, например, с Lua ... и другими скриптовыми и шелл языками для конечного пользователя.

Целевой пользователь "Форт" языка не так же просто возьмёт и будет его использовать в современном выборе альтернатив. :)

Hishnik писал(а):
B скрипте главное - чтобы его было удобно разрабатывать и сопровождать. Если он управляет запуском кода, написанного на базовом языке, то может оказаться, что 99% производительности этим языком и определяется.

Думаю, важнее, приемлемый уровень покрытия Форт "DSL" модели решения задач на него заточенных.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Интересные ссылки
СообщениеДобавлено: Вс дек 06, 2020 04:26 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
KPG писал(а):
Тогда надо определиться, Форт подразумевает "низкоуровневое" программирование или это лишнее в его использовании и соответственно на чём тогда он конкурирует, например, с Lua ... и другими скриптовыми и шелл языками для конечного пользователя.

Современное программирование достаточно уверенно подразделяется на desktop, web, mobile, embedded. В этих сферах, а также по областям применения, существуют различные приоритетные характеристики.

Общее свойство Форта, конкурентоспособное в любых условиях - он может быть специально разработан для встраивания в систему. Lua, tcl, python, какой-то еще язык с возможностями скриптования развиваются их разработчиками и могут в любой момент пойти в ту сторону, в какую разработчик считает правильным. Поэтому в главной степени преимущество Форта проявляется в том, что его проще остальных (сопоставимых по возможностям) языков написать самостоятельно с требуемыми характеристиками.

Соответственно, и с Lua он конкурирует не тем, что у него, условно, возможностей больше реализован (как любят иногда демонстрировать знание жаргона - "из коробки"), или что у него на некоторой задаче производительность выше на 2%, а тем, что выход за пределы реализованных возможностей Lua потребует все-таки глубокого вникания в реализацию Lua, а разработчик Форта уже понимает, что он заложил в свою реализацию, и для него внесение изменений - это не порог профессионализма, который он должен перепрыгнуть, а нормальный эволюционный процесс. Для автомеханика собранная машина лучше любой купленной, если уж он имеет гараж с ворохом деталей и навыки.

KPG писал(а):
Думаю, важнее, приемлемый уровень покрытия Форт "DSL" модели решения задач на него заточенных.

А это оно и есть. Причем заранее понять, какое там должно быть покрытие, практически невозможно. Адаптация Форта это и есть процесс сопровождения.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Интересные ссылки
СообщениеДобавлено: Вс дек 06, 2020 17:53 
Не в сети

Зарегистрирован: Пн янв 28, 2019 03:10
Сообщения: 174
Благодарил (а): 20 раз.
Поблагодарили: 13 раз.
KPG писал(а):
Тогда надо определиться, Форт подразумевает "низкоуровневое" программирование или это лишнее в его использовании и соответственно на чём тогда он конкурирует, например, с Lua ... и другими скриптовыми и шелл языками для конечного пользователя.

Это зависит от конкретной Форт-системы и от конкретного её применения в проекте. К низкоуровневым языкам программирования совсем другие требования, соответственно и Форт нужно будет строить по-другому.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Интересные ссылки
СообщениеДобавлено: Пн дек 07, 2020 11:30 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 1288
Благодарил (а): 3 раз.
Поблагодарили: 18 раз.
Hishnik писал(а):
разработчик Форта уже понимает, что он заложил в свою реализацию, и для него внесение изменений - это не порог профессионализма, который он должен перепрыгнуть, а нормальный эволюционный процесс. Для автомеханика собранная машина лучше любой купленной, если уж он имеет гараж с ворохом деталей и навыки.

А если форт используется не собственный, а тот, чья реализация для его использующего темный лес?

_________________
Цель: сделать 64-битную Нову под Винду


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Интересные ссылки
СообщениеДобавлено: Пн дек 07, 2020 12:59 
Не в сети

Зарегистрирован: Пн янв 07, 2013 22:40
Сообщения: 2141
Благодарил (а): 8 раз.
Поблагодарили: 74 раз.
Victor__v писал(а):
А если форт используется не собственный, а тот, чья реализация для его использующего темный лес?

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

P.S. Самое главное не забыть, что в Форт - всё в СЛОВАХ. :)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Интересные ссылки
СообщениеДобавлено: Пн дек 07, 2020 16:44 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
Victor__v писал(а):
А если форт используется не собственный, а тот, чья реализация для его использующего темный лес?

Если не собственный, то много принципиальных возможностей просто теряются. Не на уровне "какое тут есть слово", а методологических.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Интересные ссылки
СообщениеДобавлено: Вс дек 27, 2020 19:54 
Не в сети

Зарегистрирован: Пн янв 07, 2013 22:40
Сообщения: 2141
Благодарил (а): 8 раз.
Поблагодарили: 74 раз.
Обновилась программа форматирования Си|C++ исходников (язык реализации "диалект" Win32Forth)
http://www.inventio.co.uk/Cweedexe.htm

P.S. Видео с проекта: Gameduino + FM synthesis (ссылка на проект под видео)
https://www.youtube.com/watch?v=o0-lQ3pMrYY
В FPGA Gameduino есть и возможность размещать специализированные Моды той или иной функциональности,
(в репозитории того же автора)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Интересные ссылки
СообщениеДобавлено: Ср мар 10, 2021 05:12 
Не в сети

Зарегистрирован: Пн янв 07, 2013 22:40
Сообщения: 2141
Благодарил (а): 8 раз.
Поблагодарили: 74 раз.
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

Изображение


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Интересные ссылки
СообщениеДобавлено: Ср мар 10, 2021 12:19 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
Вот! Люди берут и пишут себе Форт на чем хотят! :)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Интересные ссылки
СообщениеДобавлено: Чт мар 11, 2021 16:49 
Не в сети

Зарегистрирован: Пн янв 07, 2013 22:40
Сообщения: 2141
Благодарил (а): 8 раз.
Поблагодарили: 74 раз.
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


Последний раз редактировалось KPG Вс мар 14, 2021 17:38, всего редактировалось 4 раз(а).

Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Интересные ссылки
СообщениеДобавлено: Пт мар 12, 2021 09:35 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
KPG писал(а):
Посмотрел на Форт-систему MinForth. Всё вполне рабочее.

Главное - наконец осмелиться писать код самостоятельно :)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Интересные ссылки
СообщениеДобавлено: Ср май 19, 2021 11:28 
Не в сети

Зарегистрирован: Пн янв 07, 2013 22:40
Сообщения: 2141
Благодарил (а): 8 раз.
Поблагодарили: 74 раз.
Форт в виде модуля в ядре 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)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Интересные ссылки
СообщениеДобавлено: Пт май 21, 2021 22:49 
Не в сети

Зарегистрирован: Пн янв 07, 2013 22:40
Сообщения: 2141
Благодарил (а): 8 раз.
Поблагодарили: 74 раз.
Интересно, почему проект Collapse OS на Github имеет столько звёзд (4,2k)?
Collapse OS
Код:
Collapse OS - это операционная система Forth и набор инструментов и документации с единственной целью: сохранить возможность программирования микроконтроллеров после цивилизационного коллапса.


P.S. Другие проекты под тэгом Forth на Github


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 858 ]  На страницу Пред.  1 ... 42, 43, 44, 45, 46, 47, 48 ... 58  След.

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


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8


Вы не можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

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