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

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 206 ]  На страницу Пред.  1 ... 5, 6, 7, 8, 9, 10, 11 ... 14  След.
Автор Сообщение
 Заголовок сообщения: Re: Nova Дневник разработчика
СообщениеДобавлено: Чт июл 15, 2021 16:50 
Не в сети

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


Можно пример? А то видишь и внедрю)
У меня код простой и масштабируемый, будет несложно)

Hishnik писал(а):
Более важный вопрос другой. Чему конкретно мешает интерпретация? Там система, которая должна сверхбыстро стартовать? Или у нее постоянная работа связана с интерпретацией мегабайтов текста на Форте?


А теперь начинаем еврейский атракцион :))

Чему конкретно мешает интерпретация Ничему
Там система, которая должна сверхбыстро стартовать? А почему нет? И где тут связь с хешами-то?
Постоянная работа связана с интерпретацией мегабайтов текста на Форте? Нет, не связана. Однако почему бы не предусмотреть и такой вариант использования форта, а?

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Nova Дневник разработчика
СообщениеДобавлено: Чт июл 15, 2021 16:59 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 1288
Благодарил (а): 3 раз.
Поблагодарили: 18 раз.
Hishnik писал(а):
Заменить 2 CELLS на 8? Можно вручную, если уж так надо поменять наглядное представление на более эффективное. Можно и [ 2 CELLS ] LITERAL написать, и будет скомпилирован литерал, вычисленный в режиме интерпретации.


Так-с, при создании форт-системы в перед интерпретацией самого файла запускается текстовый оптимизатор.
Его задача превратить читаемый человеком легкомасштабируемый текст в его зубодробительный аналог, с кучами LITERAL , заменой компилирующих инструкций и просто ассемблерными кодами.
И да, он работает в куче файлов.

Данная вещь второстепенна, просто она уменьшает размер форт-ядра.
Про ускорение не заикаюсь. Копейки, наверно. Не замерял. Просто меньше стекомахания, что тоже плюс.

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Nova Дневник разработчика
СообщениеДобавлено: Чт июл 15, 2021 17:40 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
Victor__v писал(а):
Можно пример? А то видишь и внедрю)
У меня код простой и масштабируемый, будет несложно)

На самом-то деле этого не надо делать (но это было бы следующим пунктом), потому что на последовательном поиске в связанном списке основан, например, прием переопределения уже существующего слова. Если алгоритм поиска будет другим, то он может найти и более раннее слово, которое программист полагает скрытым от поиска. Это все к итоге приводит нас к тому, что отдельные характеристики могут и не доводиться до предела, поскольку в сложной системе они могут оказать негативное влияние на что-то еще. В данном случае связанный список (плюс контекстные словари) удобен простотой.

Victor__v писал(а):
Чему конкретно мешает интерпретация Ничему

А если она ничему не мешает, зачем ее ускорять?

Victor__v писал(а):
Там система, которая должна сверхбыстро стартовать? А почему нет? И где тут связь с хешами-то?

А тогда зачем вообще предполагается использование хешей?

Victor__v писал(а):
Однако почему бы не предусмотреть и такой вариант использования форта, а?

Такая постановка не вполне вписывается в нормальный выпуск ПО. С множеством тактических улучшений получается долгострой. Одно дело - планомерное изучение подходов, алгоритмов и архитектур. Но оно должно периодически реализовываться в конкретном программном продукте, который проектируется уже с учетом компромиссов, принимаемых на основе изучения его применения. Всего не реализовать, и сверхбыстрый компилятор с высокой вероятностью будет сложным, сверхнадежный - медленным, а сверхгибкий - сложным для настройки и программирования. Отсюда сразу возникает вопрос - зачем вообще такой компилятор? Это вопрос не риторический, в том смысле, что он навязывает ответ "не нужен", а конкретный, призванный представить список программ, которые на нем должны бы быть написаны в первую очередь. Вот под этот список все и подстраивается.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Nova Дневник разработчика
СообщениеДобавлено: Чт июл 15, 2021 17:55 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 1288
Благодарил (а): 3 раз.
Поблагодарили: 18 раз.
Hishnik писал(а):
Victor__v писал(а):
Чему конкретно мешает интерпретация Ничему

А если она ничему не мешает, зачем ее ускорять?

Чтобы работало быстрее. Чтоб не было периодических секундных зависаний, как в СПФ, например. Чтобы отладка слов была адекватной по скорости в консоли во время высокой загруженности процессора.

Hishnik писал(а):
Victor__v писал(а):
Там система, которая должна сверхбыстро стартовать? А почему нет? И где тут связь с хешами-то?

А тогда зачем вообще предполагается использование хешей?


Ещё раз при чем сверхбыстрый старт и хеширование слов для поиска?
Ведь для старта системы нужно: проинициализировать стек, записать данные в критические важные переменные и запустить интерпретатор.
Все это просто код и поиск он вообще не трогает.

Hishnik писал(а):
Victor__v писал(а):
Однако почему бы не предусмотреть и такой вариант использования форта, а?

Такая постановка не вполне вписывается в нормальный выпуск ПО. С множеством тактических улучшений получается долгострой. Одно дело - планомерное изучение подходов, алгоритмов и архитектур. Но оно должно периодически реализовываться в конкретном программном продукте, который проектируется уже с учетом компромиссов, принимаемых на основе изучения его применения. Всего не реализовать, и сверхбыстрый компилятор с высокой вероятностью будет сложным, сверхнадежный - медленным, а сверхгибкий - сложным для настройки и программирования. Отсюда сразу возникает вопрос - зачем вообще такой компилятор? Это вопрос не риторический, в том смысле, что он навязывает ответ "не нужен", а конкретный, призванный представить список программ, которые на нем должны бы быть написаны в первую очередь. Вот под этот список все и подстраивается.


Не вполне вписывается, это сильно)
Для меня к счастью или к сожалению форт-система это не продукт, а больше произведение исскуства.
А так я предпочитаю золотую серидину.
Хеши для чуть более быстрого поиска (нам что жалко слово написать, одно поле в стуктуре выделить?)
Инлайн для чуть более быстрого исполнения кода (нам что жалко сделать один флаг, да придумать шаблоны для разворота инлайна?)
и пр.
Хотя нет, все остальное ещё большие мелочи)

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Nova Дневник разработчика
СообщениеДобавлено: Чт июл 15, 2021 22:20 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
Victor__v писал(а):
Чтобы работало быстрее. Чтоб не было периодических секундных зависаний, как в СПФ, например. Чтобы отладка слов была адекватной по скорости в консоли во время высокой загруженности процессора.

Я даже боюсь предположить, что там в СПФ накручено на сегодняшний день, что у него периодические секундные зависания...

Victor__v писал(а):
Ещё раз при чем сверхбыстрый старт и хеширование слов для поиска?
Ведь для старта системы нужно: проинициализировать стек, записать данные в критические важные переменные и запустить интерпретатор.
Все это просто код и поиск он вообще не трогает.

Потому что я в процессе выяснения предположил, что при старте транслятор начинает что-то интерпретировать из переданного файла. Это могло бы быть причиной ускорения поиска.

Victor__v писал(а):
Не вполне вписывается, это сильно)

В действительности это весьма деликатно :) Оно не то что не вписывается, а с большой вероятностью приведет любой коммерческий проект к краху. Если это хобби - раано или поздно от такого наступит разочарование.

Victor__v писал(а):
Хеши для чуть более быстрого поиска (нам что жалко слово написать, одно поле в стуктуре выделить?)
Инлайн для чуть более быстрого исполнения кода (нам что жалко сделать один флаг, да придумать шаблоны для разворота инлайна?)
и пр.
Хотя нет, все остальное ещё большие мелочи)

Все подобные вещи нельзя считать ненужными. Но когда они начинают реализовываться бессистемно, наступает то, что я написал чуть выше. Цель, способы измерения меры ее достижения и допустимые сроки, которые на это все можно отвести - это хоть в цифре, хоть в блокнотике, да пусть и в голове, но постоянно должно быть. А если посмотреть на конкретные ключевые точки проекта - что получится? Когда им уже можно будет начинать пользоваться для конкретных вещей? И каких?


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Nova Дневник разработчика
СообщениеДобавлено: Пт июл 16, 2021 09:31 
Не в сети

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

ЕМНИП, там более 900 слов. Причем половина из них это слова максимовского оптимизатора. Так что, чтобы найти, например, 2+ надо потратить заметное человеческим глазом время.

Hishnik писал(а):
Потому что я в процессе выяснения предположил, что при старте транслятор начинает что-то интерпретировать из переданного файла. Это могло бы быть причиной ускорения поиска.

Да не. Конечно Нове можно передать через командную строку файл на исполнение, да и ini файл подключется, но это несущественно.


Victor__v писал(а):
Не вполне вписывается, это сильно)

В действительности это весьма деликатно :) Оно не то что не вписывается, а с большой вероятностью приведет любой коммерческий проект к краху. Если это хобби - раано или поздно от такого наступит разочарование.

Hishnik писал(а):
Все подобные вещи нельзя считать ненужными. Но когда они начинают реализовываться бессистемно, наступает то, что я написал чуть выше. Цель, способы измерения меры ее достижения и допустимые сроки, которые на это все можно отвести - это хоть в цифре, хоть в блокнотике, да пусть и в голове, но постоянно должно быть. А если посмотреть на конкретные ключевые точки проекта - что получится? Когда им уже можно будет начинать пользоваться для конкретных вещей? И каких?


А таки кто вам сказал, что все это реализовывалось безсистемно, а? :)
Начать пользоваться можно хоть сейчас, 32-битная версия работает без нареканий)
64-битной пока ещё нет :(
Для любых вещей. Я не затачивал форт-систему под определенные задачи.

В общем у меня получился, как я искренне надеюсь, более дружелюбные и проработанный вариант СПФа :)

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Nova Дневник разработчика
СообщениеДобавлено: Пт июл 16, 2021 20:07 
Не в сети

Зарегистрирован: Пн янв 28, 2019 03:10
Сообщения: 174
Благодарил (а): 20 раз.
Поблагодарили: 13 раз.
Ваш диалог наводит на мысль, что перед фортером стоит задача не добавить какую-либо возможность в язык, а суметь удержаться от добавления лишнего.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Nova Дневник разработчика
СообщениеДобавлено: Пт июл 16, 2021 20:45 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
Вобщем да, за отсутствием плана, основанного на своих реальных потребностях, реализуется план, который неявно основан на том, что вращается в информационном пространстве. При таком подходе и результаты будут те же. На СПФ нового проекта уровня eserv нет, Технофорт закрылся, Forth Inc и MPE в непонятном состоянии, Эртл никогда разработками не занимался. Ориентация на чужие наработки, возведенные в ранг иконы, приведет в тот же тупик, где начнется "отрицание-гнев-торг-депрессия-принятие".
Поэтому план должен быть полностью осознаваемый, рассчитанный на собственные цели.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Nova Дневник разработчика
СообщениеДобавлено: Вс июл 18, 2021 09:44 
Не в сети

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

Вот кстати да.
Только я тут причём?
Я в форт ничего нового не вношу, просто меняю разрядность)

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Nova Дневник разработчика
СообщениеДобавлено: Вс июл 18, 2021 10:29 
Не в сети

Зарегистрирован: Пн янв 28, 2019 03:10
Сообщения: 174
Благодарил (а): 20 раз.
Поблагодарили: 13 раз.
Victor__v писал(а):
Вот кстати да.
Только я тут причём?
Я в форт ничего нового не вношу, просто меняю разрядность)

У Вас речь шла про хеширование слов, которое в Форте редко встречается.
Вообще, мне кажется, что Вы с Хищником говорите о разных Фортах. Он - о Форте внутри некоторого контретного приложения, который должен быть заточен под задачи этого приложения, поэтому может быть очень компактным и специализированным. А Вы - про Форт, как универсальный транслятор, конкурирующий с другими универсальными трансляторами (с других языков), в связи с чем он должен содержать распространённые возможности, которые ожидаются от такого средства.
От различного применения языка происходят и различные требования к нему и к транслятору.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Nova Дневник разработчика
СообщениеДобавлено: Вс июл 18, 2021 17:19 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
Даже для специализированного Форта (и особенно для него) нужно очень хорошо понимать, зачем он вообще пишется. Если это хобби, оно имеет шансы "лопнуть", загнав автора в депрессию ("столько времени на это потратил, а язык, оказывается, вовсе и не такой хороший"). Объективная гибкость Форта, проистекающая из его простой вычислительной модели и не менее простых правил построения синтаксиса, в некотором смысле дезориентирует автора нового транслятора, вынуждая его хвататься за те "якоря", которые ему известны. Отсюда встречающиеся реализации ООП, просто калькой с других языков. Отсюда все "библиотеки, отладчики и IDE", без которых, если верить запросам, Форт вообще не может развиваться. А "якоря" бывают и специфичные, этакие канонизированные сообществом понятия. Например, стек стеков (раз в Форте стек, то пусть он будет везде!), а также огромный пласт "сделаем как у канонизированных фортеров". Это все просто тормозит разработку, потому что вместо написания чего-то, что можно показать, идут новые и новые витки внутренних доработок, которые без связи с реальной задачей могут быть бесконечными.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Nova Дневник разработчика
СообщениеДобавлено: Пн июл 19, 2021 11:07 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 1288
Благодарил (а): 3 раз.
Поблагодарили: 18 раз.
zma писал(а):
У Вас речь шла про хеширование слов, которое в Форте редко встречается.


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

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

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

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

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

viewtopic.php?f=2&t=3128

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Nova Дневник разработчика
СообщениеДобавлено: Пн июл 19, 2021 11:16 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 1288
Благодарил (а): 3 раз.
Поблагодарили: 18 раз.
Hishnik писал(а):
Если это хобби, оно имеет шансы "лопнуть", загнав автора в депрессию

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

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

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

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

Можно перечень этих лиц канонизированных сектой свидетелей ФОРТА?

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Nova Дневник разработчика
СообщениеДобавлено: Пн июл 19, 2021 13:13 
Не в сети

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

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

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

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

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

Обертки под API

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

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

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

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Nova Дневник разработчика
СообщениеДобавлено: Пн июл 19, 2021 16:04 
Не в сети

Зарегистрирован: Пт июн 06, 2008 14:21
Сообщения: 128
Откуда: Карелия
Благодарил (а): 1 раз.
Поблагодарили: 4 раз.
Не в тему немного.. в свою бытность познакомился с Наири во время учебы, таже польская запись, потом появилась Микроша с встроенным форт.. много программ написал.. На работе ИСКРА-30М и тоже астрофорт, искал подходящее на win, только СПФ подошел, на нем и пишу..все программы работают без сбоев и на XP и на десятке 64 р..Я не изобретаю новый форт, только использую.. Вопрос смогу ли я на твою Нову перейти без проблем?


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 206 ]  На страницу Пред.  1 ... 5, 6, 7, 8, 9, 10, 11 ... 14  След.

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


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

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


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

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