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

...
Google Search
Forth-FAQ Spy Grafic

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




Ответить
Имя пользователя:
Заголовок:
Текст сообщения:
Введите текст вашего сообщения. Длина сообщения в символах не более: 60000

Размер шрифта:
Цвет шрифта
Настройки:
BBCode ВКЛЮЧЕН
[img] ВЫКЛЮЧЕН
[flash] ВЫКЛЮЧЕН
[url] ВКЛЮЧЕН
Смайлики ВЫКЛЮЧЕНЫ
Отключить в этом сообщении BBCode
Не преобразовывать адреса URL в ссылки
Вопрос
Теперь гостю придется вводить здесь пароль. Не от своей учетной записи, а ПАРОЛЬ ДЛЯ ГОСТЯ, получить который можно после регистрации на форуме через ЛС.:
Этот вопрос предназначен для выявления и предотвращения автоматических регистраций.
   

Обзор темы - ef \ esoteric forth \
Автор Сообщение
  Заголовок сообщения:  Re: ef \ esoteric forth \  Ответить с цитатой
KPG писал(а):
Не помню, был ли приведён в местном топике.
PlanckForth: Bootstrapping an Interpreter from Handwritten 1KB Binary

Прикольно. Похоже на esoteric forth, но там не подпрограммный шитый код, а прямой.
Сообщение Добавлено: Пт май 05, 2023 13:24
  Заголовок сообщения:  Re: ef \ esoteric forth \  Ответить с цитатой
Вроде было уже, название знакомое :)
Сообщение Добавлено: Ср май 03, 2023 21:21
  Заголовок сообщения:  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
Сообщение Добавлено: Ср май 03, 2023 15:32
  Заголовок сообщения:  Re: ef \ esoteric forth \  Ответить с цитатой
Почти ровестник Форту.
MOUSE - Computer Programming Language

P.S. Ветвления и циклы тоже с использованием скобочных символов. :)
Была и издана книга по нему: MOUSE: A Language for Microcomputers, Petrocelli Books, 1983

Проект варианта Mouse языка
Mouse 2002
Сообщение Добавлено: Сб дек 03, 2022 22:14
  Заголовок сообщения:  Re: ef \ esoteric forth \  Ответить с цитатой
Самая свежая под DOS, в скомпилированном виде аж 982 байта :)
http://totalvacuum.ru/EF/ef.zip

Правда хостинг брыкается в последнее время. Доступ к сайту не всегда есть, надо снова хостинг менять.
Сообщение Добавлено: Ср ноя 23, 2022 19:49
  Заголовок сообщения:  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
Сообщение Добавлено: Ср сен 28, 2022 16:07
  Заголовок сообщения:  Re: ef \ esoteric forth \  Ответить с цитатой
Total Vacuum писал(а):
Если честно, с fasm под linux ранее не приходилось иметь дел. Сильно ли отличается от виндовой версии?

Вообще не отличается.
Сообщение Добавлено: Ср сен 28, 2022 12:23
  Заголовок сообщения:  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 ранее не приходилось иметь дел. Сильно ли отличается от виндовой версии?
Сообщение Добавлено: Вт сен 27, 2022 20:05
  Заголовок сообщения:  Re: ef \ esoteric forth \  Ответить с цитатой
Мой сайт временно протух из-за хостинга-русофоба... :) Найду какой-нибудь другой хостинг и буду переползать, ссылки пока не работают. Приму в дар "без регистрации и sms" бесплатный хостинг с php, mysql, ftp и желательно без рекламы :) Вдруг кто-нибудь знает такой хостинг :)
Хостинг-провайдер в феврале отрубил доступ в личный кабинет для жителей России (хорошо, что я предусмотрел запасную дверцу для загрузки файлов). Теперь и сам сайт вырубили. :dmad;
upd. поменял хостинг, буду потихоньку ссылки восстанавливать...
Сообщение Добавлено: Ср сен 14, 2022 12:10
  Заголовок сообщения:  Re: ef \ esoteric forth \  Ответить с цитатой
В проекте NanoForth для AVR Форт слова ограничены 3-мя символами. :)

nanoFORTH What

P.S. В примитивах команд FVM нет слов беззнакового сравнения U> U< , которые, возможно имело бы смысл добавить
и возможно имеет смысл в системе команд сделать 3-ёх бит поле условия для перехода,
для размещения в команде перехода слов сравнения и тогда добавить команду c безусловным переходом.

Изображение
Сообщение Добавлено: Ср сен 14, 2022 03:05
  Заголовок сообщения:  Re: ef \ esoteric forth \  Ответить с цитатой
Там отдельно регистры для вершины стека. Для них можно выполнить обмен за один такт. Это не программирование, где нужна временная переменная. В синхронной схеме операции a <= b и b <= a могут выполняться параллельно.
Сообщение Добавлено: Вт сен 13, 2022 00:29
  Заголовок сообщения:  Re: ef \ esoteric forth \  Ответить с цитатой
Total Vacuum писал(а):
Смотрю на b16 и туплю, не могу понять, как они swap делают.
over >r nip >r или можно как-то короче? После выходных мозги совсем атрофировались. :)

Не короче, но может и так?
Код:
>r >a r> a


P.S. По картинке архитектуры b16 в презентации по её схеме проще понять как привязана система команд к стекам CPU.
Сообщение Добавлено: Пн сен 12, 2022 18:34
  Заголовок сообщения:  Re: ef \ esoteric forth \  Ответить с цитатой
Смотрю на b16 и туплю, не могу понять, как они swap делают.
over >r nip r> или можно как-то короче? После выходных мозги совсем атрофировались. :)
Сообщение Добавлено: Пн сен 12, 2022 16:15
  Заголовок сообщения:  Re: ef \ esoteric forth \  Ответить с цитатой
KPG писал(а):
Кстати, а как в рамках обсуждаемого топика смотрится и система команд B16 CPU?

Из общих соображений - как может смотреться процессор 20-летней давности? Это надо, чтобы:
1. За 20 лет не было никаких значимых изменений в архитектуре ПЛИС и вообще микроэлектронике.
2. За 20 лет так и не удалось разобраться, что там напроектировали Просвещенные Европы. А уж тем более сделать лучше.

Система команд странная. С микроархитектурой связана слабо. Масса условных переходов, которых в Форте нет. Вообще код написан "как написал бы программист".

Цитата:
4.4 Further Possible Optimizations It would be possible to overlap memory accesses and operations on the stack, since there are separate pointer registers.

Вот тут до человека начало отдаленно доходить, что он рисует схему, а не пишет программу. Проектирование в стиле аппаратных транзакций - отдельное искусство. Но это надо, к примеру, мою выложенную презентацию посмотреть. Это далеко не объяснение тонкостей искусства, а просто очерчивание круга задач.

KPG писал(а):
Имеет ли смысл, в особенности вводить регистр А - верхушки стека возвратов (по примеру именования TOS для стека данных) и дополнять систему команд процессора для оперирования с ним.

Ответ основывается на простом показателе - насколько интенсивно используется стек возвратов? Если процент команд (и соответствующее ускорение) больше, чем снижение характеристик (частота, размер), можно вводить. Если нет - нет. Если примерно одинаково - не вводим по принципу бритвы Оккама (потому что лень + верификация + риск от пропущенных сценариев верификации).
Сообщение Добавлено: Вс сен 11, 2022 20:24
  Заголовок сообщения:  Re: ef \ esoteric forth \  Ответить с цитатой
Кстати, а как в рамках обсуждаемого топика смотрится и система команд B16 CPU?
B16 Processor
Имеет ли смысл, в особенности вводить регистр А - верхушки стека возвратов (по примеру именования TOS для стека данных) и дополнять систему команд процессора для оперирования с ним.

P.S MicroCore в некотором смысле другая реализация идеи Форт процессоров.
Изображение
Сообщение Добавлено: Пт сен 09, 2022 18:45

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


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