Forth http://www.fforum.winglion.ru/ |
|
ef \ esoteric forth \ http://www.fforum.winglion.ru/viewtopic.php?f=40&t=3244 |
Страница 15 из 15 |
Автор: | Total Vacuum [ Пн сен 12, 2022 16:15 ] |
Заголовок сообщения: | Re: ef \ esoteric forth \ |
Смотрю на b16 и туплю, не могу понять, как они swap делают. over >r nip r> или можно как-то короче? После выходных мозги совсем атрофировались. |
Автор: | KPG [ Пн сен 12, 2022 18:34 ] |
Заголовок сообщения: | Re: ef \ esoteric forth \ |
Total Vacuum писал(а): Смотрю на b16 и туплю, не могу понять, как они swap делают. over >r nip >r или можно как-то короче? После выходных мозги совсем атрофировались. Не короче, но может и так? Код: >r >a r> a P.S. По картинке архитектуры b16 в презентации по её схеме проще понять как привязана система команд к стекам CPU. |
Автор: | Hishnik [ Вт сен 13, 2022 00:29 ] |
Заголовок сообщения: | Re: ef \ esoteric forth \ |
Там отдельно регистры для вершины стека. Для них можно выполнить обмен за один такт. Это не программирование, где нужна временная переменная. В синхронной схеме операции a <= b и b <= a могут выполняться параллельно. |
Автор: | KPG [ Ср сен 14, 2022 03:05 ] |
Заголовок сообщения: | Re: ef \ esoteric forth \ |
В проекте NanoForth для AVR Форт слова ограничены 3-мя символами. nanoFORTH What P.S. В примитивах команд FVM нет слов беззнакового сравнения U> U< , которые, возможно имело бы смысл добавить и возможно имеет смысл в системе команд сделать 3-ёх бит поле условия для перехода, для размещения в команде перехода слов сравнения и тогда добавить команду c безусловным переходом. |
Автор: | Total Vacuum [ Ср сен 14, 2022 12:10 ] |
Заголовок сообщения: | Re: ef \ esoteric forth \ |
Мой сайт временно протух из-за хостинга-русофоба... Найду какой-нибудь другой хостинг и буду переползать, ссылки пока не работают. Приму в дар "без регистрации и sms" бесплатный хостинг с php, mysql, ftp и желательно без рекламы Вдруг кто-нибудь знает такой хостинг Хостинг-провайдер в феврале отрубил доступ в личный кабинет для жителей России (хорошо, что я предусмотрел запасную дверцу для загрузки файлов). Теперь и сам сайт вырубили. upd. поменял хостинг, буду потихоньку ссылки восстанавливать... |
Автор: | Total Vacuum [ Вт сен 27, 2022 20:05 ] |
Заголовок сообщения: | Re: ef \ esoteric forth \ |
32-битный ef под linux http://totalvacuum.ru/EF/efl32.zip Сначала скросскомпилировал при помощи 32-битной версии под dos, результат компиляции весит аж 1645 байт. Потом запустил скомпилированный файл в ubuntu, скормив ему исходник ef, и получил в точности тот же самый выхлоп на asm. Осталось проверить, как будет воспринимать fasm под ubuntu полученный asm. Подозреваю, что проблем быть не должно, но fasm пока не ставил. Если честно, с fasm под linux ранее не приходилось иметь дел. Сильно ли отличается от виндовой версии? |
Автор: | tsdima [ Ср сен 28, 2022 12:23 ] |
Заголовок сообщения: | Re: ef \ esoteric forth \ |
Total Vacuum писал(а): Если честно, с fasm под linux ранее не приходилось иметь дел. Сильно ли отличается от виндовой версии? Вообще не отличается. |
Автор: | Total Vacuum [ Ср сен 28, 2022 16:07 ] |
Заголовок сообщения: | Re: ef \ esoteric forth \ |
tsdima, мерси, буду тренироваться Бился несколько раз головой об стену в попытке поставить fasm, хотя в прошлой инкарнации моей ubuntu поставилось без проблем. Потом сообразил, что fasm прекрасен тем, что там всё в одном файле, поэтому его можно тупо подложить в папку с проектом. Перекомпилировал и перезалил http://totalvacuum.ru/EF/efl32.zip В ubuntu пересобирается так: Код: ./efl efl.ef>efl.asm А тестовый helloworld так:./fasm efl.asm Код: ./efl hello.ef>hello.asm 356 байта для helloworld, конечно, жирно, но что поделать
./fasm hello.asm |
Автор: | Total Vacuum [ Ср ноя 23, 2022 19:49 ] |
Заголовок сообщения: | Re: ef \ esoteric forth \ |
Самая свежая под DOS, в скомпилированном виде аж 982 байта http://totalvacuum.ru/EF/ef.zip Правда хостинг брыкается в последнее время. Доступ к сайту не всегда есть, надо снова хостинг менять. |
Автор: | KPG [ Сб дек 03, 2022 22:14 ] |
Заголовок сообщения: | Re: ef \ esoteric forth \ |
Почти ровестник Форту. MOUSE - Computer Programming Language P.S. Ветвления и циклы тоже с использованием скобочных символов. Была и издана книга по нему: MOUSE: A Language for Microcomputers, Petrocelli Books, 1983 Проект варианта Mouse языка Mouse 2002 |
Автор: | KPG [ Ср май 03, 2023 15:32 ] |
Заголовок сообщения: | Re: ef \ esoteric forth \ |
Не помню, был ли приведён в местном топике. PlanckForth: Bootstrapping an Interpreter from Handwritten 1KB Binary Код: Builtin Words code name stack effect semantics Q quit ( n -- ) Exit the process C cell ( -- n ) The size of Cells h &here ( -- a-addr ) The address of 'here' cell l &latest ( -- a-addr ) The address of 'latest' cell k key ( -- c ) Read character t type ( c -- ) Print character j jump ( -- ) Unconditional branch J 0jump ( n -- ) Jump if a == 0 f find ( c -- xt ) Get execution token of c x execute ( xt -- ... ) Run the execution token @ fetch ( a-addr -- w ) Load value from addr ! store ( w a-addr -- ) Store value to addr ? cfetch ( c-addr -- c ) Load byte from addr with sign extension $ cstore ( c c-addr -- ) Store byte to addr d dfetch ( -- a-addr ) Get data stack pointer D dstore ( a-addr -- ) Set data stack pointer r rfetch ( -- a-addr ) Get return stack pointer R rstore ( a-addr -- ) Set return stack pointer i docol ( -- a-addr ) Get the code pointer of interpreter e exit ( -- ) Exit current function L lit ( -- n ) Load immediate S litstring ( -- c-addr ) Load string literal + add ( a b -- c ) c = (a + b) - sub ( a b -- c ) c = (a - b) * mul ( a b -- c ) c = (a * b) / divmod ( a b -- c d ) c = (a mod b), d = (a / b) & and ( a b -- c ) c = (a & b) | or ( a b -- c ) c = (a | b) ^ xor ( a b -- c ) c = (a ^ b) < less ( a b -- c ) c = (a < b) u uless ( a b -- c ) c = (a unsigned< b) = equal ( a b -- c ) c = (a == b) ( shl ( a b -- c ) c = a << b (logical) ) shr ( a b -- c ) c = a >> b (logical) % sar ( a b -- c ) c = a >> b (arithmetic) v argv ( -- a-addr u ) argv and argc V version ( -- c-addr ) Runtime infomation string Код: $ ./planck kHtketkltkltkotk tkWtkotkrtkltkdtk!tk:k0-tk0k0-Q After bootstrapping by bootstrap.fs, it looks like this. $ ./planck < bootstrap.fs ." Hello World!" cr P.S. Ссылка всретилась на Forth: The programming language that writes itself: The Web Page Charles H. Moore and the pursuit of simplicity |
Автор: | Total Vacuum [ Ср май 03, 2023 21:21 ] |
Заголовок сообщения: | Re: ef \ esoteric forth \ |
Вроде было уже, название знакомое |
Автор: | tsdima [ Пт май 05, 2023 13:24 ] |
Заголовок сообщения: | Re: ef \ esoteric forth \ |
KPG писал(а): Не помню, был ли приведён в местном топике. PlanckForth: Bootstrapping an Interpreter from Handwritten 1KB Binary Прикольно. Похоже на esoteric forth, но там не подпрограммный шитый код, а прямой. |
Страница 15 из 15 | Часовой пояс: UTC + 3 часа [ Летнее время ] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |