Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Пн июл 23, 2018 04:17

...
Google Search
Forth-FAQ Spy Grafic

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




Ответить
Имя пользователя:
Заголовок:
Текст сообщения:
Введите текст вашего сообщения. Длина сообщения в символах не более: 60000

Размер шрифта:
Цвет шрифта
Настройки:
BBCode ВКЛЮЧЕН
[img] ВЫКЛЮЧЕН
[flash] ВЫКЛЮЧЕН
[url] ВКЛЮЧЕН
Смайлики ВЫКЛЮЧЕНЫ
Отключить в этом сообщении BBCode
Не преобразовывать адреса URL в ссылки
Вопрос
Теперь гостю придется вводить здесь пароль. Не от своей учетной записи, а ПАРОЛЬ ДЛЯ ГОСТЯ, получить который можно после регистрации на форуме через ЛС.:
Этот вопрос предназначен для выявления и предотвращения автоматических регистраций.
   

Обзор темы - FORTH в игре, или Red Power 2 Control для Minecraft.
Автор Сообщение
  Заголовок сообщения:  Re: FORTH в игре, или Red Power 2 Control для Minecraft.  Ответить с цитатой
Чем заменить Red Power 2? (компьютеров RP2 в игре так и не решён)
Но д[т]ело Форт живо :)
Форт репозитарий данного автора

P.S. Исходный топик обсуждения RP2 на minecrafting.ru
И создатель мода RP2 Eloraam похоже пишет свою игру с воксельной графикой.
Сообщение Добавлено: Пн фев 22, 2016 20:50
  Заголовок сообщения:  Re: FORTH в игре, или Red Power 2 Control для Minecraft.  Ответить с цитатой
А такое забавное видео уже было по RP2?
Изучаем Форт. Посмотрим как работать с фортом в моде red power 2..

P.S. Визуальнинько и позитивнинько :)
Сообщение Добавлено: Пт сен 18, 2015 21:01
  Заголовок сообщения:  Re: FORTH в игре, или Red Power 2 Control для Minecraft.  Ответить с цитатой
С экзаменами разобрался, можно продолжить с Фортом...

В своей версии вернул совместимость с MineOS со странными названиями слов >.< :^)
Для англоязычной аудитории опубликовал тут.
Если заметите ошибки или неточности перевода, то напишите. Просто мне проще понимать английский чем писать на нём...

И такой вопрос: как часто вы используете арифметику с числами двойной длины?

Дело вот в чём: в самой игре эти числа толком ненужны, но из-за последнего обновления они могут пригодиться (хотя и будут использоваться редко).
1) Сортрон - сортировщик предметов, управляемый компьютером.
Предметы он различает по хеш-суммам названий (насколько я понял). Это как раз те самые 32-бита...
2) 32-битный таймер.
На вики о нём написано следующее:
Цитата:
Real-time clock
Every 65EL02 CPU is equipped with a free-running 32-bit timer. This timer starts at zero when the CPU block is placed into the world and thereafter increments by one every tick (1/20 of a second), no matter what the computer is doing (actively running code, waiting for an interrupt, or even halted), providing a rollover period of almost seven real-world years. The timer never resets, even if the computer’s reset button is pushed, though presumably after its almost-seven-year period has passed it will roll over from 0xFFFFFFFF to zero. Executing the MMU #0x87 instruction reads the current value of the timer, storing the upper 16 bits into the D register and the lower 16 bits into the A register. As of this writing it is not known whether the timer continues to increment when the computer is in an unloaded world chunk.
Сообщение Добавлено: Ср янв 30, 2013 10:14
  Заголовок сообщения:  Re: FORTH в игре, или Red Power 2 Control для Minecraft.  Ответить с цитатой
ХитрыйЛис писал(а):
Ребята (на основе их системы я делал свою версию) сделали проще - просто убрали заголовки у служебных слов. Это даёт 2 плюса - невозможность использовать их в диалоговом режиме и экономит память.

Как вариант... Было подобное кажется в gp-forth когда можно было при окончательной компиляции убирать лишнее в т.ч. имена. Но вообще-то такое прокатывает только при целевой компиляции - когда forth-систему рассматривать как законченный конечный продукт а-ля недоделанного Байсик-интерпритатора с дурацким синтаксисом и правилами. Стандартный Си-подход - написать всю программу, откомпилировать, запустить результат. Если что не так - запустить отладку на эмуляторе, подправить исходник, откомпилировать заново.
Недостаток подхода с убиванием служебных слов в том, что этих слов изначально в Форт-системе нет и использовать их в ней уже нельзя (хотя этот код и работает как составная часть). Они есть на этапе компиляции Форт-системы до ее запуска.
Сообщение Добавлено: Пн дек 17, 2012 03:10
  Заголовок сообщения:  Re: FORTH в игре, или Red Power 2 Control для Minecraft.  Ответить с цитатой
Ребята (на основе их системы я делал свою версию) сделали проще - просто убрали заголовки у служебных слов. Это даёт 2 плюса - невозможность использовать их в диалоговом режиме и экономит память.
Сообщение Добавлено: Пн дек 17, 2012 00:35
  Заголовок сообщения:  Re: FORTH в игре, или Red Power 2 Control для Minecraft.  Ответить с цитатой
ХитрыйЛис писал(а):
Не думаю, что понадобится реализовывать несколько словарей. Большинство "задач" сводится к управлению сигналами (в пределе можно подключить 255 декодеров, но все они 16-разрядные).

Вам не кажется странным наличие ассемблера (!) в игре (!!)?

Не обязательно речь о АСМ-е. У тебя может быть множество слов которые нужны были при реализации конечного вида этой игры и которые в ее окончательном варианте не должны быть доступны (служебные они). Механизм словарей позволяет оставить в конечном итоге ограниченный набор слов которые будут доступны в юзерском интерфейсе закрыв возможность случайного использования служебного просто не добавляя в конечный контекст средств доступа к словарям с ненужной юзерам информацией.

Т.е. создаешь словарь GAME туда кидаешь то, что нужно в игре, а потом оставляешь только его командами ONLY GAME .
Сообщение Добавлено: Пн дек 17, 2012 00:23
  Заголовок сообщения:  Re: FORTH в игре, или Red Power 2 Control для Minecraft.  Ответить с цитатой
ХитрыйЛис писал(а):
Не думаю, что понадобится реализовывать несколько словарей. Большинство "задач" сводится к управлению сигналами (в пределе можно подключить 255 декодеров, но все они 16-разрядные).

Игра, с прагматичной точки зрения, всё же эта "некоторая" площадка для приобретения каких то практических или нет знаний/навыков,
а сама игровая модель этому способствует или нет.

ХитрыйЛис писал(а):
Вам не кажется странным наличие ассемблера (!) в игре (!!)?

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

ХитрыйЛис писал(а):
Но компьютер в игре, да ещё и на низком уровне?!

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

ХитрыйЛис писал(а):
С другой стороны - это интересный способ изучить ассемблер, форт, да и вообще программирование в целом :lol:

Знакомство и использование изначально "осязаемых" и не переусложнённых моделей нормально, но возможность понять
и существующие парадигмы с использованием данного инструментария должна присутствовать.

P.S. Форт можно расширить и применить к "любой" существующей технологии:)
Сообщение Добавлено: Пн дек 17, 2012 00:18
  Заголовок сообщения:  Re: FORTH в игре, или Red Power 2 Control для Minecraft.  Ответить с цитатой
Не думаю, что понадобится реализовывать несколько словарей. Большинство "задач" сводится к управлению сигналами (в пределе можно подключить 255 декодеров, но все они 16-разрядные).

Вам не кажется странным наличие ассемблера (!) в игре (!!)?
Компьютер в компьютере это нормально и называется эмулятор. Игра в игре тоже привычно, хотя и редко.
Но компьютер в игре, да ещё и на низком уровне?!

С другой стороны - это интересный способ изучить ассемблер, форт, да и вообще программирование в целом :lol:
Сообщение Добавлено: Вс дек 16, 2012 23:48
  Заголовок сообщения:  Re: FORTH в игре, или Red Power 2 Control для Minecraft.  Ответить с цитатой
ArtemKAD писал(а):
В последнем стандарте механизм таков:
2) Контекст поиска - по сути специализированный стек в котором перечислены те словари в которых производится поиск слова. В этот стек может быть добавлен словарь(собственно слово с именем словаря именно это и делает), убран, продублирован (ALSO ONLY)....
.

- Исполнение имени слова словаря заменяет верхний элемент СONTEXT стека.
- ALSO дублирует элемент CONTEXT стека
- PREVIOUS убирает верхний элемент CONTEXT стека
- ONLY приводит CONTEXT стека к "какому-то" ?известному состоянию.
- DEFINITIONS изменяет CURRENT словарь для добавления в соответствии с верхним элементом CONTEXT стека-словаря
- ORDER показывает текущий порядок словарей
- VOCS показывает присутствующие (?видимые) словари в системе
- GET-ORDER копирует текущий порядок словарей на стек данных
- SET-ORDER восстанавливает запомненный порядок словарей со стека данных
- есть ещё слова по созданию неименнованного словаря

P.S. Примерно так:) Что такое словарь статья mOleg на местном форуме. (раздел статей)
Сообщение Добавлено: Вс дек 16, 2012 22:42
  Заголовок сообщения:  Re: FORTH в игре, или Red Power 2 Control для Minecraft.  Ответить с цитатой
ХитрыйЛис писал(а):
mOleg писал(а):
LAST и LATEST
Тут только 1 словарь и я пока не представляю как несколько словарей взаимодействуют друг с другом...


А тут и представлять не много. Механизм простой и в то-же время очень мощный. По своей сути словарь = связанный список слов по которому Форт-система может провести поиск искомого слова или в который она может добавить новое слово. Т.е. это имя, поле связи на следующее имя и поле которое определяет суть слова. Чаще всего в коде все это идет в перемешку, но можно их (имя и суть) и разделить.

В последнем стандарте механизм таков:
1) Один словарь куда будет добавляться новое слово (он никак не связан с поиском т.е. туда добавляют, но не обязательно там ищат уже существующие слова) - тут вроде как вариантов не много.
2) Контекст поиска - по сути специализированный стек в котором перечислены те словари в которых производится поиск слова. В этот стек может быть добавлен словарь(собственно слово с именем словаря именно это и делает), убран, продублирован (ALSO ONLY)....

Добавить к этому можно разве что мелкую подробность - естественно менять контекст поиска может традиционно любое слово. К примеру слово CODE может добавлять в контекст АСМ-словарь и после него становятся доступны АСМ-слова, а слово END-CODE восстанавливае контекст убирая из него этот самый АСМ что-бы он "не путался под ногами". Механизм позволяет иметь в каждом словаре именно те слова и с тем смыслом который в нем нужен (к примеру + для словарей FORTH, ASM и FLOAT это должны быть разные слова) и является основой многих реализаций Форт-ООП библиотек и целевых компиляторов.

ЗЫ. Как по мне этот механизм все еще до конца не раскрыт и ждет своего развития. И в первую очередь в сторону визуализации содержимого.
Сообщение Добавлено: Вс дек 16, 2012 22:07
  Заголовок сообщения:  Re: FORTH в игре, или Red Power 2 Control для Minecraft.  Ответить с цитатой
Для настроек есть ещё место в MMU (через него настраиваются адреса).
Биоса как такового нет. Вместо него только 2 уровня загрузки:
1) при нажатии на кнопку start с передней панели в начало памяти скидываются ID дисковода и терминала, а также по адресу 0х400 записывается загрузчик и передаётся ему управление.
2) Загрузчик читает ID дисковода, подключается к нему и копирует содержимое дискеты в оперативную память начиная с адреса 0х500. Затем передаёт туда управление.


Вообще, реализация "железа" зависит не от меня.
Я с Элораам не общаюсь. (Сейчас она отлавливает баги в других частях мода. Делает классные вещи, то с людьми мало общается. Можно сказать, "молчаливый гений". Буквально.)
Джаву я не изучал и залезть в файлы мода не могу.
Сообщение Добавлено: Вс дек 16, 2012 21:35
  Заголовок сообщения:  Re: FORTH в игре, или Red Power 2 Control для Minecraft.  Ответить с цитатой
ХитрыйЛис писал(а):
Есть вопросы?

Пока не "особо".
Наверное, "интересным" вариантом было бы ввести поддержку Форт архитектуры в другой таблице команд
переключаемой по зарезервированному коду 0хFF (или несколько таблиц, таблицу и "мкрокод" команд можно было загрузить в отведнную область памяти из "биоса" ядра для выполнения)
Сообщение Добавлено: Вс дек 16, 2012 21:07
  Заголовок сообщения:  Re: FORTH в игре, или Red Power 2 Control для Minecraft.  Ответить с цитатой
Опишу ка я поподробнее этот процессор. 65EL02
Он полностью поддерживает инструкции 6502, 65С02 и около половины инструкций и способов адресации 65C816.
А также добавлено ещё несколько инструкций и пару способов адресации. (which I've labelled the 65EL02, because I like the pun)

Стандартные регистры 6502: A X Y IP SP и регистр флагов.
Дополнительные регистры:
SR - стек возвратов (соответственно добавлены инструкции для него)
I - индексный регистр. (для адресного интерпретатора)
D - дополнительный регистр для математических операций (используется только для хранения старшей части числа при делении чисел 32-бит на 16-бит)

Начало шитого кода определяется инструкцией ent. (Enter word)
Конец слова - инструкцией nxt. (NExT word)
Есть ещё nxa (NeXt byte/word to Accumlator)
Т.е. забирает из памяти 1 или 2 байта с увеличением регистра I на 1 или 2 соответственно.

Аппаратных прерываний нет. BRK - программное и его можно назначить на любой адрес.
Инструкция WAI по идее должна ждать прерывание, но реально она ждёт очередного тика от оболочки (эмулятора или мирового тика карты minecraft).

Подобно выставлению адреса прерывания можно выставить любой адрес для портов (называются Redbus window)
1-е служит для манипуляций над любыми внешними устройствами и легко переключается между между разными ID.
При обращении к заданному участку памяти генерируется протокол чтения или записи для Redbus (на 1 или 2 байта).
2-е окно является приёмным. Т.е. эту область извне могут поменять любые другие компьютеры.

Есть вопросы?
Сообщение Добавлено: Вс дек 16, 2012 20:43
  Заголовок сообщения:  Re: FORTH в игре, или Red Power 2 Control для Minecraft.  Ответить с цитатой
ХитрыйЛис писал(а):
В 65EL02 добавлена инструкция nxt, которая переходит по 2-х байтовой ссылке, находящейся по адресу указанном в специальном регистре (сам этот регистр связан со стеком возвратов).
(получается форт-процессор?)

Например, по два (три) регистра процессора желательно "аппаратно" связать со стеками в памяти (данных и возврата) для автоматической записи/чтения операндов на стек/из стека. с поддержкой сдвига регистров в стек при загрузке вершинного A регистра стека (+ желательна возможность использования 0-операндных команд). NXT это команда по поддержке косвенного шитого кода, что тоже неплохо. (некоторые Форт процессоры например microcore имеют её в своём арсенале.)

ХитрыйЛис писал(а):
В итоге код получается компактным, но таблица должна храниться где-то отдельно и имеет ограничение?

Наверное, при желании, можно хранить и в связном списке (но под сомнением эффективность данного решения) а ограничение на количество кодов операций тоже не такое "жёсткое". Например в Форт программном обеспечении ->Сat Canon коипьютере Джефа Раскина использовалась своя "структура" расширения байт-кода команд.

ХитрыйЛис писал(а):
Тут только 1 словарь и я пока не представляю как несколько словарей взаимодействуют друг с другом...

Они управляются кодом. (контекст последовательности просмотра словарей при поиске необходимого слова, и контекст в какой текущий CURRENT словарь
добавлять найденное слово). В 83г и 94г стандартах есть отличия в моделях управления контекстом работы со словарями.
Словари, в части своих свойств представляют некоторый функционал подобный объектной модели и позоляют, например, добавить
фунциональную модель модулей.

P.S. В 65LE02 определены прерывания по аппраратным сигналам линий? (в описании есть команда BRK - это софтовое прерывание?)
Сообщение Добавлено: Вс дек 16, 2012 20:04
  Заголовок сообщения:  Re: FORTH в игре, или Red Power 2 Control для Minecraft.  Ответить с цитатой
ХитрыйЛис писал(а):
В 65EL02 добавлена инструкция nxt, которая переходит по 2-х байтовой ссылке, находящейся по адресу указанном в специальном регистре (сам этот регистр связан со стеком возвратов).
(получается форт-процессор?)


больше смахивает на встроенный в процессор адресный интерпретатор... Особенно, если адрес в "специальном регистре" еще и увеличивается на 2... после использования

признаком форт-процессора (imho) надо считать наличие команд исполняющих примитивы на стеке.
Сообщение Добавлено: Вс дек 16, 2012 19:42

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


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