Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Вс июл 25, 2021 23:42

...
Google Search
Forth-FAQ Spy Grafic

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




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

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

Обзор темы - Nova Дневник разработчика
Автор Сообщение
  Заголовок сообщения:  Re: Nova Дневник разработчика  Ответить с цитатой
Я писал с СПФ у меня проблем нет... и команда мне помогала в деталях.. попробую твою Нову.. но были бы в команде.... и результат был бы..
Сообщение Добавлено: Вт июл 20, 2021 19:13
  Заголовок сообщения:  Re: Nova Дневник разработчика  Ответить с цитатой
Посмотрел мельком.
При портировании, не знаю, 2/5 надо менять :cry:

Прежде всего операции <# #S HOLD и пр.
В Нове их просто нет.
Также отсутствует двойная арифметика, что также составит некоторые проблемы.

Обратите внимание на слова для парсинга.
Связка 0 PARSE в СПФ по сути хак.
В СПФ это как бы позволяет получить всю строку до каретки т. к. творение Черезово транслирует данные построчно.
В Нове же данный код возьмет все до конца источника и это может быть отнюдь не одна строка.

Также NOTFOUND работает иначе (переопределение, как в СПФ, ничего не даст).

Насчет гуя в винде не знаю. По идее все должно работать

Однако кое-что будет проще.
Например, в Нове в ядре есть слово NDROP, дабы не плодить 3DROP 5DROP и пр.

Например, заметил как определено слово 0.6

В Нове, подключив библиотеку ~er/float/float.f , можно просто писать где нужно 0,6 или 0.6 (без разницы).

Можно кстати сделать определение для флоат-констант типа того:

Код:
: FCONST
HEADER
F> LIT, POSTPONE >F RET,
INLINE
;


Только отмечу, что на стек данных кладется флоат в 32-битном формате. на версии под 64 соот-но будет класться в 64-битном.
Сообщение Добавлено: Вт июл 20, 2021 11:23
  Заголовок сообщения:  Re: Nova Дневник разработчика  Ответить с цитатой
Да ссылка слетела https://cloud.mail.ru/public/5nM4%2F6jyazjtHM
Сообщение Добавлено: Пн июл 19, 2021 23:22
  Заголовок сообщения:  Re: Nova Дневник разработчика  Ответить с цитатой
По ходу исходников уже нет)

Смотрел в теме viewtopic.php?f=5&t=2980&view=previous

Просто, чтобы прикинуть.
Какие либы СПФа Вы использовали?
Просто в Нове есть далеко не все.
Так что либо придется изобретать велосипеды, либо совместно думать.
Сообщение Добавлено: Пн июл 19, 2021 21:50
  Заголовок сообщения:  Re: Nova Дневник разработчика  Ответить с цитатой
Надо попробовать, здесь описание и есть ссылка на установку https://cloud.mail.ru/public/RvuR%2FsXgxeWf1s, исходный код я ранее выкладывал, велосипеды не изобретал, все в доступных библиотеках. Да и для "кнопкодавов" за красивыми кнопками не гонюсь..
Сообщение Добавлено: Пн июл 19, 2021 20:35
  Заголовок сообщения:  Re: Nova Дневник разработчика  Ответить с цитатой
Не знаю. Скажите, какими фичами в СПФ пользуетесь и тогда прикинем.

Код с СПФ-ским совместим.
Однако отличий дофига.

Портировать те или иные вещи с СПФа на Нову можно с оговорками (к примеру, нет PAD, работа с float ограничена (библиотека пока под 32 бита, нет печати числа).
Перенести библиотеки, например, от ~yz не удалось.
Так, его Gui на винде и не смог портировался.

Имеющиеся библиотеки из полезного:
  • Локальные переменные (функционал как и в СПФ)
  • Строки (собственный функционал)
  • Лямбды (самая продвинутая библиотека работает с посткомпиляцией)
  • Трансляция JSON (особо не тестил)
  • Статический ООП (наследование, полиморфизм и инкапсуляция)
  • Дописывание образа форт-системы (можно создать и граф. приложение)
  • MySQL (надо допилить т. к. давно с ним не работал)
  • Небольшая обертка над сокетами
  • Дополнительные слова для отладки (печать дампа, стека возврата)
  • Списки. Массивы, Матрицы

Для gui приложений можно использовать библиотеку IUP, есть в поставке (там реализация похожа GTK, в общем ничего сложного).
Сообщение Добавлено: Пн июл 19, 2021 16:53
  Заголовок сообщения:  Re: Nova Дневник разработчика  Ответить с цитатой
Не в тему немного.. в свою бытность познакомился с Наири во время учебы, таже польская запись, потом появилась Микроша с встроенным форт.. много программ написал.. На работе ИСКРА-30М и тоже астрофорт, искал подходящее на win, только СПФ подошел, на нем и пишу..все программы работают без сбоев и на XP и на десятке 64 р..Я не изобретаю новый форт, только использую.. Вопрос смогу ли я на твою Нову перейти без проблем?
Сообщение Добавлено: Пн июл 19, 2021 16:04
  Заголовок сообщения:  Re: Nova Дневник разработчика  Ответить с цитатой
Продолжаем разговор.

Временные словари

Сейчас (в текущей версии), чтобы освободить память под временный словарь, достаточно использовать слово FREE
Ведь при создании Новы я не заморачивался − все данные вперемешку с кодом.
Работает и ладно.

Однако новая версия форта - новые правила :)
Теперь FREE не подходит для удаления временного словаря, который уже представляет собой кучу с 3 указателями на другие кучи.
В общем, уже написано слово FREE-WORDLIST, которое освобождает память под все отведенные словарём пространства.

Однако я также думаю, что функцию удаления можно отдать на откуп самого временного словаря. Благо это несложно. Но возьмусь я это делать, когда возникнет практическая необходимость в подобном.

Обертки под API

Написаны, компиляция в уме, говорит, что надёжно. Однако я сомневаюсь, что Cdecl правильно работает, надо будет потом отдельно затестить. Благо возможная ошибка заключается в возможном мусоре на стеке данных.

За сами внешние функции пока не брался. Хотя там и браться по идее не за что.
Ещё калбеки с потоками надо сделать.

Самомодификация
В Нове есть такое чудное слово как RECOMPILE. В предыдущих версиях оно то включалось в ядро то нет.
Кажется единственный пример его использования, это смена вызова (winapi-code) на (stdcall) в слове WINAPI:
Думаю, слово RECOMPILE все же лучше оставить в ядре. Лишним не будет. А то, что использоваться не будет и ладно. А вдруг опять понадобится?
Сообщение Добавлено: Пн июл 19, 2021 13:13
  Заголовок сообщения:  Re: Nova Дневник разработчика  Ответить с цитатой
Hishnik писал(а):
Если это хобби, оно имеет шансы "лопнуть", загнав автора в депрессию

Я очень рад, что Вы печётесь о моём психическом здоровье.
Но разве может такая скромная вещь, как разработка форта воимя исскуства, науки и печенек, свести мою скромную персону с ума?
Ответ: нет.

Hishnik писал(а):
Отсюда встречающиеся реализации ООП

О, реализация ООП у меня тоже есть) Всё, пора к психиатру)

Hishnik писал(а):
огромный пласт "сделаем как у канонизированных фортеров"

Можно перечень этих лиц канонизированных сектой свидетелей ФОРТА?
Сообщение Добавлено: Пн июл 19, 2021 11:16
  Заголовок сообщения:  Re: Nova Дневник разработчика  Ответить с цитатой
zma писал(а):
У Вас речь шла про хеширование слов, которое в Форте редко встречается.


Редко?
Как говорится, все познается в сравнении.
Если мы возьмём всю уйму фортов, то там как раз не будет хеширования. Только все эти форты под DOS :) и большинство написаны плюс-минус 10 лет назад :)
Не с этим же сравнивать, верно?

А вот если мы возьмём форк, СПФ и Кварк, то мы заметим следующее:

в форке хеширование
в СПФ сделали либу с хешированием (всё-таки 900 слов это вам ни хухры-мухры)
в Кварке - спрашивайте Хищника, у меня исходников нет :)

В общем на 3 системы 1,5 примера использования хеширования.

Вот ещё тема, где обсуждалось ускорение поиска в словарях.
Там про хеширование, треды, битовую маску и прочий треш)

viewtopic.php?f=2&t=3128
Сообщение Добавлено: Пн июл 19, 2021 11:07
  Заголовок сообщения:  Re: Nova Дневник разработчика  Ответить с цитатой
Даже для специализированного Форта (и особенно для него) нужно очень хорошо понимать, зачем он вообще пишется. Если это хобби, оно имеет шансы "лопнуть", загнав автора в депрессию ("столько времени на это потратил, а язык, оказывается, вовсе и не такой хороший"). Объективная гибкость Форта, проистекающая из его простой вычислительной модели и не менее простых правил построения синтаксиса, в некотором смысле дезориентирует автора нового транслятора, вынуждая его хвататься за те "якоря", которые ему известны. Отсюда встречающиеся реализации ООП, просто калькой с других языков. Отсюда все "библиотеки, отладчики и IDE", без которых, если верить запросам, Форт вообще не может развиваться. А "якоря" бывают и специфичные, этакие канонизированные сообществом понятия. Например, стек стеков (раз в Форте стек, то пусть он будет везде!), а также огромный пласт "сделаем как у канонизированных фортеров". Это все просто тормозит разработку, потому что вместо написания чего-то, что можно показать, идут новые и новые витки внутренних доработок, которые без связи с реальной задачей могут быть бесконечными.
Сообщение Добавлено: Вс июл 18, 2021 17:19
  Заголовок сообщения:  Re: Nova Дневник разработчика  Ответить с цитатой
Victor__v писал(а):
Вот кстати да.
Только я тут причём?
Я в форт ничего нового не вношу, просто меняю разрядность)

У Вас речь шла про хеширование слов, которое в Форте редко встречается.
Вообще, мне кажется, что Вы с Хищником говорите о разных Фортах. Он - о Форте внутри некоторого контретного приложения, который должен быть заточен под задачи этого приложения, поэтому может быть очень компактным и специализированным. А Вы - про Форт, как универсальный транслятор, конкурирующий с другими универсальными трансляторами (с других языков), в связи с чем он должен содержать распространённые возможности, которые ожидаются от такого средства.
От различного применения языка происходят и различные требования к нему и к транслятору.
Сообщение Добавлено: Вс июл 18, 2021 10:29
  Заголовок сообщения:  Re: Nova Дневник разработчика  Ответить с цитатой
zma писал(а):
Ваш диалог наводит на мысль, что перед фортером стоит задача не добавить какую-либо возможность в язык, а суметь удержаться от добавления лишнего.

Вот кстати да.
Только я тут причём?
Я в форт ничего нового не вношу, просто меняю разрядность)
Сообщение Добавлено: Вс июл 18, 2021 09:44
  Заголовок сообщения:  Re: Nova Дневник разработчика  Ответить с цитатой
Вобщем да, за отсутствием плана, основанного на своих реальных потребностях, реализуется план, который неявно основан на том, что вращается в информационном пространстве. При таком подходе и результаты будут те же. На СПФ нового проекта уровня eserv нет, Технофорт закрылся, Forth Inc и MPE в непонятном состоянии, Эртл никогда разработками не занимался. Ориентация на чужие наработки, возведенные в ранг иконы, приведет в тот же тупик, где начнется "отрицание-гнев-торг-депрессия-принятие".
Поэтому план должен быть полностью осознаваемый, рассчитанный на собственные цели.
Сообщение Добавлено: Пт июл 16, 2021 20:45
  Заголовок сообщения:  Re: Nova Дневник разработчика  Ответить с цитатой
Ваш диалог наводит на мысль, что перед фортером стоит задача не добавить какую-либо возможность в язык, а суметь удержаться от добавления лишнего.
Сообщение Добавлено: Пт июл 16, 2021 20:07

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


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