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

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 536 ]  На страницу Пред.  1 ... 11, 12, 13, 14, 15, 16, 17 ... 36  След.
Автор Сообщение
 Заголовок сообщения: Re: Моя система(_KROL)
СообщениеДобавлено: Сб сен 02, 2017 13:45 
Не в сети
Аватара пользователя

Зарегистрирован: Ср фев 23, 2011 20:42
Сообщения: 600
Откуда: Карелия
Благодарил (а): 3 раз.
Поблагодарили: 24 раз.
Но дальше вылезли проблемы с переопределением уже имеющихся слов. Вот это
Код:
: DEPTH DEPTH 2/ ;
1 2 3 DEPTH .
BYE
рушит систему.
А без переопределения слов мне согласовалку с tester.fr не написать никак.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Моя система(_KROL)
СообщениеДобавлено: Сб сен 02, 2017 18:22 
Не в сети

Зарегистрирован: Пт янв 06, 2017 14:57
Сообщения: 365
Благодарил (а): 17 раз.
Поблагодарили: 1 раз.
Исправил:
1)
Код:
: TEST
  38 0 DO
    55 EMIT
  10 +LOOP
;
TEST
Выводит 4 буквы U

2)
Цитата:
I>1234 <# # # # # #> DEPTH .
2 OK
I>_


+...

Ethereal писал(а):
Но дальше вылезли проблемы с переопределением уже имеющихся слов.

Сейчас думаю над этим. Всё дело в том, что получается рекурсия и преполняется стек возвратов...
Никак не могу понять: надо ли включать доп. бит или действовать по другому? Может настало время попробовать разобраться со словарями?
:mrgreen: Тогда исключения можно вынести тоже в отдельный словарь!

Попробовал сделать
Код:
: PREVIOUS LAST @ COUNTSZ 2DUP + @ (FIND) ?EXIT , ; IMMEDIATE COMPILEONLY
: WORDS PREVIOUS ;
WORDS
почему-то неправильно работает :/


Вложения:
OLD40025_pre2.ZIP [62.66 Кб]
Скачиваний: 467
Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Моя система(_KROL)
СообщениеДобавлено: Сб сен 02, 2017 19:12 
Не в сети
Аватара пользователя

Зарегистрирован: Ср фев 23, 2011 20:42
Сообщения: 600
Откуда: Карелия
Благодарил (а): 3 раз.
Поблагодарили: 24 раз.
_KROL писал(а):
Сейчас думаю над этим. Всё дело в том, что получается рекурсия и преполняется стек возвратов...
Так пока определение слова не завершено, оно не должно быть видно в словаре. Только ; делает его видимым. Я об этом уже писал. Про SMUDGE-бит, про LAST и LATEST.

Кста.
У тебя плавающая ошибка где-то сидит. Только начал искать ее корень и она перестала повторяться. И даже твое LOOP+ стало вдруг работать. А старые варианты постирал и никак не могу ее снова воспроизвести. То она есть, то ее нет. Она появляется при каком-то условии, только я постирал образцы с этим условием.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Моя система(_KROL)
СообщениеДобавлено: Сб сен 02, 2017 21:02 
<Потерто по справедливому замечанию Victor__v>


Последний раз редактировалось gudleifr Сб янв 27, 2018 14:38, всего редактировалось 1 раз.

Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Моя система(_KROL)
СообщениеДобавлено: Сб сен 02, 2017 22:07 
Не в сети

Зарегистрирован: Пт янв 06, 2017 14:57
Сообщения: 365
Благодарил (а): 17 раз.
Поблагодарили: 1 раз.
gudleifr писал(а):
Сначала (нашему молодому коллеге) нужно освоить язык ассемблера (покурить Брэдли или Скэнлона, для экстрима пролитсать Джордейна). Потом - написать (без FORTH!) отдельные FORTH-элементы: ОК, СИМВОЛ, ИСПОЛНИТЬ, КОМПИЛИРОВАТЬ, СЛЕДУЮЩИЙ (что не понятно, смотреть у Мура).

Мне уже конечно надоело всё писать заново, но так уж и быть, попробую(не забывая переодически заглядывать в OLD4tH).
Правильно так:
Цитата:
: PREVIOUS LAST @ COUNTSZ 2DUP + @ (FIND) ?EXIT COUNTSZ + 2+ @ , ; IMMEDIATE COMPILEONLY
: WORDS PREVIOUS ;
WORDS
Добавил после ?EXIT: COUNTSZ + 2+ @ (NFA>CFA). Забыл просто, простите.
Ethereal писал(а):
У тебя плавающая ошибка где-то сидит.
Вполне возможно.
P.s. Я же выложил, если ты не заметил, pre2, где кое-что исправил и добавил пару слов в ядро(из DUMP.TXT).


Последний раз редактировалось _KROL Сб сен 02, 2017 22:31, всего редактировалось 1 раз.

Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Моя система(_KROL)
СообщениеДобавлено: Сб сен 02, 2017 22:11 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 1288
Благодарил (а): 3 раз.
Поблагодарили: 18 раз.
Эх, попробуй делать по-другому, ежели текущим образом ошибки вылезают с периодически.
К примеру, создай образ форта в другом форте. Часть ошибок уже можно словить без выхода ФВМ в широкие массы

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Моя система(_KROL)
СообщениеДобавлено: Сб сен 02, 2017 22:28 
Не в сети

Зарегистрирован: Пт янв 06, 2017 14:57
Сообщения: 365
Благодарил (а): 17 раз.
Поблагодарили: 1 раз.
Это ты кому? Про себя или меня??Понял


Последний раз редактировалось _KROL Сб сен 02, 2017 22:32, всего редактировалось 1 раз.

Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Моя система(_KROL)
СообщениеДобавлено: Сб сен 02, 2017 22:32 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 1288
Благодарил (а): 3 раз.
Поблагодарили: 18 раз.
Тебе, но мне тож помогает

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Моя система(_KROL)
СообщениеДобавлено: Сб сен 02, 2017 22:33 
Не в сети

Зарегистрирован: Пт янв 06, 2017 14:57
Сообщения: 365
Благодарил (а): 17 раз.
Поблагодарили: 1 раз.
Но для этого надо сначала хорошенько изучить исходную форт-систему...
___
Вспомнилось) Недавно опять взялся за изучение туториалов Iczelion'а.
Жуть. Особенно когда немного смотрел программирование под колибри :D


Вложения:
Iczelion.zip [994 Кб]
Скачиваний: 462
Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Моя система(_KROL)
СообщениеДобавлено: Сб сен 02, 2017 22:44 
Не в сети
Аватара пользователя

Зарегистрирован: Ср фев 23, 2011 20:42
Сообщения: 600
Откуда: Карелия
Благодарил (а): 3 раз.
Поблагодарили: 24 раз.
Еще ошибок :
UNTIL должно завершаться по TRUE
>MARK >RESOLVE <MARK <RESOLVE не должны иметь атрибута IMMEDIATE

Местами, где мне казались у твоего Форта склейки ласт без причины, я сам был в этом виноват. Может плавающей ошибки и нет, может мне показалась она. Ну кому-ж в голову придет, что половина слов у тебя значат совсем не то, что у всех. Тильда ' например делает BL WORD , UNTIL завершается наоборот, <# #> принимает одно слово, а возвращает три и прочая, прочая. Из-за этого любая попытка что-то написать приводит к пипцу лютому. Особенно учитывая, что сообщений об ошибках от твоего Форта не дождешься (не знаю такого слова, Stack underflow, etc.)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Моя система(_KROL)
СообщениеДобавлено: Сб сен 02, 2017 23:25 
Не в сети

Зарегистрирован: Пт янв 06, 2017 14:57
Сообщения: 365
Благодарил (а): 17 раз.
Поблагодарили: 1 раз.
Кхм.
Etherel писал(а):
<# #> принимает одно слово, а возвращает три
Я же написал, что исправил!
А что должна делать тильда? Не "BL WORD"?
За UNTIL спасаибо) А то я когда-то вообще запутался во всех этих циклах(даже думал совсем свои слова писать, близкие к синтаксису паскаля)...


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Моя система(_KROL)
СообщениеДобавлено: Сб сен 02, 2017 23:31 
Не в сети
Аватара пользователя

Зарегистрирован: Ср фев 23, 2011 20:42
Сообщения: 600
Откуда: Карелия
Благодарил (а): 3 раз.
Поблагодарили: 24 раз.
_KROL писал(а):
Мне уже конечно надоело всё писать заново
Да не надо заново, надо по другому. Дисциплину ума в себе выработать такую, чтобы ошибок почти не лепить. А то отлавливать их потом каторга. Каждый кусочек программы прописывать любовно и щательно. А если галопом по европам, после на отладке повесишься.

Вот, пока ты переписывал твой Форт, я курил книгу "Вирт.Н Построение компиляторов". Ну и чтобы уяснить как они строятся пример его простого компилятора переписал на Форт. Ну и заодно кодогенерацию для 8086 приделал. Так уже прусь от того, что минимальный вариант программки компилирует. И пора уже разворачивать его в полновесный. Сижу вот и тащусь. Щас приаттачу посмотреть. Там примерчики с рекурсивной генерацией чисел Фибоначчи и сортировкой пузырьком приложены и компилятором компилятся. Писано на результате переделывания моего FIG-32 в Forth-79-32. Заодно и этот древний стандарт заценил. Хотя тестировал не особо тщательно, но пока на простых примерчиках компилирует верно. Вот и тебе надо также.
У тебя основа уже есть. Теперь сверху вниз по исходнику идти и все места обдумать и записать лаконично и предельно корректно. Облагородить, так-сказать, исходник. Ну и должен уже тогда заработать. А метод заплатки разбрасывать там где баги лезут - это не метод. Мысль - если алгоритмы обдуманы и записаны любовно и тщательно, с удовольствием от полировки кода, то должно почти все работать сразу. Ну может один - два глюка, провороненные от замыла глаза и придется выловить. Но не больше.

Там отдельно распиханы по исходнику лексический анализатор LEXER, синтаксический анализатор PARSER и кодогенератор CODEGEN. Конечная цель - мне нужен собственный компилятор для микроконтроллера одного, редкого. Когда перепроверю все алгоритмы на COM-файлах, просто кодогенерацию заменю.

P.S. Комментариев добавил и исходник заменил :


Последний раз редактировалось Ethereal Пт сен 15, 2017 08:41, всего редактировалось 9 раз(а).

Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Моя система(_KROL)
СообщениеДобавлено: Сб сен 02, 2017 23:33 
Не в сети
Аватара пользователя

Зарегистрирован: Ср фев 23, 2011 20:42
Сообщения: 600
Откуда: Карелия
Благодарил (а): 3 раз.
Поблагодарили: 24 раз.
_KROL писал(а):
А что должна делать тильда? Не "BL WORD"?
Нет. В старых Фортах (FIG/79) она возвращала адрес поля параметров определения слова. А в современных возвращает адрес поля кода. Так-что
' BLABLA EXECUTE
в режиме интерпретации должно исполнить BLABLA.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Моя система(_KROL)
СообщениеДобавлено: Вс сен 03, 2017 11:23 
<Потерто по справедливому замечанию Victor__v>


Последний раз редактировалось gudleifr Сб янв 27, 2018 14:38, всего редактировалось 1 раз.

Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Моя система(_KROL)
СообщениеДобавлено: Вс сен 03, 2017 13:10 
Не в сети

Зарегистрирован: Пт янв 06, 2017 14:57
Сообщения: 365
Благодарил (а): 17 раз.
Поблагодарили: 1 раз.
Цитата:
А Вы пока на этапе "начать изучать язык ассемблера"
Извините, но я полностю с вами на счёт этого не согласен. Я уже почти всё, как мне кажется, изучил в ассемблере реального режима x86. Просто пока я пытался понять Форт кое-что могло чуть забыться, а кое-что даже выяснилось)


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

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


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

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


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

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