Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Пт мар 29, 2024 03:30

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 18 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: эм, составные слова
СообщениеДобавлено: Пт май 01, 2009 21:20 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
еще одно баловство. Подсмотрел в Форт-системе Quest примерно такой код:
: bla:blabla ... ;
: bla:ups ... ;
: bla:uh ... ;
уж не знаю, что он там означает (не разбирался :) но навело меня оно на такое рассуждение:

Идея состоит в том, чтобы не писать длинно
ALSO VOC-NAME DEFINITIONS
: name ... ;
RECENT

а писать коротко:
: voc:name ... ;

если ':' стоит перед именем, то слово добавляется в текущий словарь:

: :sample bla bla bla ;

если двоеточие стоит в конце текста, то слово создается в текущем словаре
и включает двоеточие:

: sample: bla bla bla ;
приведет к созданию слова в текущем словаре с именем sample:

ну, и реализация:
<pre>
\ 1.05.2009 ~mOleg
\ Сopyright [C] 2009 mOleg mininoleg@yahoo.com
\ определение слов в указанных словарях.

\ разбить строку asc # на две по символу, находящемуся по адресу addr
\ символ не включается ни в одну из результирующих строк
: slice ( asc # addr --> asc2 # asc1 # )
ROT DDUP - DSWAP C+ >L OVER - 1 - L> SWAP DSWAP ;

\ разбить строку на две по символу ':'
\ ищется первое двоеточие от начала строки
: ?colon ( asc # --> name # voc # )
DDUP 1 - >L
BEGIN L@ WHILE
DUP C@ [CHAR] : <> WHILE
C+ -1 L+
REPEAT LDROP slice
;THEN L> ;

\ переопределение : таким образом, чтобы, если в имени слова находится
\ символ ':' , то часть строки перед двоеточием рассматривается как словарь
\ в который надо поместить новое определение с именем, находящемся в строке
\ после двоеточия(при этом двоеточие не учитывается).
: : ( / voc:name --> )
ALSO NEXT-WORD ?colon *IF EVAL-TOKEN DEFINITIONS ELSE DDROP THEN S: ;

\ завершить определение, "откатить" текущий словарь на начало
: ; ( --> ) [COMPILE] ; RECENT ; IMMEDIATE
</pre>

ну, и пример:

: HEAP:sample ." Hello from heap vocabulary!\n\r" ;
: :sample ." Hello from current vocab!\n\r" ;

ALSO HEAP sample
PREVIOUS sample

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


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

Зарегистрирован: Вт мар 20, 2007 23:39
Сообщения: 1261
Благодарил (а): 3 раз.
Поблагодарили: 19 раз.
Интересная идея, мне нравится :)

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


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

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
В "веселой карусели" есть такой мультик, где корова спрашивает лягушонка, что бы он делал, если бы был коровой. Последовательно отбрасывая коровьи хвост, рожки и ножки, лягушонок превратил себя из коровы в лягушонка... :)


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

Зарегистрирован: Вс май 07, 2006 11:38
Сообщения: 279
Откуда: Slavyansk, Ukraine
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Зачет!!!

_________________
Банзай!


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

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
Хищник писал(а):
В "веселой карусели" есть такой мультик, где корова спрашивает лягушонка, что бы он делал, если бы был коровой. Последовательно отбрасывая коровьи хвост, рожки и ножки, лягушонок превратил себя из коровы в лягушонка...

правда мы ничего не отбрасываем, а только добавляем :)

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

кстати, к вопросу, когда оно может пригодиться потенциально: когда создается закрытый словарь, а интерфейсные слова надо
разместить где-то в другом месте (однако находящемся в контексте). и лень писать: ALSO VocName THIS

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


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

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
mOleg писал(а):
правда мы ничего не отбрасываем, а только добавляем

Так дело-то в чем? Вот мы надобавляем, и оно понравится. И придется тащить это во все трансляторы. А в некоторых оно уже будет... случайно так.


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

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

не правильно понят намек :)
(впрочем и сейчас я далек от уверенности, что понимаю мысль Хищника)

Хищник писал(а):
И придется тащить это во все трансляторы.

Гы :) прям таки придется? всегда найдется любитель урезать все по самое, ну "дальше некуда".

Хищник писал(а):
А в некоторых оно уже будет... случайно так.

я и впрямь не понял мысль

навеяло Тютчева :
Молчи, скрывайся и таи
И чувства и мечты свои -
Пускай в душевной глубине
Встают и заходят оне
Безмолвно, как звезды в ночи,-
Любуйся ими - и молчи.

Как сердцу высказать себя?
Другому как понять тебя?
Поймёт ли он, чем ты живёшь?
Мысль изречённая есть ложь.
Взрывая, возмутишь ключи,-
Питайся ими - и молчи.

Лишь жить в себе самом умей -
Есть целый мир в душе твоей
Таинственно-волшебных дум;
Их оглушит наружный шум,
Дневные разгонят лучи,-
Внимай их пенью - и молчи!..

;)

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


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

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

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


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

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
mOleg писал(а):
Гы прям таки придется? всегда найдется любитель урезать все по самое, ну "дальше некуда".

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


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

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

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


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

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
И начинается синтаксический разбор. А в описание правил разбора придется, кроме "слова разделяются пробелами, имена перечислены в словаре, числа распознаются отдельно", добавлять описания того, что некоторые слова не такие, а состоят из имени словаря (плюс описание, что такое словарь) и имени слова в этом словаре. Плюс разъяснение ситуаций, что делать с записью AAA:BBB:CCC - где тут ежик, а где черепаха.


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

Зарегистрирован: Пт дек 26, 2008 21:16
Сообщения: 412
Откуда: Великий Новгород
Благодарил (а): 9 раз.
Поблагодарили: 4 раз.
Согласен с Хищником может идея и увлекательная но помоему вредная. Всякие точки двоеточия и тп в словах это плохо, а вот Unit.fts это просто и красиво и не меняет правила трансляции. Если и развивать работу со словарями так в этом направлении (мое личное мнение)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пн май 04, 2009 10:30 
Не в сети

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
_Harry писал(а):
Согласен с Хищником может идея и увлекательная но помоему вредная. Всякие точки двоеточия и тп в словах это плохо, а вот Unit.fts это просто и красиво и не меняет правила трансляции. Если и развивать работу со словарями так в этом направлении (мое личное мнение)

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


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

Зарегистрирован: Пт дек 26, 2008 21:16
Сообщения: 412
Откуда: Великий Новгород
Благодарил (а): 9 раз.
Поблагодарили: 4 раз.
вопрос
А мы не любуемся а думаем о последствиях....
Потом чем плохи юниты. Если ими пользоваться то вот такое
Код:
ALSO VOC-NAME DEFINITIONS 

уже не надо.
И управлять словарями можно при помощи слов а не знаков пунктуации,
( да еще и внутри слов их пихать :shock:
не мне очень ненравится.)


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

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
Цитата:
И управлять словарями можно при помощи слов а не знаков пунктуации,
( да еще и внутри слов их пихать
не мне очень ненравится.)

КОд очень иерархичен, и иногда НУЖНО видеть эту иерархию наглядно, чтобы не вспоминать, что к чему относится и что у нас за function. Но если код простой, то конечно да...


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

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


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

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


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

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