Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Вт мар 19, 2024 11:06

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 223 ]  На страницу Пред.  1 ... 11, 12, 13, 14, 15
Автор Сообщение
 Заголовок сообщения: Re: ef \ esoteric forth \
СообщениеДобавлено: Пн сен 12, 2022 16:15 
Не в сети
Аватара пользователя

Зарегистрирован: Ср июл 03, 2019 11:10
Сообщения: 460
Откуда: Москва
Благодарил (а): 57 раз.
Поблагодарили: 22 раз.
Смотрю на b16 и туплю, не могу понять, как они swap делают.
over >r nip r> или можно как-то короче? После выходных мозги совсем атрофировались. :)


Последний раз редактировалось Total Vacuum Вт сен 13, 2022 10:44, всего редактировалось 1 раз.

Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: ef \ esoteric forth \
СообщениеДобавлено: Пн сен 12, 2022 18:34 
Не в сети

Зарегистрирован: Пн янв 07, 2013 22:40
Сообщения: 2141
Благодарил (а): 8 раз.
Поблагодарили: 74 раз.
Total Vacuum писал(а):
Смотрю на b16 и туплю, не могу понять, как они swap делают.
over >r nip >r или можно как-то короче? После выходных мозги совсем атрофировались. :)

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


P.S. По картинке архитектуры b16 в презентации по её схеме проще понять как привязана система команд к стекам CPU.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: ef \ esoteric forth \
СообщениеДобавлено: Вт сен 13, 2022 00:29 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7958
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
Там отдельно регистры для вершины стека. Для них можно выполнить обмен за один такт. Это не программирование, где нужна временная переменная. В синхронной схеме операции a <= b и b <= a могут выполняться параллельно.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: ef \ esoteric forth \
СообщениеДобавлено: Ср сен 14, 2022 03:05 
Не в сети

Зарегистрирован: Пн янв 07, 2013 22:40
Сообщения: 2141
Благодарил (а): 8 раз.
Поблагодарили: 74 раз.
В проекте NanoForth для AVR Форт слова ограничены 3-мя символами. :)

nanoFORTH What

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

Изображение


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: ef \ esoteric forth \
СообщениеДобавлено: Ср сен 14, 2022 12:10 
Не в сети
Аватара пользователя

Зарегистрирован: Ср июл 03, 2019 11:10
Сообщения: 460
Откуда: Москва
Благодарил (а): 57 раз.
Поблагодарили: 22 раз.
Мой сайт временно протух из-за хостинга-русофоба... :) Найду какой-нибудь другой хостинг и буду переползать, ссылки пока не работают. Приму в дар "без регистрации и sms" бесплатный хостинг с php, mysql, ftp и желательно без рекламы :) Вдруг кто-нибудь знает такой хостинг :)
Хостинг-провайдер в феврале отрубил доступ в личный кабинет для жителей России (хорошо, что я предусмотрел запасную дверцу для загрузки файлов). Теперь и сам сайт вырубили. :dmad;
upd. поменял хостинг, буду потихоньку ссылки восстанавливать...


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: ef \ esoteric forth \
СообщениеДобавлено: Вт сен 27, 2022 20:05 
Не в сети
Аватара пользователя

Зарегистрирован: Ср июл 03, 2019 11:10
Сообщения: 460
Откуда: Москва
Благодарил (а): 57 раз.
Поблагодарили: 22 раз.
32-битный ef под linux
http://totalvacuum.ru/EF/efl32.zip
Сначала скросскомпилировал :) при помощи 32-битной версии под dos, результат компиляции весит аж 1645 байт. Потом запустил скомпилированный файл в ubuntu, скормив ему исходник ef, и получил в точности тот же самый выхлоп на asm. Осталось проверить, как будет воспринимать fasm под ubuntu полученный asm. Подозреваю, что проблем быть не должно, но fasm пока не ставил.
Если честно, с fasm под linux ранее не приходилось иметь дел. Сильно ли отличается от виндовой версии?


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: ef \ esoteric forth \
СообщениеДобавлено: Ср сен 28, 2022 12:23 
Не в сети

Зарегистрирован: Вс авг 21, 2022 14:56
Сообщения: 33
Благодарил (а): 2 раз.
Поблагодарили: 4 раз.
Total Vacuum писал(а):
Если честно, с fasm под linux ранее не приходилось иметь дел. Сильно ли отличается от виндовой версии?

Вообще не отличается.



За это сообщение автора tsdima поблагодарил: Total Vacuum
Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: ef \ esoteric forth \
СообщениеДобавлено: Ср сен 28, 2022 16:07 
Не в сети
Аватара пользователя

Зарегистрирован: Ср июл 03, 2019 11:10
Сообщения: 460
Откуда: Москва
Благодарил (а): 57 раз.
Поблагодарили: 22 раз.
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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: ef \ esoteric forth \
СообщениеДобавлено: Ср ноя 23, 2022 19:49 
Не в сети
Аватара пользователя

Зарегистрирован: Ср июл 03, 2019 11:10
Сообщения: 460
Откуда: Москва
Благодарил (а): 57 раз.
Поблагодарили: 22 раз.
Самая свежая под DOS, в скомпилированном виде аж 982 байта :)
http://totalvacuum.ru/EF/ef.zip

Правда хостинг брыкается в последнее время. Доступ к сайту не всегда есть, надо снова хостинг менять.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: ef \ esoteric forth \
СообщениеДобавлено: Сб дек 03, 2022 22:14 
Не в сети

Зарегистрирован: Пн янв 07, 2013 22:40
Сообщения: 2141
Благодарил (а): 8 раз.
Поблагодарили: 74 раз.
Почти ровестник Форту.
MOUSE - Computer Programming Language

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

Проект варианта Mouse языка
Mouse 2002


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: ef \ esoteric forth \
СообщениеДобавлено: Ср май 03, 2023 15:32 
Не в сети

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: ef \ esoteric forth \
СообщениеДобавлено: Ср май 03, 2023 21:21 
Не в сети
Аватара пользователя

Зарегистрирован: Ср июл 03, 2019 11:10
Сообщения: 460
Откуда: Москва
Благодарил (а): 57 раз.
Поблагодарили: 22 раз.
Вроде было уже, название знакомое :)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: ef \ esoteric forth \
СообщениеДобавлено: Пт май 05, 2023 13:24 
Не в сети

Зарегистрирован: Вс авг 21, 2022 14:56
Сообщения: 33
Благодарил (а): 2 раз.
Поблагодарили: 4 раз.
KPG писал(а):
Не помню, был ли приведён в местном топике.
PlanckForth: Bootstrapping an Interpreter from Handwritten 1KB Binary

Прикольно. Похоже на esoteric forth, но там не подпрограммный шитый код, а прямой.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 223 ]  На страницу Пред.  1 ... 11, 12, 13, 14, 15

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


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

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


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

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