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 и желательно без рекламы :) Вдруг кто-нибудь знает такой хостинг :)
Хостинг-провайдер в феврале отрубил доступ в личный кабинет для жителей России (хорошо, что я предусмотрел запасную дверцу для загрузки файлов). Теперь и сам сайт вырубили. :dmad;
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
./fasm efl.asm
А тестовый helloworld так:
Код:
./efl hello.ef>hello.asm
./fasm hello.asm
356 байта для helloworld, конечно, жирно, но что поделать :D

Автор:  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/