Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Сб окт 20, 2018 16:41

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 98 ]  На страницу Пред.  1, 2, 3, 4, 5, 6, 7  След.
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: Пн фев 02, 2009 06:41 
Не в сети
Administrator
Administrator
Аватара пользователя

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


Значит, записываем EXIT в список обязательных команд, с тем условием, что A>R EXIT равносильно JMP-у на адрес который по первой команде в стек возвратов попадает.
RET - резервируемая мнемоника - возврат из подпрограммы, вызванной через CALL. A совпадает оно с EXIT или не очень - не важно.
ok?


mOleg писал(а):
Цитата:
Цитата:
: tt AR> @ ; - должно выдавать значение, лежащее в коде за скомпилированным в коде tt.

В шитом коде.

в любом виде ШК.


Условие больше похоже на условие для определяющего слова : , чем для AR>
Но, думаю, можно согласиться.

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пн фев 02, 2009 20:08 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 4954
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 18 раз.
Поблагодарили: 56 раз.
WingLion писал(а):
Значит, записываем EXIT в список обязательных команд, с тем условием, что A>R EXIT равносильно JMP-у на адрес который по первой команде в стек возвратов попадает.

согласен.

WingLion писал(а):
RET - резервируемая мнемоника - возврат из подпрограммы, вызванной через CALL. A совпадает оно с EXIT или не очень - не важно.
ok?

формально RET = AR> EXIT так?
не уверен я насчет RET, потому что тогда надо вспоминать NEXT, NEST и прочие варианты из различных типов ШК.
RET актуален только для нативных систем, и "железных" реализаций ФВМ.
Может достаточно зафиксировать EXIT, а RET упомянуть как AR> EXIT ? на необязательном наборе низкоуровневых слов?

WingLion писал(а):
mOleg писал(а):
Цитата:Цитата:: tt AR> @ ; - должно выдавать значение, лежащее в коде за скомпилированным в коде tt.
В шитом коде.
в любом виде ШК.
Условие больше похоже на условие для определяющего слова : , чем для AR>
Но, думаю, можно согласиться.

тут я просто показал пример, так как в линейном участке кода такое не получится (нуже CALL)

Что насчет структуры документа? (кстати)

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пн фев 02, 2009 22:00 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
mOleg писал(а):
формально RET = AR> EXIT так?


Нет. оно совсем не эквивалентно. Скорее AR> RET = EXIT. (EXIT - выход в более высокоуровневое слово)

И, на счет NEXT. NEXT - это в моем понимании RET-CALL - одна команда, которая делает возврат и тут же вызов подпрограммы по адресу, взятому из PC, т.е. по поведению: NEXT = AR> DUP @ SWAP 1+ A>R A>R EXIT и вот его-то имеет смысл вписать в обязательную систему команд процессора.

И команда CALL addr автоматом превращается в вызов адресного интерпретатора, если вызываемые программы заканчиваются NEXT-ами, a не RET-ами. a RET превращается в CODE.

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пн фев 02, 2009 22:08 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 4954
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 18 раз.
Поблагодарили: 56 раз.
WingLion писал(а):
mOleg писал(а):формально RET = AR> EXIT так?
Нет. оно совсем не эквивалентно. Скорее AR> RET = EXIT. (EXIT - выход в более высокоуровневое слово)

да, действительно, это я проглючил.
RET = AR> JUMP ( jump, которого у нас нет)

WingLion писал(а):
И, на счет NEXT. NEXT - это в моем понимании RET-CALL - одна команда, которая делает возврат и тут же вызов подпрограммы по адресу, взятому из PC, т.е. по поведению: NEXT = AR> DUP @ SWAP 1+ A>R A>R EXIT и вот его-то имеет смысл вписать в обязательную систему команд процессора.

уф.
вообще NEXTа как бы нет в "железной" ВМ, потому что нету и "низкоуровневого кода", как вида. Ведь по сути NEXT просто передает управление следующей команде.

WingLion писал(а):
И команда CALL addr автоматом превращается в вызов адресного интерпретатора, если вызываемые программы заканчиваются NEXT-ами, a не RET-ами. a RET превращается в CODE.

да

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пн фев 02, 2009 22:31 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
mOleg писал(а):
да, действительно, это я проглючил.
RET = AR> JUMP ( jump, которого у нас нет)


JUMP все-таки подразумевает непосредственный адрес, а JMP по адресу из стека данных - это EXECUTE скорее.
Хотя, EXECUTE - это должен быть скорее CALL по адресу из стека данных.

mOleg писал(а):
уф.
вообще NEXTа как бы нет в "железной" ВМ, потому что нету и "низкоуровневого кода", как вида. Ведь по сути NEXT просто передает управление следующей команде.


Нет, если мы совершенно забудем о шитом коде. Если же не забывать, то железно реализованный NEXT даст выигрыш на каждом слове. т.е. по всей форт-системе, состоящей из слов, состоящих из слов...

A по сему, у меня такое предложение:
RET закрепить за обычным возвратом из подпрограммы (вызываемой по CALL);
EXIT = АR> RET
EXECUTE вызов подпрограммы по адресу, взятому из стека данных.
NEXT передача управления следующему слову, адрес которого AR> @, т.е. по сути это стандартный фортовый NEXT.

в обязательный набор включаются RET, или EXIT, или оба сразу.

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пн фев 02, 2009 22:50 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 4954
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 18 раз.
Поблагодарили: 56 раз.
WingLion писал(а):
mOleg писал(а):да, действительно, это я проглючил.
RET = AR> JUMP ( jump, которого у нас нет)
JUMP все-таки подразумевает непосредственный адрес, а JMP по адресу из стека данных - это EXECUTE скорее.
Хотя, EXECUTE - это должен быть скорее CALL по адресу из стека данных.

да, поэтому я и не поставил EXECUTE .

WingLion писал(а):
mOleg писал(а):уф.
вообще NEXTа как бы нет в "железной" ВМ, потому что нету и "низкоуровневого кода", как вида. Ведь по сути NEXT просто передает управление следующей команде.
Нет, если мы совершенно забудем о шитом коде. Если же не забывать, то железно реализованный NEXT даст выигрыш на каждом слове. т.е. по всей форт-системе, состоящей из слов, состоящих из слов...

в том-то и дело, что о различных видах ШК забывать не хочется, как минимум должны быть учтеных косвенный и прямой ШК
Но вот NEXT как таковой, должен брать литеральное значение из кода, находящегося на вышестоящем уровне, и передавать управление на этот адрес, так? то есть : NEXT AR> A@ A>R ; ( A>R EXIT = JMP )

WingLion писал(а):
A по сему, у меня такое предложение:
RET закрепить за обычным возвратом из подпрограммы (вызываемой по CALL);

ок, так как бы привычнее, хотя тогда с типами ШК мы пролетаем.

WingLion писал(а):
EXIT = АR> RET

неа, не катит. ты привел скорее код, который компилирует слово CREATE
EXIT = RET все-таки это одно и то же: RTOS > IP выталкивание адреса из стека возвратов в указатель интерпретации

WingLion писал(а):
NEXT передача управления следующему слову, адрес которого AR> @, т.е. по сути это стандартный фортовый NEXT.

угу, только не нужен он, мне кажется, так как через AR> @ и реализуется

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пн фев 02, 2009 23:02 
Не в сети
Administrator
Administrator
Аватара пользователя

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


Я вот, думаю, что если мы делам форт-процессор, то расчитывать его на всю широту возможных ШК как-то и незачем.
Можно, конечно, но оно только усложнит железо.
И поэтому, я рассчитываю на самый простой ШК, а для более сложного можно сделать более другой процессор, поддерживающий тот ШК, который хочется.

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пн фев 02, 2009 23:07 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 4954
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 18 раз.
Поблагодарили: 56 раз.
WingLion писал(а):
Я вот, думаю, что если мы делам форт-процессор, то расчитывать его на всю широту возможных ШК как-то и незачем.
Можно, конечно, но оно только усложнит железо.
И поэтому, я рассчитываю на самый простой ШК, а для более сложного можно сделать более другой процессор, поддерживающий тот ШК, который хочется.

а если мы делаем стандарт, то забывать ни о чем нельзя, даже о ТТС и байткоде не стоит забывать.
;))

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пн фев 02, 2009 23:15 
Не в сети
Administrator
Administrator
Аватара пользователя

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

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пн фев 02, 2009 23:18 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 6417
Благодарил (а): 14 раз.
Поблагодарили: 101 раз.
Помнить сколько заблагорассудится о чем угодно, но таки делать что-то работающее. А если что мешает - так и носорог плохо видит, но при его весе это уже не его проблемы.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пн фев 02, 2009 23:19 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 4954
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 18 раз.
Поблагодарили: 56 раз.
WingLion писал(а):
Тогда, какие будут предложения?

а неизменные предложения. В первый уровень ФВМ включать только необходимые вещи (без которых действительно нельзя обойтись)
без NEXT можно обойтись, а без EXIT нельзя
RET - это все-таки EXIT, поэтому оставить EXIT

я так думаю

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пн фев 02, 2009 23:31 
Не в сети
Administrator
Administrator
Аватара пользователя

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


?BRANCH
LIT
CALL
RET

DUP
DROP
SWAP
OVER

AND
OR
XOR
ADD
2/

@ = FETCH
! = STORE

AR>
A>R


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


Последний раз редактировалось WingLion Пн фев 02, 2009 23:40, всего редактировалось 2 раз(а).

Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пн фев 02, 2009 23:36 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 4954
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 18 раз.
Поблагодарили: 56 раз.
я за, кто еще?

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пн фев 02, 2009 23:41 
Не в сети
Administrator
Administrator
Аватара пользователя

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

Цитата:
Следущие мнемоники зарезервированы и при реализации должны соответствовать описанию:

>R
R>
NOP
SUB
MUL

INC
DEC
NEG

EXIT
EXECUTE
NEXT


чтобы не мешался

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пн фев 02, 2009 23:43 
Не в сети
Administrator
Administrator
Аватара пользователя

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


Сейчас прямую голосовалку организую.

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


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

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


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

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


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

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