Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Вт май 22, 2018 09:52

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
 Заголовок сообщения: Тупейшая лисп-система написанная на форте
СообщениеДобавлено: Вт янв 23, 2018 21:01 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 533
Благодарил (а): 0 раз.
Поблагодарили: 3 раз.
Код:
~ER\STR\STR-TO-NUMBERasm.F

\ STR>NUM \ a u — ? err| n 0

VOCABULARY LISP
ALSO LISP DEFINITIONS

\ типизация
-1 CONSTANT ??? \ неопределенно
0 CONSTANT NIL \ конец списка. спец. флаг
1 CONSTANT NUM \ число

\ что должна возвращать КАЖДАЯ функция на уровне форта:
\ зн. объектов
\ тип объектов
\ кол-во объектов

VECT OBJECT-FIND-L \ n a u — zn type n+1 true| n a u false
VECT SFIND-L \ a u — xt 0

\ лисповский интерпретатор
: INTERPRET

PARSE-NAME SFIND-L >R
0
BEGIN
PARSE-NAME
2DUP S" )" COMPARE
WHILE
OBJECT-FIND-L
0=
IF
SFIND-L
SWAP >R
EXECUTE
R> + \ суммируем кол-во объектов
THEN
\ проверка состояния стека
." GL: " DEPTH .SN CR
REPEAT
2DROP
;

: ( INTERPRET ;

\ пример лисповской функции +
: num+num \ zn1 t1 zn2 t2 .. znn tn n — zn type 1
>R
R@ 0= IF -2000 THROW THEN
NUM <> IF -2001 THROW THEN
-1 RP@ +!
>R
BEGIN
RP@ CELL+ @ WHILE
NUM <> IF -2001 THROW THEN
R> + >R
-1 RP@ CELL+ +!
REPEAT
R> NUM 1
RDROP

;

VECT +
' num+num TO +

: num-test
2DUP STR>NUM IF DROP 0 EXIT THEN
>R \ r: — num
2DROP
1+ >R \ r: num — num n
RP@ CELL+ @
NUM
R>
RDROP
TRUE
;

: sfind-test
SFIND 0= IF -2003 THROW THEN
;

' num-test TO OBJECT-FIND-L
' sfind-test TO SFIND-L

\EOF

пример:

( + 2 3 ( + 5 5 ( + 1 1 1 1 1 ) ) ( + 100 ) )


Соб-но безполезный лисп-интерпретатор с двумя функциями: + и NOOP :)
При желании эту развлекалку можно расширить, превратив во что-то более полезное.

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Тупейшая лисп-система написанная на форте
СообщениеДобавлено: Вт янв 23, 2018 21:07 
Не в сети

Зарегистрирован: Пт янв 06, 2017 14:57
Сообщения: 342
Благодарил (а): 15 раз.
Поблагодарили: 1 раз.
Как для меня, так замечательный примет! Давно об этом думал, спасибо.
P.s. Я об трансляции Лиспа)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Тупейшая лисп-система написанная на форте
СообщениеДобавлено: Вт янв 23, 2018 21:54 
Не в сети
Аватара пользователя

Зарегистрирован: Чт дек 31, 2009 18:36
Сообщения: 2105
Откуда: Питер
Благодарил (а): 15 раз.
Поблагодарили: 34 раз.
См.

Таунсенд, К.; Фохт, Д.
Проектирование и программная реализация экспертных систем на персональных ЭВМ

_________________
Когда я говорю "понимаю" - это не значит, что я согласен, не значит, что я понимаю, и вообще не значит, что я слушаю тебя. /Чарли, "2 1/2 человека"/


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Тупейшая лисп-система написанная на форте
СообщениеДобавлено: Вт янв 23, 2018 22:45 
Не в сети

Зарегистрирован: Пн ноя 05, 2007 13:54
Сообщения: 135
Благодарил (а): 0 раз.
Поблагодарили: 11 раз.
viewtopic.php?p=17452#p17452


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Тупейшая лисп-система написанная на форте
СообщениеДобавлено: Вт янв 23, 2018 23:01 
Не в сети
Аватара пользователя

Зарегистрирован: Чт дек 31, 2009 18:36
Сообщения: 2105
Откуда: Питер
Благодарил (а): 15 раз.
Поблагодарили: 34 раз.
true-grue писал(а):
http://fforum.winglion.ru/viewtopic.php?p=17452#p17452
"Нет, уж лучше вы - к нам..." (с)

ИзображениеТЕМА #73, АБЗАЦ #806Изображение

_________________
Когда я говорю "понимаю" - это не значит, что я согласен, не значит, что я понимаю, и вообще не значит, что я слушаю тебя. /Чарли, "2 1/2 человека"/


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 

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


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

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


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

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