Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Вт мар 28, 2017 04:35

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ 1 сообщение ] 
Автор Сообщение
 Заголовок сообщения: Очередной долгострой
СообщениеДобавлено: Ср ноя 30, 2016 20:16 
Не в сети
Аватара пользователя

Зарегистрирован: Чт дек 31, 2009 18:36
Сообщения: 1775
Откуда: Питер
Благодарил (а): 13 раз.
Поблагодарили: 29 раз.
Конечно, <...> полработы (а тут - процентов 10) не показывают, но я все пытаюсь продвинуть идею совмещения программирования игры с игрой. (Не пугайтесь размера текста - львиную его долю составляют базы данных и тексты правил).

В процессе рассматриваются следующие вопросы:

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

2. Может ли компьютерная модель настольной игры быть полезна/интересна? Или, по мере совершенствования, модель превратится в полную 3D-копию игры на экране?

3. Насколько FORTH приспособлен для такой игры?

Начну с последнего.

Конечно, в идеале, программист-игрок должен проводить всю партию в пределах одной FORTH сессии. Однако, этому мешают два обстоятельства: а) некоторые вещи делать удобнее другими средствами ОС; б) злоупотребление произвольным доступом к памяти приводит к постоянным обрушениям FORTH-программы.
Решение в виде включения вызова в некую ОС-оболочку помогает, но несколько нарушает классическую лепоту. Например, включение первых версий FOBOS внутрь DOS-скрипта привело к тому, что ассемблерный код FORTH-системы я правил чуть ли не чаще памяти блоков - удобнее было добавить что-то прямо в код, чем мучить стеки.
В Windows стало еще неудобнее. Конечно, я могу собрать вызов всего необходимого в одно окно и, даже, красиво оформить, но переключения между окнами отнимают у меня больше времени, чем выбор нужной операции в DOS-скрипте. Да тут еще Win32Forth то и дело решает мне "помочь", а антивирус, наоборот,- напомнить, что этот самый Win32Forth еще тот вирус. В общем, весь кайф от ненужности компилирования как-то пропадает.

Конечно, даже, если FORTH работает на голом железе, то подобная "игра" все равно потребует разделения кода на уже безопасный (включенный в безусловно запускаемую систему) и отлаживаемый, который дозапускается вручную. Иначе, один раз возникнув, смертельная ошибка не сможет быть исправлена, т.к. каждый перезапуск будет к ней приводить.

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

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

По крайней мере, FORTH-запись этой фигни оказалась вполне удобной. Как программист-игрок, я могу практически одновременно читать правила, писать код, проверять, как он (и правила) работают, и делать заметки. Не пришлось даже переупорядочивать правила, чтобы обеспечить структурность программного кода (за исключением огромного массива таблиц).

_________________
Когда я говорю "понимаю" - это не значит, что я согласен, не значит, что я понимаю и вообще не значит, что я слушаю тебя. /Чарли, "2 1/2 человека"/


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

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


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

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


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

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