Понедельник, 24 июля 2017, 23:42

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
Страница 1 из 11
Форум игроделов » Программирование » Низкоуровневое программирование » FORTH
FORTH
GudleifrДата: Суббота, 24 сентября 2016, 13:02 | Сообщение # 1
почти ветеран
Сейчас нет на сайте
По нелепой ошибке FORTH на Форуме отнесен к скриптовым языкам. Ну, да ладно...
Просто, как хозяин практически единственного русскоязычного FORTH-ресурса - FOBOS, предлагаю здесь задавать FORTH-вопросы, буде таковые возникнут.


Быдлокодеры любят повторять: "логика, убивающая мозг",- когда их пытаются заставить программировать.
TLTДата: Суббота, 24 сентября 2016, 23:08 | Сообщение # 2
Сейчас нет на сайте
Насколько он актуален для игроделов, есть ли примеры использования метода? =)

Дао, выраженное словами, не есть истинное Дао.
GudleifrДата: Суббота, 24 сентября 2016, 23:19 | Сообщение # 3
почти ветеран
Сейчас нет на сайте
Цитата TLT ()
Насколько он актуален для игроделов, есть ли примеры использования метода?
Если воспринимать "в лоб" - т.е. тупо пропихивать через стек все потоки данных, то интерес чисто исторический (в свое время было дофига игровых проектов, особенно на нетривиальном железе). Если же воспринимать как метод решения задач путем создания "проблемно-ориентированных языков", то его актуальность ограничивается только нашей неспособностью оценить все открывающиеся перспективы.


Быдлокодеры любят повторять: "логика, убивающая мозг",- когда их пытаются заставить программировать.
PsychoДата: Воскресенье, 25 сентября 2016, 00:50 | Сообщение # 4
Психоламер
Сейчас нет на сайте
Цитата Gudleifr ()
Если воспринимать "в лоб" - т.е. тупо пропихивать через стек все потоки данных, то интерес чисто исторический (в свое время было дофига игровых проектов, особенно на нетривиальном железе). Если же воспринимать как метод решения задач путем создания "проблемно-ориентированных языков", то его актуальность ограничивается только нашей неспособностью оценить все открывающиеся перспективы.

Если сказать короче и без "воды", то - нет, не актуален. Разве что если хочешь чтобы "тру-олдскульщики" зауважали. Во всех остальных случаях он открывает ровно нулевые перспективы для игростроя, какие бы байки там не ходили про его нераскрытый потенциал.
P.S.: Нужен ли по нему вообще раздел на форуме тоже тот еще вопрос.


Сообщение отредактировал Psycho - Воскресенье, 25 сентября 2016, 00:50
GudleifrДата: Воскресенье, 25 сентября 2016, 00:55 | Сообщение # 5
почти ветеран
Сейчас нет на сайте
Цитата TLT ()
есть ли примеры использования метода?

Их (современных) практически нет.
По следующим причинам:

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

2. "... граничным условием уравнения Совершенства оказалось требование, чтобы чудо не причиняло никому вреда". FORTH представляет сам по себе более интересную игру, чем что-либо написанное под "ключ".

3. Многие пишут на FORTH даже ничего о нем не зная. Решив, что его программа столь сложна, что ей нужен специальный язык, программист, сам того не зная, пишет свой FORTH (правда, обычно не дописывая).

Добавлено (25 сентября 2016, 00:52)
---------------------------------------------
Цитата Psycho ()
Если сказать короче и без "воды", то - нет, не актуален.
"Зелен виноград"...

Добавлено (25 сентября 2016, 00:55)
---------------------------------------------

Цитата Psycho ()
P.S.: Нужен ли по нему вообще раздел на форуме тоже тот еще вопрос
Нет, не нужен. Но, раз я здесь торчу,то попутно могу ответить на вопросы. Не жалко.


Быдлокодеры любят повторять: "логика, убивающая мозг",- когда их пытаются заставить программировать.

Сообщение отредактировал Gudleifr - Воскресенье, 25 сентября 2016, 00:53
PsychoДата: Воскресенье, 25 сентября 2016, 01:15 | Сообщение # 6
Психоламер
Сейчас нет на сайте
Цитата Gudleifr ()
"Зелен виноград"...

Зная Вас, ничего другого услышать и не ожидал =)
Цитата Gudleifr ()
попутно могу ответить на вопросы

Я к тому, что таковых, насколько я знаю, нет.


Сообщение отредактировал Psycho - Воскресенье, 25 сентября 2016, 01:16
GudleifrДата: Среда, 28 сентября 2016, 14:26 | Сообщение # 7
почти ветеран
Сейчас нет на сайте
Цитата Psycho ()
Я к тому, что таковых, насколько я знаю, нет.
Ну, хорошо, немножко пнем.
Все знают старую задачку "Волк, коза, капуста" про перевозку через реку какого-то мудреного зоопарка.
В современном офисном варианте что-то вроде (HELP THE SAIL):

Графикой заморачиваться не будем, она во всех языках (кроме совсем уж BASIC-ов и shell-ов) сводится к вызову какого-то API (DirectX, OpenGL...).
Тупо: левый берег - правый берег. Что-то вроде:

DDMSSP-BCL

Т.е. вся игра сводится к превращению

DDMSSPBCL-

в

-DDMSSPBCL

по замысловатым правилам.

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

Как Вы будете писать подобную программу? Сколько места она займет?
Прикидочно. Я не заставляю Вас писать в реале, если только Вы не утверждаете, что у Вас будет короче и проще, чем на FORTH (т.к. на FORTH она очень простая и короткая - ок.60 строк и еще строк 10-15 на правила).
Конечно, пример надуман и настоящая FORTH-выгода достигается при размере программ в десятки тысяч строк (FORT умеет делать их короче на один-два порядка), но, понятно, примеры подобного размера "ни самому посмотреть, ни кому показать".

Добавлено (28 сентября 2016, 14:26)
---------------------------------------------
Блин, ладно, упрощу. Раз тут нет программистов, выкладываю готовое к кодированию решение:

Согласно книге С.Осуга "Обработка знаний":
1. число состояний конечно, одно из состояний принимается за начальное и одно или несколько состояний (сюда не входит начальное) определяются как искомые (терминальные);
2. заданы правила перехода между группами состояний;
3. для каждого состояния заранее заданы определенные условия допутимости (оценки) состояний.

Для задач, решаемых перебором (по научному - рекурсивным поиском), предназначен стек. Промежуточные состояния накапливаем в стеке - недопустимые удаляем (согласно п.3), небезнадежные - используем для построения новых состояний (согласно п.2). Если не брать расширенные условия подобных задач (наличие острова для пересадки), то для изображения любого состояния достаточно одного числа - битовой шкалы, где 1 в каком-либо разряде будет означать, что соответствующий объект на левом берегу (0 - на правом). Положение лодки тоже, очевидно, надо учитывать. Да, еще хорошо бы сразу отбрасывать ранее рассмотренные состояния (иначе решение зациклится). Получается следующее:

АНАЛИЗ ::= ЕСЛИ ДОПУСТИМО? И ЕСЛИ НОВЫЙ? ТО НОВЫЙ! ЗАМЕНА
РЕШЕНИЕ ::= ЗАДАЧА ДО ПОБЕДА? АНАЛИЗ ПОВТОРЯТЬ

где:

ЗАДАЧА -- инициализация
ДОПУСТИМО? -- отбрасывание негодных состояний
НОВЫЙ? -- рассматривалось ли ранее это состояние?
НОВЫЙ! -- запоминаем состояние как рассмотренное
ЗАМЕНА -- строим состояния, получаемые из текущего
ПОБЕДА? -- подходит ли состояние под условия победы?

Теперь проще?


Быдлокодеры любят повторять: "логика, убивающая мозг",- когда их пытаются заставить программировать.

Сообщение отредактировал Gudleifr - Воскресенье, 25 сентября 2016, 10:29
colencorДата: Среда, 09 ноября 2016, 02:05 | Сообщение # 8
был не раз
Сейчас нет на сайте
Почему на Вашем сайте (раздел "Первоисточники") нет упоминания о "FORTH - A Text and Reference" (Mahlon G. Kelly, Nicholas Spies)
и о его переводе - "РАДИО И СВЯЗЬ" - 1993 г.


litl
GudleifrДата: Четверг, 05 января 2017, 06:09 | Сообщение # 9
почти ветеран
Сейчас нет на сайте
Цитата colencor ()
Почему на Вашем сайте (раздел "Первоисточники") нет упоминания о...
Я выложил только основополагающие вещи. Остальная литература и близко не валяется. Конечно, там встречаются полезные замечания и рецепты (например, в упомянутой Вами книге описан простенький редактор, которым я одно время пользовался). Но для начинающего фортера гораздо важнее научиться делать свои фичи, чем копировать чужие.

P.S. Я тут сейчас пытаюсь в рамках проектика и осмысления метода тупо написать на FORTH модель настольной игры. Фича в чем? Во-первых, все в одном флаконе: и программирование, и правка данных, и документирование. Как в старые добрые времена: включаешь компьютер - попадаешь сразу в BASIC и там крутишься. Во-вторых, не просто запускаешь на исполнение проект, но и можешь вести с программой полноценный диалог, причем, в терминах проекта, а не DEBUG-команд. Конечно, потом, все равно, придется подключать редакторы ресурсов и их оживлялки, да и сами современные FORTH-системы норовят корчить из себя визуальные конструкторы, но пока речь идет о работе с идеями, получается вполне наглядно.


Быдлокодеры любят повторять: "логика, убивающая мозг",- когда их пытаются заставить программировать.
Форум игроделов » Программирование » Низкоуровневое программирование » FORTH
Страница 1 из 11
Поиск:

Все права сохранены. GcUp.ru © 2008-2017 Рейтинг