Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Чт мар 28, 2024 15:58

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 110 ]  На страницу Пред.  1 ... 4, 5, 6, 7, 8  След.
Автор Сообщение
 Заголовок сообщения: Re: FORTH в игре, или Red Power 2 Control для Minecraft.
СообщениеДобавлено: Вс дек 16, 2012 14:46 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
вообще есть две похожих переменных: LAST и LATEST
LAST - это адрес последнего определенного в текущем (CURRENT) словаре
LATEST - это последнее определенное слово в системе (не зависит от словаря), последнее удобно использовать при реализации DOES>
однако, и то, и другое таки в СПФе

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: FORTH в игре, или Red Power 2 Control для Minecraft.
СообщениеДобавлено: Вс дек 16, 2012 18:42 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
ХитрыйЛис писал(а):
Что-то я туплю: слова знакомые, но смысл не доходит

байт-код - это свернутый шитый код, в котором используются свертки байтовой ширины, а сами свертки определяются таблицей соответствия имен слов и байтов...

_________________
С уважением, WingLion
Forth-CPU . RuF09WE
Мой Форт
Отсутствие бана это не заслуга юзера, а недоработка модератора (с)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: FORTH в игре, или Red Power 2 Control для Minecraft.
СообщениеДобавлено: Вс дек 16, 2012 19:23 
Не в сети
Аватара пользователя

Зарегистрирован: Пн дек 10, 2012 16:20
Сообщения: 23
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
mOleg писал(а):
LAST и LATEST
Тут только 1 словарь и я пока не представляю как несколько словарей взаимодействуют друг с другом...

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

В 65EL02 добавлена инструкция nxt, которая переходит по 2-х байтовой ссылке, находящейся по адресу указанном в специальном регистре (сам этот регистр связан со стеком возвратов).
(получается форт-процессор?)
Я так понимаю, что применение других способов кодирования будет менее эффективным...


И последнее: пожалуй я отложу реализацию СПФ где-нибудь до января: сейчас мне нужно активно сдавать зачёты =)
Всем СПАСИБО за разъяснения.

_________________
Белый и пушистый.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: FORTH в игре, или Red Power 2 Control для Minecraft.
СообщениеДобавлено: Вс дек 16, 2012 19:36 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
ХитрыйЛис писал(а):
В итоге код получается компактным, но таблица должна храниться где-то отдельно и имеет ограничение?

Да, ограничение на таблицу в том, что в ней не больше 256 слов. т.е в такой форт-системе не может быть много слов в ядре.
Обойти это можно, используя на более верхних уровнях обычный шитый код, состоящий из полных ссылок

_________________
С уважением, WingLion
Forth-CPU . RuF09WE
Мой Форт
Отсутствие бана это не заслуга юзера, а недоработка модератора (с)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: FORTH в игре, или Red Power 2 Control для Minecraft.
СообщениеДобавлено: Вс дек 16, 2012 19:42 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
ХитрыйЛис писал(а):
В 65EL02 добавлена инструкция nxt, которая переходит по 2-х байтовой ссылке, находящейся по адресу указанном в специальном регистре (сам этот регистр связан со стеком возвратов).
(получается форт-процессор?)


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

признаком форт-процессора (imho) надо считать наличие команд исполняющих примитивы на стеке.

_________________
С уважением, WingLion
Forth-CPU . RuF09WE
Мой Форт
Отсутствие бана это не заслуга юзера, а недоработка модератора (с)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: FORTH в игре, или Red Power 2 Control для Minecraft.
СообщениеДобавлено: Вс дек 16, 2012 20:04 
Не в сети
Moderator
Moderator

Зарегистрирован: Ср май 10, 2006 15:37
Сообщения: 1132
Откуда: Chelyabinsk ( Ural)
Благодарил (а): 0 раз.
Поблагодарили: 9 раз.
ХитрыйЛис писал(а):
В 65EL02 добавлена инструкция nxt, которая переходит по 2-х байтовой ссылке, находящейся по адресу указанном в специальном регистре (сам этот регистр связан со стеком возвратов).
(получается форт-процессор?)

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

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

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

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

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

P.S. В 65LE02 определены прерывания по аппраратным сигналам линий? (в описании есть команда BRK - это софтовое прерывание?)


Последний раз редактировалось Kopa Вс дек 16, 2012 22:02, всего редактировалось 3 раз(а).

Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: FORTH в игре, или Red Power 2 Control для Minecraft.
СообщениеДобавлено: Вс дек 16, 2012 20:43 
Не в сети
Аватара пользователя

Зарегистрирован: Пн дек 10, 2012 16:20
Сообщения: 23
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Опишу ка я поподробнее этот процессор. 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-е окно является приёмным. Т.е. эту область извне могут поменять любые другие компьютеры.

Есть вопросы?

_________________
Белый и пушистый.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: FORTH в игре, или Red Power 2 Control для Minecraft.
СообщениеДобавлено: Вс дек 16, 2012 21:07 
Не в сети
Moderator
Moderator

Зарегистрирован: Ср май 10, 2006 15:37
Сообщения: 1132
Откуда: Chelyabinsk ( Ural)
Благодарил (а): 0 раз.
Поблагодарили: 9 раз.
ХитрыйЛис писал(а):
Есть вопросы?

Пока не "особо".
Наверное, "интересным" вариантом было бы ввести поддержку Форт архитектуры в другой таблице команд
переключаемой по зарезервированному коду 0хFF (или несколько таблиц, таблицу и "мкрокод" команд можно было загрузить в отведнную область памяти из "биоса" ядра для выполнения)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: FORTH в игре, или Red Power 2 Control для Minecraft.
СообщениеДобавлено: Вс дек 16, 2012 21:35 
Не в сети
Аватара пользователя

Зарегистрирован: Пн дек 10, 2012 16:20
Сообщения: 23
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Для настроек есть ещё место в MMU (через него настраиваются адреса).
Биоса как такового нет. Вместо него только 2 уровня загрузки:
1) при нажатии на кнопку start с передней панели в начало памяти скидываются ID дисковода и терминала, а также по адресу 0х400 записывается загрузчик и передаётся ему управление.
2) Загрузчик читает ID дисковода, подключается к нему и копирует содержимое дискеты в оперативную память начиная с адреса 0х500. Затем передаёт туда управление.


Вообще, реализация "железа" зависит не от меня.
Я с Элораам не общаюсь. (Сейчас она отлавливает баги в других частях мода. Делает классные вещи, то с людьми мало общается. Можно сказать, "молчаливый гений". Буквально.)
Джаву я не изучал и залезть в файлы мода не могу.

_________________
Белый и пушистый.


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


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

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

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

ЗЫ. Как по мне этот механизм все еще до конца не раскрыт и ждет своего развития. И в первую очередь в сторону визуализации содержимого.


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: FORTH в игре, или Red Power 2 Control для Minecraft.
СообщениеДобавлено: Вс дек 16, 2012 22:42 
Не в сети
Moderator
Moderator

Зарегистрирован: Ср май 10, 2006 15:37
Сообщения: 1132
Откуда: Chelyabinsk ( Ural)
Благодарил (а): 0 раз.
Поблагодарили: 9 раз.
ArtemKAD писал(а):
В последнем стандарте механизм таков:
2) Контекст поиска - по сути специализированный стек в котором перечислены те словари в которых производится поиск слова. В этот стек может быть добавлен словарь(собственно слово с именем словаря именно это и делает), убран, продублирован (ALSO ONLY)....
.

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

P.S. Примерно так:) Что такое словарь статья mOleg на местном форуме. (раздел статей)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: FORTH в игре, или Red Power 2 Control для Minecraft.
СообщениеДобавлено: Вс дек 16, 2012 23:48 
Не в сети
Аватара пользователя

Зарегистрирован: Пн дек 10, 2012 16:20
Сообщения: 23
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Не думаю, что понадобится реализовывать несколько словарей. Большинство "задач" сводится к управлению сигналами (в пределе можно подключить 255 декодеров, но все они 16-разрядные).

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

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

_________________
Белый и пушистый.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: FORTH в игре, или Red Power 2 Control для Minecraft.
СообщениеДобавлено: Пн дек 17, 2012 00:18 
Не в сети
Moderator
Moderator

Зарегистрирован: Ср май 10, 2006 15:37
Сообщения: 1132
Откуда: Chelyabinsk ( Ural)
Благодарил (а): 0 раз.
Поблагодарили: 9 раз.
ХитрыйЛис писал(а):
Не думаю, что понадобится реализовывать несколько словарей. Большинство "задач" сводится к управлению сигналами (в пределе можно подключить 255 декодеров, но все они 16-разрядные).

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

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

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

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

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

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

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

P.S. Форт можно расширить и применить к "любой" существующей технологии:)


Последний раз редактировалось Kopa Пн дек 17, 2012 00:25, всего редактировалось 1 раз.

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

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

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

Т.е. создаешь словарь GAME туда кидаешь то, что нужно в игре, а потом оставляешь только его командами ONLY GAME .


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: FORTH в игре, или Red Power 2 Control для Minecraft.
СообщениеДобавлено: Пн дек 17, 2012 00:35 
Не в сети
Аватара пользователя

Зарегистрирован: Пн дек 10, 2012 16:20
Сообщения: 23
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Ребята (на основе их системы я делал свою версию) сделали проще - просто убрали заголовки у служебных слов. Это даёт 2 плюса - невозможность использовать их в диалоговом режиме и экономит память.

_________________
Белый и пушистый.


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

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


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

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


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

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