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

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 59 ]  На страницу 1, 2, 3, 4  След.
Автор Сообщение
 Заголовок сообщения: Как сделать форт-систему без ошибок?
СообщениеДобавлено: Пн май 07, 2018 23:58 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 1285
Благодарил (а): 3 раз.
Поблагодарили: 18 раз.
В некоторых форт-системах есть различные "некрасивости" и затычки.
К примеру, NOTFOUND СПФ-а или разбор параметрических слов в Нове.

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

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Как сделать форт-систему без ошибок?
СообщениеДобавлено: Ср май 09, 2018 00:24 
Не в сети

Зарегистрирован: Пт янв 06, 2017 14:57
Сообщения: 365
Благодарил (а): 17 раз.
Поблагодарили: 1 раз.
Victor__v писал(а):
Важнее же заранее собрать сельхоз. инвентарь, а не натыкаться в очередной раз на грабли.
:) Я за! Только я не буду удивлён, что и эти рассуждения могут заглохнуть. Это современная проблема Форта, только выраженная конкретнее.
Думаете чего я терял энтузиазм в последний момент? Просто считаю, что полученная система мне не нравится... ( Я думаю, что это из-за недостатка гениальности)) Но и вы же полностью не можете решить данную проблему?! Поэтому я за!
P.s. Новый стандарт приближается?)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Как сделать форт-систему без ошибок?
СообщениеДобавлено: Ср май 09, 2018 00:49 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7958
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
Волшебных путей устранения ошибок не бывает. Однако существуют такие понятия, как проектирование программного обеспечения и управление разработкой. Проектирование и разработка - это разные вещи, относящиеся примерно так же, как рисование дома и его постройка. Ошибки проще предугадывать и исправлять как раз на стадии проектирования.

До проектирования важен еще этап проработки целей и задач. Его вредно игнорировать, а правильная постановка задач способна существенно облегчить дальнейшие шаги. Без этого проект получится сумбурным и противоречивым, и будет "здесь быстрым, там красивым, а тут безопасным".

С постановкой задач у зарубежных фортеров как раз серьезные проблемы. Они просто идут по накатанной, потому что, как говорится, "посмотреть правде в глаза" сейчас там для основных игроков очень неудобно.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Как сделать форт-систему без ошибок?
СообщениеДобавлено: Ср май 09, 2018 13:20 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 1285
Благодарил (а): 3 раз.
Поблагодарили: 18 раз.
Вот скажу честно.
Свой форт проектировал. Однако предусмотрел далеко не всё.
В целом, форт получился как и задумывалось.
Но, скажем так, некоторые механизмы были без чёткой проработки.
К примеру расширяемость слов TO и FROM изначально не ставилась. Но, блин, понадобилась. Ибо я немного задолбался приводить лок. переменные по фичам к СПФ-скому варианту (нужно для портирования). А тут TO в СПФ пере- (или до?) -определяется, что некрасиво. Спасибо Олегу за тривиальную идею расширения.
А вот компиляция параметрических слов, сначала была затычкой. Потом стала некрасивостью - был введён служебный флаг, по которому "родные" параметрические слова разбираются. Но это всё равно баласт!
И единственный способ исправить эту некрасивость это использовать другую - использовать в ЦК ссылки вперёд.

Хм, Как-то черезчур предметно и немного не по теме :))

Короче, проектировал,проектировал да не выпроектировал
Далеко до Теслы запускать произвольную форт-систему в голове и её мысленно отлаживать и проектировать одновременно. А у бумаги с ручкой, видимо, слишком низкая разрядность для человеческого ума. :mrgreen:

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Как сделать форт-систему без ошибок?
СообщениеДобавлено: Ср май 09, 2018 13:27 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 1285
Благодарил (а): 3 раз.
Поблагодарили: 18 раз.
_KROL писал(а):
Это современная проблема Форта, только выраженная конкретнее.


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

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Как сделать форт-систему без ошибок?
СообщениеДобавлено: Ср май 09, 2018 16:28 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7958
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
Victor__v писал(а):
И вполне возможно, что проще создать систему с нуля.

Это как правило. Существует иллюзия, что вокруг полно профессиональных решений, в которых нужно просто разобраться. А на деле легко может оказаться, что их авторы банально выбросили сырую поделку в мир, в надежде, что придут профессионалы и помогут довести проект до ума. В целом будет меньше проблем, если вести проект последовательно, определив приоритеты. До сих пор помню восторженное письмо от фаната СПФ, который "ускорил чтение файла в 8 (!) раз". И, собственно, что? Я честно пытался объяснить, что мне нужен Форт обязательно с плавающей точкой на сопроцессоре и быстрой графикой. А "стандартность де-факто" и ускорение мелкой утилиты в 8 раз просто не попадает в список приоритетов.

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Как сделать форт-систему без ошибок?
СообщениеДобавлено: Ср май 09, 2018 18:10 
Не в сети

Зарегистрирован: Пт янв 06, 2017 14:57
Сообщения: 365
Благодарил (а): 17 раз.
Поблагодарили: 1 раз.
Тогда я попробую опять... :mrgreen:
Только надо сосредоточится и всё получится =)
Код:
Определения без точной категории:
> Локальные переменные для ввода-вывода
> Преобразование данных
> Работа с хэндлами (или может это обьеденить с "работой с памятью"?)
Низкоуровневые (базовые) определения:
> Шитый код (ШК) и управляющие подпрограммы
> Связь ШК и нативного кода (НК), если такой имеется
> Дополнительные внутренние подпрограммы на НК, если такой имеется
> Работа с памятью
> Работа со стеком
> АЛУ-операции (математические)
> Ввод-вывод
Высокоуровневые определения:
> Окружение (переменные/константы/...)
>> Стандартные буфера ввода-вывода
>> Временный буфер преобразования данных
>> Основные локальные переменные (DP, BASE(если есть), ...)
>> Переменные для поддержки словаря
>> Переменные для обработки исключений
> Ввод-вывод (дополнения)
> Метки
> Определения структурированного программирования (условия, циклы)
> Парсер
> Поддержка словарей (как минимум одного)
> Поддержка исключений
Хотелки:
1. Плюя на любую оптимизацию делю категории слов на части, которые не повторяются (есть только в одной категории)
2. Очень хочу единый парсер обработки как ввода, так и вывода (не люблю я < # #s >)
3. Хочу два системных буфера: для ввода и для вывода (если надо ещё, можно выделить доп. кусок памяти)

Скажите, что тут может быть исходно плохой хотелкой.


Последний раз редактировалось _KROL Ср май 09, 2018 18:20, всего редактировалось 1 раз.

Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Как сделать форт-систему без ошибок?
СообщениеДобавлено: Ср май 09, 2018 18:12 
Не в сети

Зарегистрирован: Пт янв 06, 2017 14:57
Сообщения: 365
Благодарил (а): 17 раз.
Поблагодарили: 1 раз.
P.s. Я не против ваших предложений, только учтите, что я знаю не всё или ничего по некоторым аспектам (например, про CALLBACK).


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Как сделать форт-систему без ошибок?
СообщениеДобавлено: Ср май 09, 2018 20:04 
Не в сети
Administrator
Administrator
Аватара пользователя

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

Это зависит от общих целей. Что вообще нужно от Форта? В зависимости от этого те или иные подходы могут быть и подходящими, и противоречащими.

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Как сделать форт-систему без ошибок?
СообщениеДобавлено: Ср май 09, 2018 20:28 
Не в сети

Зарегистрирован: Пт янв 06, 2017 14:57
Сообщения: 365
Благодарил (а): 17 раз.
Поблагодарили: 1 раз.
Нет, довайте по разумному, без каких-то сильных крайностей. Главное получить удобство и логичность, раз не бывает ничего универсального.
Пункт "вывод (дополнительный)" скорее всего я зря добавил, т.к. потом решил, что это будет частью парсера.
P.s. Вот и я жду общих целей от вас. Что я в основном хочу, я уже высказался. Потом сравним и откинем лишнее, если надо будет.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Как сделать форт-систему без ошибок?
СообщениеДобавлено: Ср май 09, 2018 20:53 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 1285
Благодарил (а): 3 раз.
Поблагодарили: 18 раз.
_KROL писал(а):
Нет, довайте по разумному, без каких-то сильных крайностей. Главное получить удобство и логичность, раз не бывает ничего универсального.
Пункт "вывод (дополнительный)" скорее всего я зря добавил, т.к. потом решил, что это будет частью парсера.
P.s. Вот и я жду общих целей от вас. Что я в основном хочу, я уже высказался. Потом сравним и откинем лишнее, если надо будет.

Тут ещё от цели зависит.
Вот простой вопрос: зачем лично тебе нужна форт-система?
Исходя из ответа составляется проект. И он уже детально или не очень обмозговывается.
Я сейчас не работаю программистом.
Моя задача написать такой форт, который может быть расширен до любой задачи в случае необходимости. Так сказать, форт на чёрный день :D
Отсюда и мои требования:
быстрая трансляция (отсюда цепочки поиска (очередное спасибо Олегу) и хеширование).
инлайн слов
возможность без проблем подключить что-угодно
...


Можно сказать, что со своей задачей неплохо справился.
Единственное, ранее озвученная некрасивость. Не очень хочется, чтобы подхвативший форт-эстафету кричал в пространство "Ну и нахрена ты это вот так сделал? Можно логичней" будучи правым.
А мне ещё либы для форта писать (т.е я один из 100 мифических программистов :)).

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Как сделать форт-систему без ошибок?
СообщениеДобавлено: Ср май 09, 2018 21:14 
Не в сети

Зарегистрирован: Пт янв 06, 2017 14:57
Сообщения: 365
Благодарил (а): 17 раз.
Поблагодарили: 1 раз.
Я хочу, чтобы всем было понятно, даже начинающим, а не только избранным, что где и как.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Как сделать форт-систему без ошибок?
СообщениеДобавлено: Ср май 09, 2018 21:53 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7958
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
Каким конкретно образом вот это:

Victor__v писал(а):
быстрая трансляция (отсюда цепочки поиска (очередное спасибо Олегу) и хеширование).
инлайн слов
возможность без проблем подключить что-угодно


помогает вот этому?

Victor__v писал(а):
Моя задача написать такой форт, который может быть расширен до любой задачи в случае необходимости.


Простой вопрос: сколько по времени идет трансляция 1000 строк на Форте (если сами слова не запускаются, тратя дополнительное время)? Какой выигрыш по времени получается при введении хеширования? Подсказка: существует такой термин "демонстрация возможностей", и он в целом носит негативный характер.
Более сложный вытекающий вопрос: чем именно ускорение трансляции помогает?


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Как сделать форт-систему без ошибок?
СообщениеДобавлено: Ср май 09, 2018 22:18 
Не в сети

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

Цитата:
Какой выигрыш по времени получается при введении хеширования?

Да ладно. Вот этого точно не ожидал.
Что проще и быстрее найти в списке? Число или строку? Что проще 2OVER COMPARE или OVER = ?
Конечно, выигрыш будет заметен на большой выборке. Хотя, с компиляцией 2 или 4 либ в основном словаре слов будет под 1000.

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Как сделать форт-систему без ошибок?
СообщениеДобавлено: Ср май 09, 2018 22:49 
Не в сети

Зарегистрирован: Пт янв 06, 2017 14:57
Сообщения: 365
Благодарил (а): 17 раз.
Поблагодарили: 1 раз.
Я думаю Hishnik вспоминает некоторого Михаила, и не хочет, чтобы ты повторял его ошибок)


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

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


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

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


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

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