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

...
Google Search
Forth-FAQ Spy Grafic

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




Ответить
Имя пользователя:
Заголовок:
Текст сообщения:
Введите текст вашего сообщения. Длина сообщения в символах не более: 60000

Размер шрифта:
Цвет шрифта
Настройки:
BBCode ВКЛЮЧЕН
[img] ВЫКЛЮЧЕН
[flash] ВЫКЛЮЧЕН
[url] ВКЛЮЧЕН
Смайлики ВЫКЛЮЧЕНЫ
Отключить в этом сообщении BBCode
Не преобразовывать адреса URL в ссылки
Вопрос
Теперь гостю придется вводить здесь пароль. Не от своей учетной записи, а ПАРОЛЬ ДЛЯ ГОСТЯ, получить который можно после регистрации на форуме через ЛС.:
Этот вопрос предназначен для выявления и предотвращения автоматических регистраций.
   

Обзор темы - Nova-forth версии
Автор Сообщение
  Заголовок сообщения:  Re: Nova-forth версии  Ответить с цитатой
Hishnik писал(а):
Интересно, fasm не так давно выпущен в еще одной версии. Другое дело, что период стремления к высокой производительности в одном потоке CPU уже в целом завершился, поэтому машинный код уже и не так актуален. Конечно, можно dll сделать на fasm (подключив к Форту), но как-то хочется уже другого, GUI вместо консоли, быстрой интеграции компонентов и прочего, что на ассемблере выписывать просто очень трудоемко.
Но продвижение - это интересно. Если проект эволюционирует, он рано или поздно куда-нибудь да приедет.

Я использовал фасм для генерации exe и создания примитивов, ибо лень было в кодах вбивать. Больше причин так-то и нет.
Сообщение Добавлено: Вс ноя 12, 2023 23:55
  Заголовок сообщения:  Re: Nova-forth версии  Ответить с цитатой
Интересно, fasm не так давно выпущен в еще одной версии. Другое дело, что период стремления к высокой производительности в одном потоке CPU уже в целом завершился, поэтому машинный код уже и не так актуален. Конечно, можно dll сделать на fasm (подключив к Форту), но как-то хочется уже другого, GUI вместо консоли, быстрой интеграции компонентов и прочего, что на ассемблере выписывать просто очень трудоемко.
Но продвижение - это интересно. Если проект эволюционирует, он рано или поздно куда-нибудь да приедет.
Сообщение Добавлено: Сб ноя 11, 2023 21:28
  Заголовок сообщения:  Re: Nova-forth версии  Ответить с цитатой
64-битная версия Nova-forth 2.0 для Виндовс (тестовая).

Имеет приличное количество изменений. Можно сказать, практически другая форт-система.

Что здесь есть:
  • Возможность создания инлайн-слов.
  • Возможность создания слов с различными точками входа.
  • Раздельное хранение кода, данных и словарных структур.
  • Операции с float-стеком
  • Расширенные операции со стеком возвратов (RPICK RPLACE RADD и пр.).
  • Небольшой функционал для работы со строками в хипе.
  • Библиотека для создания лок. переменных.
  • Поддержка калбеков (обратных вызовов) и Си-декларации.

В поставке также находится компилятор FASM, которым собирается часть слов форта.

Чего здесь нет:
  • Полезных библиотек
  • Оптимизации
  • Документации

Также поскольку версия тестовая, в ней могут оставаться баги. Дизайн ядра еще в процессе причёсывания.
Сообщение Добавлено: Вс ноя 05, 2023 11:00
  Заголовок сообщения:  Re: Nova-forth версии  Ответить с цитатой
Новая версия Nova

Что нового за полгода:
Исправлено 2 бага (1 со словом ALT: , другой с передачей параметра в поток)
Существенно упрощен транслятор файлов, все равно в ini подключается более навороченный.
ALLOCATE FREE и RESIZE стали пользовательскими векторами с поведением по умолчанию, что позволило легко написать либу по проверке хипа на утечки.
Добавлено слово NDROP

По либам:
Написана ещё более страшная, но и более рабочая библиотека по поддержке ООП :D
~er/oop/oop2.f

Написана она была по причине наличия косяков в 1-й попытке.
Дело в том, что когда пробовал применить 1-ю наработку обнаружил, что при написании классов очень сильно не хватает инициализаторов данных и деструкторов.

Короче, во 2-й библиотеки версии это учтено :), да и написана она гораздо понятнее чем предшественница


Вложения:
Nova-CDW 1.07.02 2020.06.12.7Z [477.32 Кб]
Скачиваний: 682
Сообщение Добавлено: Пт июн 12, 2020 20:22
  Заголовок сообщения:  Re: Nova-forth версии  Ответить с цитатой
Не прошло и полгода и вот появилась новая версия форта)

Что нового?
Слово TEMP-OUT убирает временный словарь со стека контекста
Слова DW@ DW! DW, для будущей совместимости
Слово USER-VECT-DEF - создание пользовательского вектора с поведением по умолчанию
Слово TYPE теперь пользовательский вектор.

Добавлена наработка для перенаправления TYPE-вывода в строку

ООП-библиотека (страшная, но рабочая)
Трансляция JSON-файлов. Незакончено. Пока только трансляция. Было лень добавлять поддержку вещественных чисел. Писать парсеры геморройно.


Вложения:
Nova-CDW 1.07.1 2019.12.23.7z [477.83 Кб]
Скачиваний: 881
Сообщение Добавлено: Пн дек 23, 2019 22:45
  Заголовок сообщения:  Re: Nova-forth версии  Ответить с цитатой
NOVA-CDW

Основные изменения:
Добавлены слова: UMIN UMAX U> U< BYE
Новая документация (пока разрабатывается) Спасибо KROL!
Основное направление сейчас: причёсывание исходников и написание документаций к либам и Нове в целом.
В ini-файле подключается более навороченный транслятор файлов. Позиционирует ошибку вплоть до слова и выводит путь к файлу, строку и соб-но слово.

Скачать можно тут
Сообщение Добавлено: Сб июл 13, 2019 12:55
  Заголовок сообщения:  Re: Nova-forth версии  Ответить с цитатой
Для разработчика это не проблема. А для пользователя чуть сложнее. Как на ассемблере достать число со стека? Как положить? Какие регистры нельзя использовать? Понятно, что это в целом не так сложно, но всегда есть сомнение, и порог вхождения получается чуть выше. Поэтому и речь о том, что вещи, которые очевидны для автора проекта, но не так очевидны для пользователей, имеет смысл добавлять именно автору. Даже если ему самому не особо надо.
Сообщение Добавлено: Вс июн 30, 2019 17:04
  Заголовок сообщения:  Re: Nova-forth версии  Ответить с цитатой
Как будто кто-то запрещает использовать ассемблер при необходимости :)
Сообщение Добавлено: Вс июн 30, 2019 16:53
  Заголовок сообщения:  Re: Nova-forth версии  Ответить с цитатой
Тут вопрос не в том, что чего-то не хватает, а в том, что некоторые вещи нельзя доопределить, потому что нужно или знать внутреннюю структуру, или иметь доступ к вещам, которых на уровне слов Форта просто нет. D+ как раз такое слово, его надо писать на ассемблере, а через + не выразить никак.
Сообщение Добавлено: Вс июн 30, 2019 15:06
  Заголовок сообщения:  Re: Nova-forth версии  Ответить с цитатой
У меня тогда вопрос, где вы используете числа такой большой длины? Где 4 гигабайтов не хватает?
Сообщение Добавлено: Вс июн 30, 2019 09:55
  Заголовок сообщения:  Re: Nova-forth версии  Ответить с цитатой
Victor__v писал(а):
Да и вообще при ошибке выдаётся краткая информация:
последнее скомпилированное слово
Да я заметил. Но если пишешь исходник не для компиляции в EXE, а для немедленной интерпретации, то ниже последнего определяемого слова может быть уйма текста. Там ведь обычно нужные слова наопределяешь, а потом или расписываешь что в процессе интерпретации делать. И если при этом используешь словечко которого нет, то начинается засада найти где грабль.
Цитата:
По остальному конечно,
смотри. Не важно что у тебя каких-то слов нет. Важно чтобы не было препятствия определить нужные слова. А без U< у тебя много чего определить будет невозможно. Или перейти к арифметике еще большей точности. Тут бы D+ и главное без UM* и UM/MOD не обойтись, это слова у которых произведение и делимое двойного размера, вот без них никак. Умножения и деления совсем уж больших чисел через них определять.
Сообщение Добавлено: Вс июн 30, 2019 02:04
  Заголовок сообщения:  Re: Nova-forth версии  Ответить с цитатой
WORDS это жёстко)
Я использовал связку число и точка т. е.
Код:
5 .
к примеру
Да и вообще при ошибке выдаётся краткая информация:
последнее скомпилированное слово
STATE и BASE возникшие при ошибке.

По остальному конечно,
Слов для работы с числами двойной длины нет поскольку не требовались отчего-то ни разу за последнее время, а так вещь нужная.
С LITERAL ситуёвина интереснее. Слово несколько блеклое что ли... связка [ LIT, ] наглядней.
Соот-но : LITERAL LIT, ; IMMEDIATE
Я уже и не помню почему решил отказаться от этого слова.
Сообщение Добавлено: Вс июн 30, 2019 01:59
  Заголовок сообщения:  Re: Nova-forth версии  Ответить с цитатой
Victor__v писал(а):
Насчёт спартанской отладки в квадрате не черезчур ли?
Так эта. Если Форт выводит эхо строк, то на какой строке заткнулось видно сразу. Если еще показывает на каком именно слове в строке ошибка, то вообще комфорт, хотя без этого не проблема и обойтись. А у тебя ни того ни другого. Я в исходник слово WORDS вставлял и смотрел вывалило ли список слов или нет. Если выволило - ошибка по тексту выше, если не вывалило по тексту ниже. Потом слово WORDS перемещал вверх или вниз и опять смотрел. Так строку с ошибкой и вычислял. А ошибки-то какие были - оказывается у тебя CHAR+ нет, S>D нет, 2@ нет, 2! нет, D< U< 0< нет, LITERAL нет и даже после подключения ~ER/DOLOOP.F нету J . Вот глядя на текст как ошибку было увидеть ? Нашел проблемную строку, пучишь на нее глаза и непонятно, ну здесь-то что может не нравится ? Приходится дополнительными экспериментами вычислять теперь уже проблемное слово в строке, порой пошинковывая ее на строки и [ WORDS ] между ними вставляя. Ну чем не спартанская отладка в квадрате ?
Тут решения два - или валить в консоль эхо строк исходника, читаемого из файла, или показать проблемное слово. Либо то, либо другое, либо и то и другое. Это вот как я у себя делал. Либо как Хищник предлагает вывести номер проблемной строки.
Сообщение Добавлено: Вс июн 30, 2019 01:39
  Заголовок сообщения:  Re: Nova-forth версии  Ответить с цитатой
найти последнее слово породившее родное фортовское исключение не так уж и сложно.
А вот все эти операции с адресами. Тут уж надо отлаживать код под дебаггером, он ещё заодно и состояние регистров выведет :) или просто медетировать над исходниками.
Сообщение Добавлено: Вс июн 30, 2019 01:28
  Заголовок сообщения:  Re: Nova-forth версии  Ответить с цитатой
Как локализовать ошибку - интересный вопрос. Если ориентироваться только на слово, вызвавшее ошибку, то можно свалиться либо в "ошибку вызвало слово RUN, потому что именно его ввели с консоли, а там уж куда выполнение попало - неизвестно", либо в "ошибка в слове @, потому что именно оно непосредственно выполнялось в момент исключения". Оно где-то логично, что наиболее вероятные кандидаты попасть в исключение - @ и !, когда им неправильно передают адрес. Поэтому хочется-то видеть всю цепочку, от слова, запустившего все, до слова, на котором все упало (и заодно при каких обстоятельствах - сразу, или когда дошли до определенной итерации цикла). Другой вопрос, что отладочную информацию можно просто не успеть достать.
Сообщение Добавлено: Вс июн 30, 2019 00:41

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


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