Forth http://fforum.winglion.ru/ |
|
Как сделать форт-систему без ошибок? http://fforum.winglion.ru/viewtopic.php?f=4&t=3172 |
Страница 1 из 4 |
Автор: | Victor__v [ Пн май 07, 2018 23:58 ] |
Заголовок сообщения: | Как сделать форт-систему без ошибок? |
В некоторых форт-системах есть различные "некрасивости" и затычки. К примеру, NOTFOUND СПФ-а или разбор параметрических слов в Нове. Как от таких затычек избавиться и не допускать их появления в принципе? Интересуют прежде всего какие-то размышления на тему и шаблоны мышления и/или построения форт-системы, а не разрешение очередной затычки. Важнее же заранее собрать сельхоз. инвентарь, а не натыкаться в очередной раз на грабли. |
Автор: | _KROL [ Ср май 09, 2018 00:24 ] |
Заголовок сообщения: | Re: Как сделать форт-систему без ошибок? |
Victor__v писал(а): Важнее же заранее собрать сельхоз. инвентарь, а не натыкаться в очередной раз на грабли. Я за! Только я не буду удивлён, что и эти рассуждения могут заглохнуть. Это современная проблема Форта, только выраженная конкретнее.Думаете чего я терял энтузиазм в последний момент? Просто считаю, что полученная система мне не нравится... ( Я думаю, что это из-за недостатка гениальности)) Но и вы же полностью не можете решить данную проблему?! Поэтому я за! P.s. Новый стандарт приближается?) |
Автор: | Hishnik [ Ср май 09, 2018 00:49 ] |
Заголовок сообщения: | Re: Как сделать форт-систему без ошибок? |
Волшебных путей устранения ошибок не бывает. Однако существуют такие понятия, как проектирование программного обеспечения и управление разработкой. Проектирование и разработка - это разные вещи, относящиеся примерно так же, как рисование дома и его постройка. Ошибки проще предугадывать и исправлять как раз на стадии проектирования. До проектирования важен еще этап проработки целей и задач. Его вредно игнорировать, а правильная постановка задач способна существенно облегчить дальнейшие шаги. Без этого проект получится сумбурным и противоречивым, и будет "здесь быстрым, там красивым, а тут безопасным". С постановкой задач у зарубежных фортеров как раз серьезные проблемы. Они просто идут по накатанной, потому что, как говорится, "посмотреть правде в глаза" сейчас там для основных игроков очень неудобно. |
Автор: | Victor__v [ Ср май 09, 2018 13:20 ] |
Заголовок сообщения: | Re: Как сделать форт-систему без ошибок? |
Вот скажу честно. Свой форт проектировал. Однако предусмотрел далеко не всё. В целом, форт получился как и задумывалось. Но, скажем так, некоторые механизмы были без чёткой проработки. К примеру расширяемость слов TO и FROM изначально не ставилась. Но, блин, понадобилась. Ибо я немного задолбался приводить лок. переменные по фичам к СПФ-скому варианту (нужно для портирования). А тут TO в СПФ пере- (или до?) -определяется, что некрасиво. Спасибо Олегу за тривиальную идею расширения. А вот компиляция параметрических слов, сначала была затычкой. Потом стала некрасивостью - был введён служебный флаг, по которому "родные" параметрические слова разбираются. Но это всё равно баласт! И единственный способ исправить эту некрасивость это использовать другую - использовать в ЦК ссылки вперёд. Хм, Как-то черезчур предметно и немного не по теме Короче, проектировал,проектировал да не выпроектировал Далеко до Теслы запускать произвольную форт-систему в голове и её мысленно отлаживать и проектировать одновременно. А у бумаги с ручкой, видимо, слишком низкая разрядность для человеческого ума. |
Автор: | Victor__v [ Ср май 09, 2018 13:27 ] |
Заголовок сообщения: | Re: Как сделать форт-систему без ошибок? |
_KROL писал(а): Это современная проблема Форта, только выраженная конкретнее. Это проблема проектирования. Так может приключиться во многих динамических системах. Мешанина решений помогает только вначале, а потом эти решения надо как-то приводить к единому знаменателю. И вполне возможно, что проще создать систему с нуля. Так сказать, новый виток эволюции. Лишь бы ветвь не была тупиковой. |
Автор: | Hishnik [ Ср май 09, 2018 16:28 ] |
Заголовок сообщения: | Re: Как сделать форт-систему без ошибок? |
Victor__v писал(а): И вполне возможно, что проще создать систему с нуля. Это как правило. Существует иллюзия, что вокруг полно профессиональных решений, в которых нужно просто разобраться. А на деле легко может оказаться, что их авторы банально выбросили сырую поделку в мир, в надежде, что придут профессионалы и помогут довести проект до ума. В целом будет меньше проблем, если вести проект последовательно, определив приоритеты. До сих пор помню восторженное письмо от фаната СПФ, который "ускорил чтение файла в 8 (!) раз". И, собственно, что? Я честно пытался объяснить, что мне нужен Форт обязательно с плавающей точкой на сопроцессоре и быстрой графикой. А "стандартность де-факто" и ускорение мелкой утилиты в 8 раз просто не попадает в список приоритетов. Точно так же можно увязнуть в выполнении ненужных (но при этом, возможно, технически сложных) действий, в результате программа окажется запутанной и задерганной, а попытка перехода от "тестирую слово ABCDE, исправил баг и оптимизировал" к "запустил тестовый проект, объединяющий несколько технологий, и убедился, что программировать стало в целом удобнее" будет очень сложной. Оптимизировать код-то можно, а вот написать что-то рабочее получаться не будет. Поэтому надо ставить контрольные точки в виде тестовых программ. Например, построить график, написать тетрис или связаться с внешней платой по виртуальному COM. По удобству/неудобству программирования возникнут и конкретные потребности. |
Автор: | _KROL [ Ср май 09, 2018 18:10 ] |
Заголовок сообщения: | Re: Как сделать форт-систему без ошибок? |
Тогда я попробую опять... Только надо сосредоточится и всё получится =) Код: Определения без точной категории: Хотелки:> Локальные переменные для ввода-вывода > Преобразование данных > Работа с хэндлами (или может это обьеденить с "работой с памятью"?) Низкоуровневые (базовые) определения: > Шитый код (ШК) и управляющие подпрограммы > Связь ШК и нативного кода (НК), если такой имеется > Дополнительные внутренние подпрограммы на НК, если такой имеется > Работа с памятью > Работа со стеком > АЛУ-операции (математические) > Ввод-вывод Высокоуровневые определения: > Окружение (переменные/константы/...) >> Стандартные буфера ввода-вывода >> Временный буфер преобразования данных >> Основные локальные переменные (DP, BASE(если есть), ...) >> Переменные для поддержки словаря >> Переменные для обработки исключений > Ввод-вывод (дополнения) > Метки > Определения структурированного программирования (условия, циклы) > Парсер > Поддержка словарей (как минимум одного) > Поддержка исключений 1. Плюя на любую оптимизацию делю категории слов на части, которые не повторяются (есть только в одной категории) 2. Очень хочу единый парсер обработки как ввода, так и вывода (не люблю я < # #s >) 3. Хочу два системных буфера: для ввода и для вывода (если надо ещё, можно выделить доп. кусок памяти) Скажите, что тут может быть исходно плохой хотелкой. |
Автор: | _KROL [ Ср май 09, 2018 18:12 ] |
Заголовок сообщения: | Re: Как сделать форт-систему без ошибок? |
P.s. Я не против ваших предложений, только учтите, что я знаю не всё или ничего по некоторым аспектам (например, про CALLBACK). |
Автор: | Hishnik [ Ср май 09, 2018 20:04 ] |
Заголовок сообщения: | Re: Как сделать форт-систему без ошибок? |
_KROL писал(а): Скажите, что тут может быть исходно плохой хотелкой. Это зависит от общих целей. Что вообще нужно от Форта? В зависимости от этого те или иные подходы могут быть и подходящими, и противоречащими. Например, если сразу заявить, что будут по максимуму использоваться высокоуровневые возможности инструментального языка, то вопрос форматирования вывода отпадает - можно просто взять соответствующую функцию для преобразования строки в число. |
Автор: | _KROL [ Ср май 09, 2018 20:28 ] |
Заголовок сообщения: | Re: Как сделать форт-систему без ошибок? |
Нет, довайте по разумному, без каких-то сильных крайностей. Главное получить удобство и логичность, раз не бывает ничего универсального. Пункт "вывод (дополнительный)" скорее всего я зря добавил, т.к. потом решил, что это будет частью парсера. P.s. Вот и я жду общих целей от вас. Что я в основном хочу, я уже высказался. Потом сравним и откинем лишнее, если надо будет. |
Автор: | Victor__v [ Ср май 09, 2018 20:53 ] |
Заголовок сообщения: | Re: Как сделать форт-систему без ошибок? |
_KROL писал(а): Нет, довайте по разумному, без каких-то сильных крайностей. Главное получить удобство и логичность, раз не бывает ничего универсального. Пункт "вывод (дополнительный)" скорее всего я зря добавил, т.к. потом решил, что это будет частью парсера. P.s. Вот и я жду общих целей от вас. Что я в основном хочу, я уже высказался. Потом сравним и откинем лишнее, если надо будет. Тут ещё от цели зависит. Вот простой вопрос: зачем лично тебе нужна форт-система? Исходя из ответа составляется проект. И он уже детально или не очень обмозговывается. Я сейчас не работаю программистом. Моя задача написать такой форт, который может быть расширен до любой задачи в случае необходимости. Так сказать, форт на чёрный день Отсюда и мои требования: инлайн слов возможность без проблем подключить что-угодно ... Можно сказать, что со своей задачей неплохо справился. Единственное, ранее озвученная некрасивость. Не очень хочется, чтобы подхвативший форт-эстафету кричал в пространство "Ну и нахрена ты это вот так сделал? Можно логичней" будучи правым. А мне ещё либы для форта писать (т.е я один из 100 мифических программистов . |
Автор: | _KROL [ Ср май 09, 2018 21:14 ] |
Заголовок сообщения: | Re: Как сделать форт-систему без ошибок? |
Я хочу, чтобы всем было понятно, даже начинающим, а не только избранным, что где и как. |
Автор: | Hishnik [ Ср май 09, 2018 21:53 ] |
Заголовок сообщения: | Re: Как сделать форт-систему без ошибок? |
Каким конкретно образом вот это: Victor__v писал(а): быстрая трансляция (отсюда цепочки поиска (очередное спасибо Олегу) и хеширование). инлайн слов возможность без проблем подключить что-угодно помогает вот этому? Victor__v писал(а): Моя задача написать такой форт, который может быть расширен до любой задачи в случае необходимости. Простой вопрос: сколько по времени идет трансляция 1000 строк на Форте (если сами слова не запускаются, тратя дополнительное время)? Какой выигрыш по времени получается при введении хеширования? Подсказка: существует такой термин "демонстрация возможностей", и он в целом носит негативный характер. Более сложный вытекающий вопрос: чем именно ускорение трансляции помогает? |
Автор: | Victor__v [ Ср май 09, 2018 22:18 ] |
Заголовок сообщения: | Re: Как сделать форт-систему без ошибок? |
Помогает. Я ж не знаю каких размеров исходники у меня будут через год и какие задачи. Факт простой, что компиляция исходников длится меньше секунды. Ну, а если файлов много? И у них сложные взаимоотношения? Я сейчас сильно утрирую, разумеется. Пока компилируется разницу заметишь быстро. Поэтому и ускоряем слегка. К тому же если слово не найдено, то можно достаточно резво перебрать обработчики нераспознанных строк. Цитата: Какой выигрыш по времени получается при введении хеширования? Да ладно. Вот этого точно не ожидал. Что проще и быстрее найти в списке? Число или строку? Что проще 2OVER COMPARE или OVER = ? Конечно, выигрыш будет заметен на большой выборке. Хотя, с компиляцией 2 или 4 либ в основном словаре слов будет под 1000. |
Автор: | _KROL [ Ср май 09, 2018 22:49 ] |
Заголовок сообщения: | Re: Как сделать форт-систему без ошибок? |
Я думаю Hishnik вспоминает некоторого Михаила, и не хочет, чтобы ты повторял его ошибок) |
Страница 1 из 4 | Часовой пояс: UTC + 3 часа [ Летнее время ] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |