Автор |
Сообщение |
|
|
Заголовок сообщения: |
Re: CREATE-WORD |
|
|
white_TigR писал(а): Я в каком то форте видел (CREATE) для такого. Кстати, это имеет смысл. Если рассматривать CREATE как слово, которое сначала получает строку с именем слова, а потом создает его, то можно написать что-то вроде Код: : CREATE PARSE (CREATE) ; В скобках часто описывают "внутреннюю" реализацию слов управления.
[quote="white_TigR"]Я в каком то форте видел (CREATE) для такого.[/quote] Кстати, это имеет смысл. Если рассматривать CREATE как слово, которое сначала получает строку с именем слова, а потом создает его, то можно написать что-то вроде [code]: CREATE PARSE (CREATE) ;[/code] В скобках часто описывают "внутреннюю" реализацию слов управления.
|
|
|
|
Добавлено: Ср окт 26, 2011 16:57 |
|
|
|
|
|
Заголовок сообщения: |
Re: CREATE-WORD |
|
|
white_TigR писал(а): Я в каком то форте видел (CREATE) для такого. Попытки подобрать подходящее имя слову по большому счету бессмысленны. Всякое такое имя отразит только часть семантики слова. Имена слов в Форте подобны иероглифам, их просто нужно запомнить в связке с семантикой.
[quote="white_TigR"]Я в каком то форте видел (CREATE) для такого.[/quote] Попытки подобрать подходящее имя слову по большому счету бессмысленны. Всякое такое имя отразит только часть семантики слова. Имена слов в Форте подобны иероглифам, их просто нужно запомнить в связке с семантикой.
|
|
|
|
Добавлено: Ср окт 26, 2011 15:54 |
|
|
|
|
|
Заголовок сообщения: |
Re: CREATE-WORD |
|
|
Хищник писал(а): В качестве эксперимента, а также из-за того, что это удобнее делать в ядре, добавлено слово CREATE-WORD. Это альтернатива CREATE, только имя не выбирается из входного потока, а снимается со стека в виде указателя на ASCIIZ Я в каком то форте видел (CREATE) для такого.
[quote="Хищник"]В качестве эксперимента, а также из-за того, что это удобнее делать в ядре, добавлено слово CREATE-WORD. Это альтернатива CREATE, только имя не выбирается из входного потока, а снимается со стека в виде указателя на ASCIIZ[/quote] Я в каком то форте видел (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 красиво.....
[quote="Хищник"] А мне кажется, в таком...
[code]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[/code][/quote]
:!: :!: :!: красиво.....
|
|
|
|
Добавлено: Сб окт 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
[quote="chess"]Синтаксис, он, в чем-то таком:
Код: : sum-hlb ( N -- Nlb+Nhb ) \ сумма номеров старшего и младшего единичных битов ячейки hb( A=H\A ) lb( A=L\A ) 1|[hb]1[lb]+ ;
200000000 sum-hlb . ( 36 )[/quote]
А мне кажется, в таком...
[code]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[/code]
|
|
|
|
Добавлено: Пт окт 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 )
[quote="Хищник"]Хороший синтаксис - не такая уж простая проблема.[/quote] В классическом форте, кроме как в представлении чисел, как такового синтаксиса-то и нет(пробелы да имена слов). Имена словам - да, надо подбирать подходящие, но это практически невыполнимая задача, так как эти имена могут иметь широкий(многослойный) смысл. Особо тщательно их надо подбирать для слов ядра. Синтаксис, он, в чем-то таком: [code]: sum-hlb ( N -- Nlb+Nhb ) \ сумма номеров старшего и младшего единичных битов ячейки hb( A=H\A ) lb( A=L\A ) 1|[hb]1[lb]+ ;
200000000 sum-hlb . ( 36 )[/code]
|
|
|
|
Добавлено: Пт окт 21, 2011 16:08 |
|
|
|
|
|
Заголовок сообщения: |
Re: CREATE-WORD |
|
|
chess писал(а): По моему на букву D в конце подобных слов навесили намек на то, что эти слова параметризуются данными со стека, а на то, что появляется несоответствие в действиях слов и их именах, махнули рукой. Хороший синтаксис - не такая уж простая проблема.
[quote="chess"]По моему на букву D в конце подобных слов навесили намек на то, что эти слова параметризуются данными со стека, а на то, что появляется несоответствие в действиях слов и их именах, махнули рукой.[/quote] Хороший синтаксис - не такая уж простая проблема.
|
|
|
|
Добавлено: Пт окт 21, 2011 14:01 |
|
|
|
|
|
Заголовок сообщения: |
Re: CREATE-WORD |
|
|
Хищник писал(а): Кстати, никогда мне такой синтаксис не нравился. Особенно это проявляется на INCLUDED. То есть я сообщаю, что файл уже загружен???? Вообще-то это команда на загрузку файла. По моему на букву D в конце подобных слов навесили намек на то, что эти слова параметризуются данными со стека, а на то, что появляется несоответствие в действиях слов и их именах, махнули рукой.
[quote="Хищник"]Кстати, никогда мне такой синтаксис не нравился. Особенно это проявляется на INCLUDED. То есть я сообщаю, что файл уже загружен???? Вообще-то это команда на загрузку файла.[/quote] По моему на букву D в конце подобных слов навесили намек на то, что эти слова параметризуются данными со стека, а на то, что появляется несоответствие в действиях слов и их именах, махнули рукой.
|
|
|
|
Добавлено: Пт окт 21, 2011 13:32 |
|
|
|
|
|
Заголовок сообщения: |
Re: CREATE-WORD |
|
|
chess писал(а): В spf для этих целей можно использовать слово CREATED ( addr len -- ). Кстати, никогда мне такой синтаксис не нравился. Особенно это проявляется на INCLUDED. То есть я сообщаю, что файл уже загружен???? Вообще-то это команда на загрузку файла.
[quote="chess"]В spf для этих целей можно использовать слово CREATED ( addr len -- ).[/quote] Кстати, никогда мне такой синтаксис не нравился. Особенно это проявляется на INCLUDED. То есть я сообщаю, что файл уже загружен???? Вообще-то это команда на загрузку файла.
|
|
|
|
Добавлено: Пт окт 21, 2011 11:44 |
|
|
|
|
|
Заголовок сообщения: |
Re: CREATE-WORD |
|
|
Хищник писал(а): В качестве эксперимента, а также из-за того, что это удобнее делать в ядре, добавлено слово CREATE-WORD. В spf для этих целей можно использовать слово CREATED ( addr len -- ).
[quote="Хищник"]В качестве эксперимента, а также из-за того, что это удобнее делать в ядре, добавлено слово CREATE-WORD.[/quote] В 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, который сейчас в состоянии "еще небольшой список доделать".
В качестве эксперимента, а также из-за того, что это удобнее делать в ядре, добавлено слово CREATE-WORD. Это альтернатива CREATE, только имя не выбирается из входного потока, а снимается со стека в виде указателя на ASCIIZ. Вот фрагментик:
[code]CREATE WORDBUF 256 ALLOT
: instance INSTANCES TO ACTIVE-INSTANCE PARSE DUP WORDBUF SMOVE
\ всякое оформление опущено, чтобы не засорять текст
WORDBUF CREATE-WORD INSTANCES 1 - , DOES> @ TO ACTIVE-INSTANCE ;
[/code]
Это библиотека высокоуровневого структурного описания схем. При вводе instance my_module1 словом PARSE съестся my_module1, и попадет в массив с именами модулей (попутно оставшись в массиве WORDBUF). Чуть позже из содержимого WORDBUF будет создано слово, которое при исполнении положит на стек индекс созданного модуля. Похожего навскидку не нашлось.
P.S. Будет в Quark build 30, который сейчас в состоянии "еще небольшой список доделать".
|
|
|
|
Добавлено: Пт окт 21, 2011 02:27 |
|
|
|
|