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

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
 Заголовок сообщения: Nova-forth версии
СообщениеДобавлено: Пн июл 23, 2018 16:14 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 634
Благодарил (а): 0 раз.
Поблагодарили: 6 раз.
Нова 1.03

Возможность сохранения наработанной форт-системы. (библиотека ~er\win\save.f)
Форт-система может компилировать саму себя по исходникам (src-self/create-forth.f)

Добавлены слова:
MIN
MAX

\ a1 a2 ... an n b --- a1 a2 ... an n flag
\ проверить элемент b на вхождение в множество, вернуть флаг (-1 да, 0 нет).
SSET?


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Nova-forth версии
СообщениеДобавлено: Пн июл 23, 2018 16:29 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 634
Благодарил (а): 0 раз.
Поблагодарили: 6 раз.
Нова 1.04

Добавлен обратный вызов.
Определяется так: n CALLBACK: слово какой-то-код ;
где n, это кол-во параметров (в ячейках CELL), которые убираются на обратном ходу.
В каллбек всегда передаётся одно значение - указатель на последний переданный параметр.
Если каллбек был создан в форт-потоке, то для него пользовательские переменные доступны. Если же каллбек не в форт-потоке, то придётся исхитряться самостоятельно.

Добавлены слова для работы с указателем пользовательской области.
TLS!
TLS@
TLS>OS \ сохранить указатель пользовательской области в спец. месте ( FS: 20 CELLS )
OS>TLS \ загрузить значение из спец. места в указатель пользовательской области.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Nova-forth версии
СообщениеДобавлено: Сб авг 04, 2018 23:06 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 634
Благодарил (а): 0 раз.
Поблагодарили: 6 раз.
Нова 1.05
Кратко по новшествам:
  • интерпретация командной строки
  • новый механизм инлайна
  • портирована либа-обёртка для MySQL от ~day
  • написан собственный вариант для работы с MySQL

По поставке:
убран СПФ, ЦК на его основе и мои либы к нему


Вложения:
Nova1.05 2018.08.04.7z [92.78 Кб]
Скачиваний: 93

_________________
Цель: сделать 64-битную Нову под Винду
Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Nova-forth версии
СообщениеДобавлено: Сб сен 15, 2018 18:30 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 634
Благодарил (а): 0 раз.
Поблагодарили: 6 раз.
Нова 1.06

Новшества:
Создание таблиц предкомпиляции в словарях
Поддержка Си-шной декларации вызова (cdecl)

По поставке:
Добавлены материалы по бектрекингу от М.Л.Гасаненко (перенесены из поставки СПФ)
Добавлен справочник по словам в форт-системе.

Предложения по справочнику можно оставлять здесь http://fforum.winglion.ru/viewtopic.php?f=58&t=3194&p=45741#p45741

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Nova-forth версии
СообщениеДобавлено: Чт сен 27, 2018 14:00 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 634
Благодарил (а): 0 раз.
Поблагодарили: 6 раз.
Nova-VC

Nova-VC ( Vocabulary Сompile )

Изменения по сравнению с 1.06

Ядро
1. Таблица предкомпиляции отсутствует. Поэтому форт стал меньше в размере.
Вместо этого теперь каждый словарь может навесить свой обработчик на компиляцию (реализовано через доп. поле словаря).
Назначение у этого новшества аналогично таблице.
А именно расширение возможностей и корректировка компиляции.

2. Убрана развертка параметрических слов. Теперь у них нет инлайна, только вызовы.
От этого удалось спастись только VARIABLE (стало создавать инлайн-слова, как и CONSTANT ).
Технически мог от этого спасти и USER, но тогда придётся сильно перетряхивать исходники Новы.

Библиотеки
В соответствии с новой фичей переписаны некоторые библиотеки.
Добавил новые слова для отладки (~er/tools/). К примеру, распечатку стека возвратов (сделано на итераторах).

Оптимизатор
Дождь и ветер таки :D заставили меня засесть за написание столь интересного и местами полезного дополнения к Нове.
Подключается как библиотека. Работает через обработчик компиляции словаря (см. Ядро п. 1).
Оптимизация глазковая.
Что делает сейчас:
    разворачивает параметрические слова;
    оптимизирует условия для IF и WHILE;
    сжимает арифметику ( 10 20 + при компиляции дадут 1 число, а не 2 и код операции сложения);
    оптимизирует операции со стеком возвратов, что весьма актуально для Новы;
    и пр.

На текущий момент размер подопытных библиотек под чутким руководством оптимизатора уменьшился на 13 %.

P. S.
Инструмент для создания правил имеется :D

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Nova-forth версия VC 1
СообщениеДобавлено: Сб окт 06, 2018 13:21 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 634
Благодарил (а): 0 раз.
Поблагодарили: 6 раз.
Nova-VC

обновление 1

Ядро

    COMPILE, стал вектором. А это значит, что можно дополнительно влиять на последнюю стадию компиляции.
    Добавлено чтение INI-файла перед запуском системы
    Поправлена интерпретация командной строки (ранее ругался на пути с пробелами).

Библиотеки:
Создание и загрузка оверлеев. Оверлей в данном случае это временный словарь сохранённый в бинарном формате. При загрузке корректируются указатели словаря, цепочки поиска и пр.
Для корректной работы полученного оверлея код должен быть позиционно-независим.
Писалось ради интереса. Интерес пробудился здесь на форуме

Оптимизатор:
Размер подопытных библиотек уменьшился на 16 %.

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


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

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


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

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


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

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