Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Ср авг 23, 2017 17:55

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 18 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения: Re: моя форт-система, которая потихоньку пишется
СообщениеДобавлено: Вт май 30, 2017 21:45 
Не в сети

Зарегистрирован: Пт июн 06, 2008 14:21
Сообщения: 87
Откуда: Карелия
Благодарил (а): 1 раз.
Поблагодарили: 3 раз.
И чего INCLUDED было не оставить....


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

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 282
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
https://cloud.mail.ru/public/M31s/oTsZUNLQR

Отлажен стек словарей, написана обёртка под внешний вызов ( винда ), написано слово интерпретации и механизм поддержки notfound-ов в словарях.
Добавлены слова для навигации по словарю и слов.статье.
Структура словаря изменилась. Добавлено 64-битное поле-маска для ускорения поиска.
Ещё несколько служебных слов.
А также слово для компиляции слов с параметрами ( вектора, переменные, константы ).

Всё ещё не переписан механизм предкомпиляции ( требуется пара улучшений ), да и требования изменились, так сказать, стали мягче.
В раздумьях над поддержкой "механизма" структур. Пока надо в одном месте. Реализуется просто, но нет особой необходимости в них.
Есть мысли добавить стек форт-окружения. Но это уже на будущее.
Осталось немного: внешняя ось-ная вещь ( вызовы, константы ), механизм предкомпиляции, да с заголовком exe-шника разобраться надо :x

И ещё надо исходники причесать. А то уже теряется причинно-следственная связь :(9

_________________
Цель: написать форт-систему
Подцель: написать оптимизирующий компилятор
текущая задача: переписать if-else-then


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: моя форт-система, которая потихоньку пишется
СообщениеДобавлено: Пн июл 10, 2017 13:54 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 282
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
https://vk.com/doc189457568_449128163

Отлажен механизм перехвата.
Дополнен и также отлажен стек словарей ( GET-ORDER SET-ORDER )
Написаны обёртки под некоторые операции с файлами ( пока читать, писать, размер )
Примечательно, что обёртки пишутся на стековом манипуляторе
Код:
: READ-FILE(std) \ addr kv h -- size err|0
   2/(33x3^4R<)34120 ReadFile API-ERR 
   R> SWAP
;


Так манипуляций со стеком меньше, да и понятней стало
Написана трансляция исходных файлов.

Осталось написать механизм предкомпиляции, отладочные слова, обёртки и инициализацию и ещё pe-формат изучить немножко.
Что-то с каждым разом остаётся всё больше и больше :)

Всё ещё в раздумьях над реализацией стека окружений.
Без этого стека текущий код подключения выглядит "многообещающе"

Код:
: INCLUDE-FILE \ ADDR U -- ?? -1|0
   MOVE->R
   2DUP FILE-EXIST
   IF   TRANSLATE-FILE

   ELSE    S" DEVEL/"    
      1/(2#R0-)1R0
      0/(2^0^)0
      MOVE
      0/(3#30+2#1R<2^)013
      2DUP FILE-EXIST
      IF   3/10   TRANSLATE-FILE

      ELSE   2DROP
         1/(2#R1<2^)10
         S" SCRIPT/"
         1/(2#R0-)1R0
         0/(2^0^)0
         MOVE
         0/(3#30+2#1R<2^)013
         2DUP FILE-EXIST

         IF   3/10   TRANSLATE-FILE

         ELSE 2DROP 2DROP 0 0/(R#) EXIT
         THEN
      THEN
   THEN
   -1 0/(R#)

;



В этом коде заметил косяк стекового манипулятора.
Нельзя писать 0/(...)234(...)
Ввиду того, что стек модифицируется повторно. И код на выходе некорректен.
Надо тогда писать так
0/(...)234 0/(...)
По логике, оба манипулятора должны генерить один и то же код. Но в реале первый сбоит.
Эх, буду фиксить.
В архиве помимо исходников строящегося форта есть мои либы, которые используются в служебной части.
ассемблер, манипуляторы, преобразование, стек с плав.точкой и пр.

_________________
Цель: написать форт-систему
Подцель: написать оптимизирующий компилятор
текущая задача: переписать if-else-then


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

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


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

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


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

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