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

...
Google Search
Forth-FAQ Spy Grafic

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




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

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

Обзор темы - CREATE-WORD
Автор Сообщение
  Заголовок сообщения:  Re: CREATE-WORD  Ответить с цитатой
white_TigR писал(а):
Я в каком то форте видел (CREATE) для такого.

Кстати, это имеет смысл. Если рассматривать CREATE как слово, которое сначала получает строку с именем слова, а потом создает его, то можно написать что-то вроде
Код:
: CREATE PARSE (CREATE) ;

В скобках часто описывают "внутреннюю" реализацию слов управления.
Сообщение Добавлено: Ср окт 26, 2011 16:57
  Заголовок сообщения:  Re: CREATE-WORD  Ответить с цитатой
white_TigR писал(а):
Я в каком то форте видел (CREATE) для такого.

Попытки подобрать подходящее имя слову по большому счету бессмысленны. Всякое такое имя отразит только часть семантики слова. Имена слов в Форте подобны иероглифам, их просто нужно запомнить в связке с семантикой.
Сообщение Добавлено: Ср окт 26, 2011 15:54
  Заголовок сообщения:  Re: CREATE-WORD  Ответить с цитатой
Хищник писал(а):
В качестве эксперимента, а также из-за того, что это удобнее делать в ядре, добавлено слово CREATE-WORD. Это альтернатива CREATE, только имя не выбирается из входного потока, а снимается со стека в виде указателя на ASCIIZ

Я в каком то форте видел (CREATE) для такого.
Сообщение Добавлено: Ср окт 26, 2011 15:21
  Заголовок сообщения:  Re: CREATE-WORD  Ответить с цитатой
Хищник писал(а):
А мне кажется, в таком...

Код:
instance proc_core kf532

50000000 FCORE setparameter
16384 CODEMEMORYSIZE setparameter
1024 DATAMEMORYSIZE setparameter

proc-core signal rx external location L16

// ============ DCM ====================

instance generator dcm_sp6

signal clk_in external location L15

// ============= LEDS =====================

8 bit register leds
leds 1000 baseaddr
leds locations A1 A2 A3 A4 A5 B1 B3 D4


:!: :!: :!: красиво.....
Сообщение Добавлено: Сб окт 22, 2011 15:08
  Заголовок сообщения:  Re: CREATE-WORD  Ответить с цитатой
chess писал(а):
Синтаксис, он, в чем-то таком:

Код:
: sum-hlb ( N -- Nlb+Nhb ) \ сумма номеров старшего и младшего единичных битов ячейки
hb( A=H\A ) lb( A=L\A )
1|[hb]1[lb]+ ;

200000000 sum-hlb . ( 36 )


А мне кажется, в таком...

Код:
instance proc_core kf532

50000000 FCORE setparameter
16384 CODEMEMORYSIZE setparameter
1024 DATAMEMORYSIZE setparameter

proc-core signal rx external location L16

// ============ DCM ====================

instance generator dcm_sp6

signal clk_in external location L15

// ============= LEDS =====================

8 bit register leds
leds 1000 baseaddr
leds locations A1 A2 A3 A4 A5 B1 B3 D4
Сообщение Добавлено: Пт окт 21, 2011 23:48
  Заголовок сообщения:  Re: CREATE-WORD  Ответить с цитатой
Хищник писал(а):
Хороший синтаксис - не такая уж простая проблема.

В классическом форте, кроме как в представлении чисел, как такового синтаксиса-то и нет(пробелы да имена слов).
Имена словам - да, надо подбирать подходящие, но это практически невыполнимая задача, так как эти имена могут иметь широкий(многослойный) смысл. Особо тщательно их надо подбирать для слов ядра.
Синтаксис, он, в чем-то таком:
Код:
: sum-hlb ( N -- Nlb+Nhb ) \ сумма номеров старшего и младшего единичных битов ячейки
hb( A=H\A ) lb( A=L\A )
1|[hb]1[lb]+ ;

200000000 sum-hlb . ( 36 )
Сообщение Добавлено: Пт окт 21, 2011 16:08
  Заголовок сообщения:  Re: CREATE-WORD  Ответить с цитатой
chess писал(а):
По моему на букву D в конце подобных слов навесили намек на то, что эти слова параметризуются данными со стека, а на то, что
появляется несоответствие в действиях слов и их именах, махнули рукой.

Хороший синтаксис - не такая уж простая проблема.
Сообщение Добавлено: Пт окт 21, 2011 14:01
  Заголовок сообщения:  Re: CREATE-WORD  Ответить с цитатой
Хищник писал(а):
Кстати, никогда мне такой синтаксис не нравился. Особенно это проявляется на INCLUDED. То есть я сообщаю, что файл уже загружен???? Вообще-то это команда на загрузку файла.

По моему на букву D в конце подобных слов навесили намек на то, что эти слова параметризуются данными со стека, а на то, что
появляется несоответствие в действиях слов и их именах, махнули рукой.
Сообщение Добавлено: Пт окт 21, 2011 13:32
  Заголовок сообщения:  Re: CREATE-WORD  Ответить с цитатой
chess писал(а):
В spf для этих целей можно использовать слово CREATED ( addr len -- ).

Кстати, никогда мне такой синтаксис не нравился. Особенно это проявляется на INCLUDED. То есть я сообщаю, что файл уже загружен???? Вообще-то это команда на загрузку файла.
Сообщение Добавлено: Пт окт 21, 2011 11:44
  Заголовок сообщения:  Re: CREATE-WORD  Ответить с цитатой
Хищник писал(а):
В качестве эксперимента, а также из-за того, что это удобнее делать в ядре, добавлено слово CREATE-WORD.

В spf для этих целей можно использовать слово CREATED ( addr len -- ).
Сообщение Добавлено: Пт окт 21, 2011 11:13
  Заголовок сообщения:  CREATE-WORD  Ответить с цитатой
В качестве эксперимента, а также из-за того, что это удобнее делать в ядре, добавлено слово CREATE-WORD. Это альтернатива CREATE, только имя не выбирается из входного потока, а снимается со стека в виде указателя на ASCIIZ. Вот фрагментик:

Код:
CREATE WORDBUF 256 ALLOT

: instance
  INSTANCES TO ACTIVE-INSTANCE
  PARSE DUP WORDBUF SMOVE

  \ всякое оформление опущено, чтобы не засорять текст

  WORDBUF CREATE-WORD INSTANCES 1 - , DOES> @ TO ACTIVE-INSTANCE
;



Это библиотека высокоуровневого структурного описания схем. При вводе instance my_module1 словом PARSE съестся my_module1, и попадет в массив с именами модулей (попутно оставшись в массиве WORDBUF). Чуть позже из содержимого WORDBUF будет создано слово, которое при исполнении положит на стек индекс созданного модуля.
Похожего навскидку не нашлось.

P.S. Будет в Quark build 30, который сейчас в состоянии "еще небольшой список доделать".
Сообщение Добавлено: Пт окт 21, 2011 02:27

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


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