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

...
Google Search
Forth-FAQ Spy Grafic

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




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

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

Попробую "потыкаться":)

ХитрыйЛис писал(а):
Вопрос: на какое поле ссылается LAST?

Это из возможностей стандарта 83года? (точно не припомню сейчас)

P.S. Что в дальнейших версиях будет?


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

Зарегистрирован: Пн дек 10, 2012 16:20
Сообщения: 23
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
VoidVolker писал(а):
Цитата:
Слово: VOCAB
Тип: V
Синтаксис: ( -- addr )
Описание: Адрес последнего известного слова.


Код:
LAST @

Просто переменная VOCAB ссылается на исполняемую часть последнего слова.
Мне нужно знать, прежде чем переименую...

Наверное, ты это не увидел:
Цитата:
По ходу, LITERAL работает не так как надо. Приведите пример его использования.


Kopa писал(а):
P.S. Что в дальнейших версиях будет?
Не знаю. Я пытаюсь ужать код везде где можно.
Сейчас решил привести поближе к стандарту. Ну, кроме строк: везде будет только адрес начала и никаких счётчиков.

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


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

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

Код:

: aaa [ 2 3 + ] LITERAL . ;
> aaa 5


По повду LAST наверное зависит от принятой модели реализации. Точно не подскажу.

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

Может имена слов сделать в RADIX-50 кодировке? (должно дать "некоторый" резуьтат)

ХитрыйЛис писал(а):
Сейчас решил привести поближе к стандарту. Ну, кроме строк: везде будет только адрес начала и никаких счётчиков.

Есть стандарт 83г, 94г, и кроме того в проекте 2ххх, а также некоторыми стандартами могут служить OpenBoot и др.
Выбор "базы" не такой однозначный:)

P.S. Можно также посмотреть на реализации Форт систем для контроллеров AVR PIC MSP430 и др.
А слова / и MOD тоже необходимо менять местами! и отчасти можно "опираться" на "распространённые" Форт системы.
Строки со счётчиком быстрее нуль-терминированных строк. Строки, кстати, тоже можно сжимать в RADIX-50


Последний раз редактировалось Kopa Вс дек 16, 2012 03:15, всего редактировалось 1 раз.

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

Зарегистрирован: Пн дек 10, 2012 16:20
Сообщения: 23
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Цитата:
LITERAL
И вправду...
Тут он используется так:
Код:
: aaa LITERAL @ . ;
aaa <выведет адрес исполнения @>


Kopa писал(а):
Может имена слов сделать в RADIX-50 кодировке?
Тогда надо будет немало переделать. Сейчас строки сравниваются напрямую.
Не получится - недостаточно символов.

Kopa писал(а):
Выбор "базы" не такой однозначный:)
В общем, получается что-то между...
Самое главное - убрать совсем непонятные моменты (вроде квадратных скобок).

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


Последний раз редактировалось ХитрыйЛис Вс дек 16, 2012 03:23, всего редактировалось 1 раз.

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

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

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

P.S. в Factor языке квадратные скобки определяют блок исполняемого кода.
В Форте есть ещё и фигурные скобки для обозначения локальных переменных:)

ХитрыйЛис писал(а):
: aaa LITERAL @ . ;
aaa <выведет адрес исполнения @>

Код:
: aaa ['] @ . ;


имена можно помечать остающимся битом/битами что они в RADIX-50 или обычной кодировке, но тут уже не всё так прозрачно.


Последний раз редактировалось Kopa Вс дек 16, 2012 03:43, всего редактировалось 1 раз.

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

Зарегистрирован: Пн дек 10, 2012 16:20
Сообщения: 23
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Если Вики не врёт, то строки на RADIX-50 не осуществить - мало символов.

Kopa писал(а):
Строки со счётчиком быстрее нуль-терминированных строк.
Охотно верю, но не хочется переделывать...
Пусть в "базе" будет указано, что строки как в Си.

Наверное, стоит переименовать WORD, SPLIT, TIBWORD, TIBSPLIT. Но во что?
И заодно: на что похоже SPLIT?

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


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

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

Может рассмотреть приставки/суффиксы символы в слове < > -> и др.

SPLIT нормальное слово но сильно общее:)
Для деления строк /STRNG например

P.S. WORD лучше оставить в его базовом понимании.
P.S. А в реализации не используется байт-код?
+ добавить некоторые удобные общие слова
: BOUNDS ( adr len -- adr_end adr_beg ) OVER + SWAP ; \ удобно для использовать перед циклом DO ... LOOP для формирования граничных значений чётчика цикла.


Последний раз редактировалось Kopa Вс дек 16, 2012 04:12, всего редактировалось 1 раз.

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

Зарегистрирован: Пн дек 10, 2012 16:20
Сообщения: 23
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Kopa писал(а):
Может рассмотреть приставки/суффиксы символы в слове < > -> и др.
Эээ... не понял...

Kopa писал(а):
SPLIT нормальное слово но сильно общее:)
Для деления строк /STRNG например
Хм, /STRING делает немного не то...
Например для комментария:
Код:
: (
29 TIBSPLIT DROP ;
Возвращает из входного буфера строку до символа )
Сам SPLIT аналогичен, но возвращает 2 строки.

Kopa писал(а):
P.S. WORD лучше оставить в его базовом понимании.
Т.е. очередное слово из входного потока?

Kopa писал(а):
P.S. А в реализации не используется байт-код?
Реализации чего?

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


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

Зарегистрирован: Ср май 10, 2006 15:37
Сообщения: 1132
Откуда: Chelyabinsk ( Ural)
Благодарил (а): 0 раз.
Поблагодарили: 9 раз.
ХитрыйЛис писал(а):
Kopa писал(а):
Может рассмотреть приставки/суффиксы символы в слове < > -> и др.
Эээ... не понял...

Например <<TIB

ХитрыйЛис писал(а):
Kopa писал(а):
P.S. WORD лучше оставить в его базовом понимании.
Т.е. очередное слово из входного потока?

Да

ХитрыйЛис писал(а):
Kopa писал(а):
P.S. А в реализации не используется байт-код?
Реализации чего?

Для обозначения базовых примитивов-слов системы одним байтом.
ХитрыйЛис писал(а):
: (
29 TIBSPLIT DROP ;

Почему не
Код:
: (
29 TIBSCAN DROP ;


P.S. Кстати, в nncron нуль-строки обозначены через Z" строка с нулём"


Последний раз редактировалось Kopa Вс дек 16, 2012 04:43, всего редактировалось 1 раз.

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

Зарегистрирован: Пн дек 10, 2012 16:20
Сообщения: 23
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Стандарт 94-го говорит про WORD так: ( char "<chars>ccc<char>" -- c-addr )
(начинаю запутываться, но держусь)

Kopa писал(а):
Для обозначения базовых примитивов-слов системы одним байтом.
Что-то я туплю: слова знакомые, но смысл не доходит :)

Kopa писал(а):
Почему не
Код:
: (
29 TIBSCAN DROP ;
Уже что-то полезное...


Ещё раз про эти четыре слова (в данной реализации):
WORD ( str --> str1, str)
Выделяет из строки первое слово (ограничивает его нулём). str1 указывает сразу после нуля.

SPLIT ( char str --> str1, str)
Выделяет подстроку, ограниченную char. Вместо этого символа вставляется ноль. str1 указывает сразу после нуля.

TIBWORD ( --> str)
Выделяет из входного буфера очередное слово. Положение оставшейся строки сохраняется в переменной TIBPTR

TIBSPLIT ( char --> str)
Выделяет из входного буфера подстроку, ограниченную char. Тоже с сохранением положения.

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


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

Зарегистрирован: Ср май 10, 2006 15:37
Сообщения: 1132
Откуда: Chelyabinsk ( Ural)
Благодарил (а): 0 раз.
Поблагодарили: 9 раз.
ХитрыйЛис писал(а):
Стандарт 94-го говорит про WORD так: ( char "<chars>ccc<char>" -- c-addr )
(начинаю запутываться, но держусь)

char параметр для слова
"<chars>ccc<char>" ccc строка из входного потока с любым начальным количеством char и одним завершающим char
возращает адрес строки со счётчиком.


ХитрыйЛис писал(а):
Kopa писал(а):
Для обозначения базовых примитивов-слов системы одним байтом.
Что-то я туплю: слова знакомые, но смысл не доходит :)

Например:
0 - NOP
1 - DUP
2 - DROP
3 - SWAP
...
255 -
а где размещен код данных процедур указан в таблице адресов на эти низкоуровневые слова

ХитрыйЛис писал(а):
WORD ( str --> str1, str)
Выделяет из строки первое слово (ограничивает его нулём). str1 указывает сразу после нуля.


Если правильно понял, то последовательность действий в стандартном форте выглядит так c учётом
: BOUNDS OVER + SWAP ;
BL WORD COUNT BOUNDS ( -- adr_end adr_begin ) \ но с убиранием ведущих пробелов BL - код пробела (32)

P.S. Тогда может лучше для сохранения функционала авторского-слова WORD переименовать егo например в <WORD> или >WORD<
вариант


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

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

Зарегистрирован: Пн дек 10, 2012 16:20
Сообщения: 23
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Kopa писал(а):
"<chars>ccc<char>"
Это я понял, просто до этого думал, что работает без параметра как TIBWORD

В этой реализации все слова идут связным списком.

Хотя в моей реализации убраны заголовки у пары десятков низкоуровневых функций. Часть из них вызывается как обычные форт-слова, а часть - как ассемблерные подпрограммы (т.е. параметры передаются через регистры и в конце rts, а не nxt)

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


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

Зарегистрирован: Вт мар 20, 2007 23:39
Сообщения: 1261
Благодарил (а): 3 раз.
Поблагодарили: 19 раз.
ХитрыйЛис писал(а):
Просто переменная VOCAB ссылается на исполняемую часть последнего слова.

В СПФ в ласт хранится ссылка на словарную статью.
ХитрыйЛис писал(а):
Самое главное - убрать совсем непонятные моменты (вроде квадратных скобок).

Квадратные скобки как раз отвечают за одну из главных переменных в фоте - режим работы системы. Компиляция или интерпретация.
Вообще, рекомендую заглянуть вот сюда: http://spf.cvs.sourceforge.net/viewvc/spf/src/compiler/ - там много интересного можно найти.
И как я уже говорил, считаю что оптимальным решением будет максимизировать совместимость с СПФ, т.к. есть исходники и большое русскоязычное сообщество.
Kopa писал(а):
P.S. Кстати, в nncron нуль-строки обозначены через Z" строка с нулём"

В спф они подключаются отдельно. Крон же на спф =)

_________________
Cтоимость сопровождения программного обеспечения пропорциональна квадрату творческих способностей программиста.
Роберт Д. Блисc


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

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

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


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

Зарегистрирован: Пн дек 10, 2012 16:20
Сообщения: 23
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
VoidVolker писал(а):
как я уже говорил, считаю что оптимальным решением будет максимизировать совместимость с СПФ, т.к. есть исходники и большое русскоязычное сообщество.
Вот теперь я в этом убедился...
Буду делать по мере своих возможностей: разобраться с исходниками, изучить структуру СПФ и попытаться всё это засунуть в 65EL02...

WingLion писал(а):
LAST ссылается на то же поле в слове, на которое указывает поле связи
Ясно, VOCAB можно смело переименовывать в LAST.

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


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

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


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

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


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

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