Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Вт мар 19, 2024 11:58

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 11 ] 
Автор Сообщение
 Заголовок сообщения: наследование..
СообщениеДобавлено: Вс сен 04, 2011 09:01 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
source file: heir.fts
\ 04.09.2011 ~mOleg
\ Copyright [C] 2011 mOleg mOlegg@ya.ru
\ наследование содержимого словаря

vocs/ vocab.fts

ALSO HIDDEN

\ создать словарь с именем name наследующий все содержимое словаря с указанным vid
\ после выполнения HEIR словарь name становится контекстным и текущим.
: HEIR: ( vid / name --> )
NEXT-WORD SVOCAB
DUP off_vname A@ >L DUP off_vlink A@ >L DUP >L
OVER off_threads# B@ CELLS /wordlist + CMOVE
L> L> OVER off_vlink A! \ сохраняются уникальные voc-link и
L> OVER off_vname A! \ ссылка на имя словаря
ALSO WITH
ALSO THIS
;

\ создать словарь с именем name наследующий все содержимое указанного voc словаря
\ после выполнения Heir словарь name становится текущим и контекстным
: Heir ( / voc name --> )
NEXT-WORD FINDVOC 0 OVER = ABORT" Ожидается имя словаря!" HEIR:
;


PREVIOUS

?ABSENT test{ \EOF -- тестовая секция ------------------------------------------
test{

VOCABULARY ZZZ
ALSO ZZZ DEFINITIONS
: a ." a" ; : b ." b" ; : c ." c" ;

ALSO FORTH DEFINITIONS
' a VALUE 'a ' b VALUE 'b ' c VALUE 'c
RECENT

CONTEXT @ RECENT HEIR: XXX
\ есть ли наследование?
' a 'a <> THROW ' b 'b <> THROW ' c 'c <> THROW

: d ." d" ; : e ." e" ; : f ." f" ;

ALSO FORTH DEFINITIONS
' d VALUE 'd ' e VALUE 'e ' f VALUE 'f
RECENT RECENT

Heir XXX CCC
: d ." переопределено" ;
\ доступны ли все слова?
' a 'a <> THROW ' b 'b <> THROW ' e 'e <> THROW ' f 'f <> THROW
\ переопределение сработало?
' d 'd = THROW

RECENT
}test
\EOF

HEIR: ( vid / Name --> )
позволяет наследовать список имен (и ассоциируемого с ними кода)
во вновь создаваемый словарь, имя которого следует за HEIR:.
Словарь, чьи имена наследуются должен быть передан HEIR:
в виде своего vid.

Heir ( voc Name --> )
как и предыдущее определение позволяет наследовать список имен
из словаря voc , имя которого ищется в списке VOC-LINK (то есть
только среди словарей) во вновь созданный словарь с именем Name.

В случае "пополнения" содержимого наследуемого словаря в наследнике
изменения отражаться не будут! Т.е. "слепок имен" делается один раз.
Создаваемые в наследующем словаре определения так же не отражаются на
содержимом словаря, из которого был сделан слепок. Каждый наследник
создается внутри текущего словаря, который не обязан быть наследуемым.


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

PS. добвил вариант с Heir, когда имя словаря ищется в VOC-LIST. И примерчик в конце
PS. несколько причесал, добавил простой тест и описание в конце.

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: наследование..
СообщениеДобавлено: Вс сен 04, 2011 16:22 
Не в сети

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: наследование..
СообщениеДобавлено: Вт сен 06, 2011 21:12 
Не в сети

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

У Олега своя концепция словарей, где словарь ... упорядочивает очень многое :?:

Но, я уже говорил выше, что нужно для принятия идеи


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: наследование..
СообщениеДобавлено: Вт сен 06, 2011 21:19 
Не в сети
Аватара пользователя

Зарегистрирован: Чт июл 20, 2006 11:31
Сообщения: 2168
Откуда: Екб
Благодарил (а): 0 раз.
Поблагодарили: 41 раз.
вопрос писал(а):
У Олега своя концепция словарей, где словарь ... упорядочивает очень многое

Очень многое... почему не все сразу?
Тогда может это и не словари вовсе.
Словарь - список слов с иерархической расшифровкой сложных слов через простые.

_________________
С уважением, chess


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: наследование..
СообщениеДобавлено: Пн сен 12, 2011 14:19 
Не в сети
Аватара пользователя

Зарегистрирован: Пт дек 26, 2008 21:16
Сообщения: 412
Откуда: Великий Новгород
Благодарил (а): 9 раз.
Поблагодарили: 4 раз.
Интересно все. Но...
Возник вопрос а зачем в форте наследование. :roll:
Может автор пояснит :?:


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: наследование..
СообщениеДобавлено: Пн сен 12, 2011 14:52 
Не в сети
Moderator
Moderator
Аватара пользователя

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

конкретно надо несколько пространств имен (отдельных словарей) с повторяющимися именами и скрытыми за ними действиями, а писать кучу ALIAS -ов лень 8)

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: наследование..
СообщениеДобавлено: Вт сен 13, 2011 16:58 
Не в сети
Аватара пользователя

Зарегистрирован: Пт дек 26, 2008 21:16
Сообщения: 412
Откуда: Великий Новгород
Благодарил (а): 9 раз.
Поблагодарили: 4 раз.
Цитата:
Heir, когда имя словаря ищется в VOC-LIST
Да еще неплохо бы упомянуть что FINDVOC найдет первый в списке словарь с указанным именем.
И посему неплохо сделать слово которое брало бы в качестве наследуемого вершину стека контекста(для полного комплекта :wink: )


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: наследование..
СообщениеДобавлено: Вт сен 13, 2011 17:45 
Не в сети
Moderator
Moderator
Аватара пользователя

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

Ну, да, хотя, одноименные словари все же редкость 8)

_Harry писал(а):
И посему неплохо сделать слово которое брало бы в качестве наследуемого вершину стека контекста(для полного комплекта )

дык, прямо в тестовой секции так и сделано:

CONTEXT @ HEIR: Name

имеется смутная идея объединить heir c unit.fts , однако, в плане синтаксиса в голову не приходит удачного варианта.

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: наследование..
СообщениеДобавлено: Ср сен 14, 2011 14:15 
Не в сети
Аватара пользователя

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

CONTEXT @ HEIR: Name
Ну да может и не стоит делать такое слово кому надо тот и сам напишет.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: наследование..
СообщениеДобавлено: Ср сен 14, 2011 17:03 
Не в сети
Moderator
Moderator
Аватара пользователя

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

ну, это тут как раз не причем. Наследуются только ссылки на имена, т.е. новые имена не создаются.

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: наследование..
СообщениеДобавлено: Чт сен 15, 2011 14:06 
Не в сети
Аватара пользователя

Зарегистрирован: Пт дек 26, 2008 21:16
Сообщения: 412
Откуда: Великий Новгород
Благодарил (а): 9 раз.
Поблагодарили: 4 раз.
mOleg писал(а):
ну, это тут как раз не причем. Наследуются только ссылки на имена,
Я и не утверждал что это обязательно связанно. Но такое возможно тем более что " ...дело пахнет..." ООП :wink: Так что стоит упомянуть в комментариях про этот аспект.


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

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


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

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


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

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