gudleifr писал(а):
л(а):...словари...Я понял это так. Пусть имеется некий файл произвольного формата, содержащий, среди прочей, информацию об именовании его отдельных частей, содержащих исполняемый, в широком смысле, код.Кроме того заданы алгоритмы для извлечения этой информации и способе исполнения этого кода. Постулируется два подхода к ословариванию этого файла.Ваш подход - словарный: создается специальный словарь (в случае разнотипного кода - несколько), инкапсулирующий способ выполнения FIND и EXECUTE (и некоторых других) для данного файла. Обращение к этому словарю устанавливает необходимый контекст, в котором эти слова ищутся и выполняются специфическим для этого файла способом.
типа того, только:
gudleifr писал(а):
имеется некий файл произвольного формата, содержащий, среди прочей, информацию об именовании его отдельных частей
имеется нечто (файл, поток, некая абстракция, набор неперечислимых данных, вобщем чего угодно) позволяющее обращаться к себе через имя (т.е. некий ключ быть должен).
gudleifr писал(а):
Кроме того заданы алгоритмы для извлечения этой информации и способе исполнения этого кода.
Методики преобразования запроса (ключ) и генерирования результата реализованы, соответственно внутри системы. Собственно, получается некий драйвер устройства, к которому мы обращаемся привычным нам образом.
gudleifr писал(а):
создается специальный словарь (в случае разнотипного кода - несколько), инкапсулирующий способ выполнения FIND и EXECUTE (и некоторых других) для данного файла.
Не совсем так, скрывается методика поиска, преобразования, фиксации для данного типа данных, методика EXECUTE не меняется. Т.е. в процессе обращения к словарю при необходимости создается код, который может быть вызван напрямую форт-системой.
gudleifr писал(а):
Обращение к этому словарю устанавливает необходимый контекст, в котором эти слова ищутся и выполняются специфическим для этого файла способом.
Обращение к такому словарю производится таким же образом, как к обычному слову, т.е. по имени. В случае упоминания имени словаря в контекст добавляется, как вы сказали "фокус", на его содержимое. Самим же фокусом можно управлять привычным образом, прямо задавая порядок поиска в словарях.
gudleifr писал(а):
Мой подход - парсерный: при парсировании этого файла создаются слова-оболочки для вызова отдельных кусков кода - в обычном словаре.
дык, у меня тоже "оболочки" создаются, только по мере необходимости, т.е., если я добавил в контекст словарь KERNEL32.DLL, то я могу вызвать любую функцию по ее имени, однако, в пространство кода и данных будут добавляться только вызываемые функции (а не все!).
gudleifr писал(а):
Преимущество словарного подхода.
для меня самое главное, что создав такой механизм можно однообразно работать с любыми необходимыми данными.
gudleifr писал(а):
* Слово EXECUTE работает независимо от контекста.
это, я уже сказал, не так, EXECUTE прост, на словари не завязан, а, как и положено, завязан на исполнимые адреса.
gudleifr писал(а):
Я правильно понял?
частично
![Cool 8)](./images/smilies/icon_cool.gif)