СПОСОБ ПРЕОБРАЗОВАНИЯ ВХОДНОГО КОДА ТРАНСЛЯТОРА В ОБЪЕКТНЫЙ КОД И УСТРОЙСТВО ДЛЯ ЕГО ОСУЩЕСТВЛЕНИЯ Российский патент 1998 года по МПК G06F9/445 G06F9/44 

Описание патента на изобретение RU2103727C1

Изобретение относится к транслятору, в частности к организации и построению транслятора для машинного языка высокого уровня.

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

Обычный транслятор также включает синтаксический анализатор, который получает в качестве входных данных грамматику, определяющую язык, подлежащий транслированию, и последовательность операций, связанных с грамматикой. Синтаксический анализатор образует "синтаксическое дерево" (дерево грамматического разбора) для операторов исходной программы в соответствии с грамматическими правилами и операциями. Для каждого оператора исходной программы синтаксический анализатор генерирует синтаксическое дерево исходного ввода данных рекурсивным способом "снизу вверх" в соответствии с подходящими грамматическими правилами и определениями. Таким образом, синтаксическое дерево формируется из узлов, соответствующих одному или более грамматическим правилам. Генерация синтаксического дерева позволяет синтаксическому анализатору определять, подчиняются ли части входной программы правилам грамматики или нет. Если нет, то синтаксический анализатор генерирует сообщение об ошибке. Таким образом, синтаксический анализатор выполняет синтаксическую проверку, но обычно не проверяет содержание ("семантику") исходной программы. Примером известных средств синтаксического анализа может служить синтаксический анализатор LALR (lookahead, left right - "с просмотром вперед, слева направо"), который описан в гл. 4 монографии Aho, Sethi, Ullman, "Compilers: Principles, Techniques and Tools".

В обычных трансляторах после того как выполнен синтаксический анализ входной программы она вводится в семантический анализатор, который осуществляет проверку на наличие семантических ошибок, таких как несоответствие типов и т.п. Семантический анализатор оценивает, например, "семантические атрибуты" узлов синтаксического дерева. Атрибуты, которые оцениваются путем просмотра атрибутов их порождаемых узлов, называются "синтезированными атрибутами". После синтаксического и семантического анализа транслятор генерирует промежуточный код, оптимизирует промежуточный код и генерирует выходную программу.

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

С этой целью важно стандартизировать модули входной программы, а также интерфейсы между модулями. В числе известных решений, направленных на стандартизацию процедур кодирования, можно указать процедуры ADT (Типы Данных Абстрактных Конструкций) и OOP (Объектно-Ориентированное Программирование).

Задача изобретения - преодоление проблем и устранение недостатков известных из предшествующего уровня техники решений за счет введения иерархической структуры Пакетов Технологических Средств (ПТС) при построении транслятора. Каждый ПТС определяет интерфейс для манипулирования с соответствующей структурой данных, такой как таблица кодировки символов или синтаксическое дерево. Настоящее изобретение позволяет структурировать ПТС во множество уровней абстрактных конструкций, которые включают: "выделенное конкретное представление", "уровень представлений", "уровень определений" и "концептуальный уровень". Интерфейс к ПТС включает, например, концептуальный уровень и частично уровень определений. Конкретное представление и уровень представлений являются скрытыми от программиста компьютерной системы. Кроме того, настоящее изобретение обеспечивает присвоение обозначения интерфейсу на каждом уровне для осуществления операций создания/удаления, обращения, обновления и вывода.

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

На фиг. 1 дана блок-схема компьютерной системы, соответствующей предпочтительному варианту осуществления изобретения; на фиг. 2 - концептуальная схема структуры ПТС; на фиг. 3 - пример ПТС для синтаксического дерева; на фиг. 4 - блок-схема алгоритма, иллюстрирующая модули транслятора, обеспечивающие создание структур данных в различных ПТС и обращение к ним.

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

Изобретение относится к устройству и способу, обеспечивающим повышение надежности, удобство сопровождения и удобочитаемость программных средств. На фиг. 1 представлена блок-схема компьютерной системы 100, соответствующей изобретению. Компьютерная система 100 содержит центральный процессор 102, память 104 и шины ввода/вывода 106. Специалистам в данной области техники должно быть ясно, что компьютерная система 100 может также включать множество Других элементов, не показанных на чертеже для сохранения его наглядности, например, дисковые запоминающие устройства, клавиатуры, дисплеи, соединения с сетями, дополнительные шины памяти, дополнительные центральные процессоры и т.д.

Память 104 содержит входную программу 110 транслятора, транслятор 111 и выходную программу 124 транслятора. Транслятор 111 включает лексический анализатор 112, синтаксический анализатор 114, семантический анализатор 116, оптимизатор кода 120 (не обязателен) и генератор кода 122. Транслятор 111 вводит входную программу 110 и обрабатывает входную программу для преобразования ее в выходную программу 124. Элементы транслятора 112-116 обрабатывают каждый оператор во входной программе 110 для генерации промежуточного кода. Память 104 также включает множество пакетов технологических средств (ПТС) 133, как описано ниже. Определенные части транслятора (например, интерфейс синтаксического дерева) организованы (или структурированы) как иерархия пакетов технологических средств. Эти ПТС в трансляторе на языке Pascal не содержат информационных данных. ПТС являются структурированными частями программных средств, которые манипулируют некоторыми глобальными данными (и осуществляют отсылки на эти данные). В других вариантах, однако возможно создавать и кодировать ПТС таким образом, чтобы они могли обрабатывать не только эти конкретные данные (например, конкретный перечень имен таблицы перечней имен, одно синтаксическое дерево и т.д.), но любые данные, которые подходят к функциями этих ПТС в качестве параметров.

Как должно быть ясно специалисту в данной области техники, все части транслятора 111 выполнены в виде команд, хранящихся в памяти 104 и выполняемых центральным процессором 102. Синтаксический анализатор 114 обращается к стековой памяти 135 синтаксического дерева. Синтаксический анализатор 114 использует грамматику, которая включает правила и связанные с ними операции, соответствующие правилам. Операции грамматики осуществляют обращение к ПТС 133, включая ПТС 134 синтаксического дерева, с использованием функций интерфейсов в ПТС.

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

Семантический анализатор 116 распечатывает сообщения об ошибках и/или останавливает выполнение программы, если найдены семантические ошибки. Если семантических ошибок не найдено, то семантический анализатор 116 выводит деревья для программно-совместимых компьютерных систем (ПСК) в представлении для предварительного преобразования способом, известным для специалистов в данной области техники (Aho et al., "Compilers: Principles, Techniques and Tools", p.p. 735-737). Оптимизатор кода 120 (не обязателен) оптимизирует это представление для предварительного преобразования и выводит его в оптимизированной форме (например, неиспользованные фрагменты кода могут быть опущены). Генератор кода 122 предпочтительно преобразует представление для предварительной обработки в выходную программу 124 способом, также хорошо известным специалистам в данной области техники.

Предпочтительный вариант осуществления изобретения относится к транслятору SPARCpascal для языка программирования Pascal. Транслятор сам предпочтительно составлен на универсальном языке программирования Си и выполняется под управлением операционной системы Solaris, которая поставляется компанией Sun Microsystems и связана с операционной системой Unix. Solaris - это торговая марка компании Sun Microsystems. Торговые марки SPARC - это торговые марки компании SPARC International, Inc. Unix - это торговая марка, зарегистрированная в США и других странах, эксклюзивно лицензируемая через компанию Х/Ореп Соmpany, LTD.

Как показано на фиг. 4, ПТС используются для таблицы идентификаторов, таблицы перечня наименований, интерфейса, например YATTR, который определяет конкретные семантические операции для грамматики YACC языка Pascal и ПСК-деревьев. Таблица идентификаторов и таблица перечня имен (также называемая таблицей кодировки символов) описаны в совместно поданной заявке на "Способ преобразования входной программы транслятора и устройство для его осуществления" того же заявителя. Синтаксическое дерево описано в совместно поданной заявке на "Способ оценки семантических атрибутов при синтаксическом анализе и устройство для его осуществления" того же заявителя. Интерфейс YATTR представляет собой интерфейс семантических операций для обычной грамматики YACC языка Pascal. ПСК-деревья описаны, например, в монографии Aho et al., "Compilers: Principles, Techniques and Tools", p. p. 735-737. Другие варианты осуществления изобретения используют ПТС для других соответствующих структур данных.

На фиг. 2 представлена концептуальная диаграмма структуры ПТС 200. После рассмотрения концептуальной модели ниже приведен пример ПТС. Как показано на фиг. 2, каждый ПТС определяет интерфейс общего пользования для манипулирования соответствующей структурой данных, такой как таблица кодировки символов или синтаксическое дерево. Как показано на фиг. 2, ПТС 200 структурирован во множество уровней абстрактных конструкций, которые включают выделенное конкретное представление 202, уровень представлений 204, уровень определений 206 и концептуальный уровень 208. Каждый из этих уровней абстрактных конструкций представлен горизонтальной строкой на фиг. 2.

Изобретение обеспечивает назначение группы интерфейсных подпрограмм для каждого уровня для выполнения операций создания/удаления 222, обращения 224, обновления 226 и вывода 228; каждая из упомянутых групп представлена столбцом на фиг .2. Интерфейсы конкретного представления 202 и уровня представлений 204 являются скрытыми для программиста. Интерфейс концептуального уровня 208 содержит множество программно-реализуемых процедур или функций, которые создают интерфейсы, посредством которых к ПТС может быть обеспечен доступ со стороны программных средств, внешних по отношению к ПТС. Предоставляемый интерфейс для доступа к ПТС может также включать часть уровня определений 206. В других случаях уровень определений 206 является скрытым. Упрощенный пример для пояснения сказанного приведен ниже.

Если, например, формируются ПТС для манипулирования с перечнем, его уровень определений может содержать следующие команды (атрибуты абстрактных конструкций) для каждого элемента перечня: INFO(L), представляющая информационную часть; KEY(L)- ключ для ассоциативного поиска; NEXT(L) - указатель для следующего элемента перечня. Атрибуты INFO и KEY могут быть включены в интерфейс ПТС. Но нет необходимости включать в интерфейс атрибут NEXT, так как на концептуальном (более высоком) уровне мы можем создать итератор ELEMENTS (L, P), который сканирует все элементы перечня. Таким образом, атрибут NEXT остается скрытым.

Таким образом, пример ПТС, показанный на фиг. 2, имеет четыре группы интерфейсов, верхний уровень которых доступен для программных средств, выполняющих операции над структурами данных, которым соответствуют ПТС, а нижние уровни используются внутренним для ПТС образом для обеспечения доступа между различными уровнями интерфейсов. Как показано стрелками на фиг. 2, интерфейс уровня N может быть доступен только на уровне N+1. Также возможно (но осуществляется редко) использовать для подпрограмм уровня N другие подпрограммы уровня N. Не все ПТС будут включать каждый из интерфейсов, показанных на фиг. 2, но если такие интерфейсы необходимы, то они должны быть согласованы с форматом, представленным на фиг. 2.

Выделенное конкретное представление 202 является реальной структурой данных, хранящейся в памяти, такой как синтаксическое дерево, таблица кодировки символов (таблица перечня имен - NL-таблица), таблица идентификаторов или структурой данных, представляющей обычную грамматику языка программирования. Действительное представление такой структуры данных не входит в объем настоящего изобретения; могут быть использованы любые соответствующие структуры данных. Уровень представлений 204 включает множество операций, например, создание/удаление 222, обращение 224, обновление 226 и вывод 228, определяющих доступ к атрибутам/элементам конкретного представления 202. Уровень определений 206 включает множество операций, например, создание/удаление 222, обращение 224, обновление 226 и вывод 228, определяющих доступ к атрибутам абстрактных конструкций на уровне представлений 204, которые могут соответствовать (или не соответствовать) конкретным атрибутам/элементам. "Атрибуты абстрактных конструкций" также называются "промежуточными абстрактными понятиями". Концептуальный уровень 208 включает более обобщенные операции (например, итераторы), которые манипулируют структурой данных как единым абстрактным объектом.

На фиг. 3 показан пример ПТС 134 для синтаксического дерева. ПТС 134 включает два файла: самодокументированный файл интерфейса (.h) 310 и файл реализации (. с) 320. Самодокументированный файл интерфейса 310 определяет внешние процедуры, функции и переменные и макрокоманды (такие, как для осуществления переходов между различными уровнями ПТС). (В предпочтительном варианте осуществления большинство интерфейсных процедур и функций определены как макрокоманды, потому что их реализация, т.е. конкретное представление абстрактного описания, относительно невелика). Файл реализаций 320 содержит тела (т.е. внутреннюю часть описания) процедур, функций и переменных.

Как показано на фиг. 3, синтаксическое дерево 134 включает интерфейс "создание/удаление" 302 для каждого уровня и интерфейс "обращение" 304 для каждого уровня. В описываемом варианте ПТС 134 синтаксического дерева не включает специальных определений для интерфейсов обновления или вывода. Интерфейс обновления для этого ПТС используется в форме назначений (присваиваний имен), левые части которых представляют собой вызовы макрокоманд обращения к интерфейсу, например:
TR_TYPE(t) = p;
Этот фрагмент обновляет атрибут TYPE в узле t синтаксического дерева. Интерфейс вывода для синтаксического дерева используется только для отладки и не вложен в большинство версий транслятора с целью избежать увеличения размера исполняемого кода. Другие ПТС, разумеется, могут включать некоторые или все из интерфейсов создания/удаления, обращения, обновления и вывода, причем каждый из этих интерфейсов включает интерфейсные подпрограммы для каждого из множества уровней ПТС.

Как показано на фиг. 3, интерфейс "создание/удаление" существует для каждого из следующих уровней: уровня представлений 310, уровня определений 312 и концептуального уровня 314. В описываемом варианте интерфейсы "создание/удаление" для уровня определений 312 и концептуального уровня 314 существенно идентичны. Аналогично, интерфейс "обращение" существует для каждого из следующих уровней: уровня представлений 320, уровня определений 322 и концептуального уровня 324. Заметим, что в описываемом варианте интерфейсы обращения как для уровня определений 312, так и для концептуального уровня 314 доступны для программных средств, внешних по отношению к ПТС 134. Если необходимо, некоторые отдельные подпрограммы уровня определений могут быть сделаны недоступными извне путем определения их как статические (STATIC).

Интерфейс "создание/удаление" для концептуального уровня может включать некоторые обобщенные операции, которые создают или удаляют абстрактный объект как целое. Для данного примера такие операции не являются необходимыми, поскольку имеется лишь одно синтаксическое дерево, которое создается неявно, как результат некоторых определений, и которое удаляется также в неявном виде. Если бы имелось несколько таких деревьев, то было бы необходимо определить операции на уровне абстрактных понятий по их созданию/удалению. Такие операции часто определяются понятиями "построение/разрушение".

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

Например, процедура "tree_asgn" в ПТС 134 создает узел синтаксического дерева, который содержит информацию об операторах "присвоения" (например, узел для представления субдерева "V: = E"). Процедура tree_asgn вводит множество параметров, создает новый узел дерева (путем доступа к процедуре "создание" уровня "представление") и запоминает параметры во вновь созданном узле. В предпочтительном варианте различные узлы синтаксического дерева имеют различные структуры. Таким образом, каждый вид узла, который может содержаться в синтаксическом дереве, создается и ему присваивается значение с использованием одной из множества подпрограмм создания узлов в пределах уровня определений интерфейса "создание/удаление" для ПТС 134.

Интерфейс "создание/удаление" для уровня представлений ПТС 134 включает подпрограмму создания узла необходимой структуры и возврата указателя к вновь созданному узлу. Как обсуждено выше, эта подпрограмма вызывается посредством интерфейса "создание/удаление" уровня определений. В этом примере отсутствует подпрограмма уровня представлений, используемая для удалений. Подпрограмма tr_free() высвобождает память дерева для всего дерева, так что она может рассматриваться как пример специфического интерфейса удаления для концептуального уровня.

Таким образом, интерфейс "создание/удаление" ПТС 134 содержит множество уровней абстрактных конструкций, которые включают выделенное конкретное представление, уровень представлений, уровень определений и концептуальный уровень. Интерфейс "создания/удаления" для ПТС 134 состоит из концептуального уровня и части уровня определений. Конкретное представление и уровень представлений скрыты от программиста компьютерной системы.

Интерфейс "обращение" для концептуального уровня для ПТС 134 включает функцию итератора, которая обеспечивает доступ к элементам перечня в узле дерева. Это единственный интерфейс концептуального уровня в данном примере. Обращение к узлам дерева и их атрибутам выполняется посредством операций обращения на уровне определений.

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

Интерфейс обращения для уровня определений может содержать, например, следующие макроопределения на языке программирования СИ:
#определить TR_А5С_ЬН5(1)/*левая часть узла назначения*/\
((t) - > tree_ele.t_asg_node. lhs_var )
#определить TR_VAR_ID( ^^идентификатор переменной*/\
((t)->tree_ele.t_var_node.cptr)
Используя эти определения ПТС 134, средства программного обеспечения могут обратиться к идентификатору (например, "V") левой части узла назначения синтаксического дерева (например, V=E) просто путем использования определенных интерфейсов TR_ASG_LHS и TR_VAR_ID, которые определены на уровне определений ПТС 134 синтаксического дерева следующим образом:
TR_VAR_ID ( TR_ASG_LHS ( Т ) )
Структура синтаксического дерева и обращения указателя являются скрытыми из-за ПТС 134.

В другом примере интерфейс обращения уровня определений для ПТС, соответствующего таблице перечня имен (в ПТС для таблицы перечня имен), может содержать следующие макроопределения на языке программирования СИ:
#определить NL_CLOBAL(пр)/*проверка, если переменная является глобальной*/\
((((np)->extra_flags) & NGLOBAL)!=0)
определить NL_ STATIC(np)/*проверка, если переменная является статической*/\
((((np)->extra_flags) & NSTATIC)!=0)
Используя эти определения ПТС для таблицы перечня имен (таблицы кодировки символов), средства программного обеспечения могут проверить статус переменных в таблице перечня имен для определения их статуса просто с использованием определенных интерфейсов NL_GLOBAL и NL_STATIC следующим образом:
если ( NL_GLOBAL (np) альфа NL_STATIC(np))
Обращения указателя и поразрядные логические операции И скрыты в ПТС для таблицы перечня имен.

Подпрограммы обращения уровня представлений для ПТС 134 включают, например, подпрограмму (tr_alloc(n)) для выделения узла дерева из n байт.

Таким образом, интерфейс обращения ПТС 134 содержит множество уровней абстрактных конструкций, которые включают выделенное конкретное представление, уровень представлений, уровень определений и концептуальный уровень. Интерфейс доступа общего пользования к ПТС 134 состоит из концептуального уровня и части уровня определений. Конкретное представление и уровень представлений являются скрытыми для программиста компьютерной системы.

В заключение можно отметить, что с использованием настоящего изобретения программные средства можно структурировать согласно строгому порядку, что обеспечивает удобочитаемость, надежность и удобство сопровождения программных средств. При использовании настоящего изобретения сопровождающиеся высоким риском фрагменты, использующие указатели, метки, косвенную адресацию и т. п. , записываются только однократно в соответствующем ПТС на уровне определений. Каждый тип интерфейса ПТС (например, интерфейсы создания/удаления, обращения, обновления и вывода) содержит множество уровней абстрактных конструкций, которые включают выделенное конкретное представление, уровень представлений, уровень определений и концептуальный уровень. Каждый интерфейс для ПТС состоит из концептуального уровня и, возможно, части уровня определений. Конкретное представление и уровень представлений являются скрытыми для программиста.

Другие варианты осуществления настоящего изобретения могут быть очевидны для специалиста в данной области техники, исходя из описания изобретения. Например, другие варианты осуществления изобретения могут использовать другие наименования уровней и интерфейсов, описанных здесь.

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

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

Похожие патенты RU2103727C1

название год авторы номер документа
СПОСОБ ПРЕОБРАЗОВАНИЯ ВХОДНОЙ ПРОГРАММЫ ТРАНСЛЯТОРА И УСТРОЙСТВО ДЛЯ ЕГО ОСУЩЕСТВЛЕНИЯ 1995
  • Сафонов Владимир Олегович
RU2103728C1
СПОСОБ И УСТРОЙСТВО ДЛЯ ДОСТОВЕРНОЙ ОЦЕНКИ СЕМАНТИЧЕСКИХ ПРИЗНАКОВ В СИНТАКСИЧЕСКОМ АНАЛИЗЕ ПРИ ПРОХОДЕ ВПЕРЕД СЛЕВА НАПРАВО 1995
  • Сафонов Владимир Олегович
RU2115158C1
СПОСОБ И УСТРОЙСТВО ДЛЯ ПРОВЕРКИ ИСПОЛЬЗОВАНИЯ ПОЛЕЙ ЗАПИСЕЙ ВО ВРЕМЯ КОМПИЛЯЦИИ 1995
  • Сафонов Владимир Олегович
RU2115159C1
Способ верификации программного обеспечения по естественной семантике идентификаторов исходного кода программы при статическом анализе 2018
  • Жидков Роман Евгеньевич
RU2672786C1
СПОСОБ СЕМАНТИЧЕСКОЙ ОБРАБОТКИ ЕСТЕСТВЕННОГО ЯЗЫКА С ИСПОЛЬЗОВАНИЕМ ГРАФИЧЕСКОГО ЯЗЫКА-ПОСРЕДНИКА 2009
  • Менде Михаэль
RU2509350C2
СПОСОБ РАЗРАБОТКИ, ХРАНЕНИЯ И ИСПОЛЬЗОВАНИЯ КОМПИЛИРОВАННЫХ В БИНАРНОЕ ПРЕДСТАВЛЕНИЕ ПРОГРАММ В ТАБЛИЦАХ БАЗ ДАННЫХ 2017
  • Попов Александр Олегович
RU2666287C1
СПОСОБ СИНТАКСИЧЕСКОГО АНАЛИЗА ЯЗЫКА ПРОГРАММИРОВАНИЯ С РАСШИРЯЕМОЙ ГРАММАТИКОЙ 2013
  • Бочарников Дмитрий Николаевич
RU2515684C1
ЛИНГВИСТИЧЕСКИ ИНФОРМИРОВАННЫЕ СТАТИСТИЧЕСКИЕ МОДЕЛИ СТРУКТУРЫ СОСТАВЛЯЮЩИХ ДЛЯ УПОРЯДОЧЕНИЯ В РЕАЛИЗАЦИИ ПРЕДЛОЖЕНИЙ ДЛЯ СИСТЕМЫ ГЕНЕРИРОВАНИЯ ЕСТЕСТВЕННОГО ЯЗЫКА 2004
  • Ринггер Эрик
  • Геймон Майкл
  • Сметс Мартин
  • Корстон-Оливер Саймон
  • Мур Роберт К.
RU2336552C2
КОМПЬЮТЕРНАЯ СИСТЕМА И СПОСОБ ПОДГОТОВКИ ТЕКСТА НА ИСХОДНОМ ЯЗЫКЕ И ПЕРЕВОДА НА ИНОСТРАННЫЕ ЯЗЫКИ 1993
  • Джейм Г.Карбонелл
  • Шарлин Л. Гэллап
  • Тимоти Дж.Харрис
  • Джеймс В.Хигдон
  • Деннис А.Хилл
  • Дэвид К.Хадсон
  • Дэвид Нэслети
  • Мервин Л.Ренних
  • Пегги М.Андерсон
  • Майкл М.Бауер
  • Рой Ф.Басдикер
  • Филип Дж. Хейс
  • Брюс М.Макларен
  • Ирен Ниренбург
  • Эрик Х.Риблинг
  • Линда М.Шмандт
  • Джон Ф.Свит
  • Катрин Л.Бейкер
  • Николас Д.Браунлоу
  • Александр М.Франц
  • Сюзн Е.Холм
  • Джон Роберт Рассел Ливитт
  • Дерил В.Лонсдейл
  • Теруко Митамура
  • Эрик Х.Нюберг
RU2136038C1
АРХИТЕКТУРА ОТОБРАЖЕНИЯ С ПОДДЕРЖАНИЕМ ИНКРЕМЕНТНОГО ПРЕДСТАВЛЕНИЯ 2007
  • Эйдья Атул
  • Блэйкли Джоуз А.
  • Ларсон Пер-Эйк
  • Мельник Сергей
RU2441273C2

Иллюстрации к изобретению RU 2 103 727 C1

Реферат патента 1998 года СПОСОБ ПРЕОБРАЗОВАНИЯ ВХОДНОГО КОДА ТРАНСЛЯТОРА В ОБЪЕКТНЫЙ КОД И УСТРОЙСТВО ДЛЯ ЕГО ОСУЩЕСТВЛЕНИЯ

Предложены способ и устройство для использования иерархической структуры пакетов технологических средств (ПТС), каждый из которых определяет интерфейс для манипулирования соответствующей структурой данных, такой как структура данных таблицы кодировки символов или синтаксического дерева. Изобретение предусматривает структурирование ПТС во множество уровней абстрактных конструкций, в числе которых выделенное конкретное представление, уровень представлений, уровень определений и концептуальный уровень. Интерфейс к ПТС состоит, например, из концептуального уровня и части уровня определений. Конкретное представление и уровень представлений скрыты от программиста компьютерной системы. Кроме того, изобретение обеспечивает назначение интерфейса для каждого уровня для выполнения операций создания/удаления, обращения, обновления и вывода. 3 с. и 8 з.п. ф-лы, 4 ил.

Формула изобретения RU 2 103 727 C1

1. Способ преобразования входного кода транслятора в объектный код, основанный на структурировании компьютерной программы и осуществлении операций системой обработки данных, содержащей память, отличающийся тем, что включает формирование пакета технологических средств (ПТС), который соответствует структуре данных в памяти, выбранной из группы, состоящей из структуры данных таблицы идентификаторов, структуры данных таблицы перечня имен, структуры данных синтаксического дерева и структуры данных, характеризующих обычную грамматику языка программирования, формирование в ПТС по меньшей мере одного интерфейса для структуры данных, причем интерфейс выбран из группы, состоящей из интерфейса создания/удаления, интерфейса обращения, интерфейса обновления и интерфейса вывода, формирование по меньшей мере в одном интерфейсе множества уровней абстрактных конструкций, которое включает уровень представлений, содержащий интерфейс для структуры данных, уровень определений, включающий интерфейс для уровня представлений, и концептуальный уровень, включающий интерфейс для уровня определений, по меньшей мере структура данных и уровень представлений интерфейса не имеют доступа помимо ПТС, а концептуальный уровень интерфейса имеет доступ помимо ПТС, и выполнение операций над структурой данных посредством концептуального уровня интерфейса, который, в свою очередь, обеспечивает доступ к уровню представлений, обеспечивающему, в свою очередь, доступ к структуре данных. 2. Способ по п.1, отличающийся тем, что в качестве языка программирования выбран язык программирования Pascal. 3. Способ по п.1, отличающийся тем, что дополнительно включает формирование второго ПТС, который соответствует второй структуре данных, выбранной из группы, состоящей из структуры данных таблицы идентификаторов, структуры данных таблицы перечня имен, структуры данных синтаксического дерева и структуры данных, представляющей обычную грамматику языка программирования, формирование по меньшей мере одного интерфейса для второй структуры данных, причем интерфейс выбран из группы, состоящей из интерфейса создания/удаления, интерфейса обращения, интерфейса обновления и интерфейса вывода для второй структуры данных и формирование, по меньшей мере в одном интерфейсе для второй структуры данных множества уровней абстрактных конструкций, которое включает уровень второй представлений, содержащий интерфейс для второй структуры данных, второй уровень определений, содержащий интерфейс для второго уровня представлений, и второй концептуальный уровень, содержащий интерфейс для второго уровня определений, причем по меньшей мере вторая структура данных и второй уровень представлений не имеют доступа помимо второго ПТС, а второй концептуальный уровень имеет доступ помимо второго ПТС. 4. Способ по п.1, отличающийся тем, что выполнение операций над структурой данных включает выполнение операций над структурой данных посредством концептуального уровня интерфейса, который, в свою очередь, обеспечивает доступ к интерфейсу определений, который, в свою очередь, обеспечивает доступ к уровню представлений, обеспечивающему, в свою очередь, доступ к структуре данных. 5. Способ по п.1, отличающийся тем, что интерфейс уровня N + 1 может иметь доступ только с интерфейса уровня N. 6. Способ структурирования компьютерной программы, основанный на осуществлении операций системой обработки данных, содержащей память, отличающийся тем, что включает формирование ПТС, который соответствует структуре данных в памяти, используемой в компьютерной программе, формирование в ПТС по меньшей мере одного интерфейса для структуры данных, причем интерфейс выбран из группы, состоящей из интерфейса создания/удаления, интерфейса обращения, интерфейса обновления и интерфейса вывода, формирование по меньшей мере в одном интерфейсе множества уровней абстрактных конструкций, которое включает уровень представлений, содержащий интерфейс для структуры данных, уровень определений, содержащий интерфейс для уровня представлений, и концептуальный уровень, содержащий интерфейс для уровня определений, причем по меньшей мере, структуры данных и уровень представлений интерфейса не имеют доступа помимо ПТС, а концептуальный уровень интерфейса имеет доступ помимо ПТС и выполнение операций над структурой данных посредством концептуального уровня интерфейса, который, в свою очередь, обеспечивает доступ к уровню представлений, обеспечивающему, в свою очередь, доступ к структуре данных. 7. Устройство для преобразования входного кода транслятора в объектный код на основе структурирования компьютерной программы, содержащее память, предназначенную для хранения по меньшей мере одной структуры данных, используемой компьютерной программой, причем структуры данных выбраны из группы, состоящей из структуры данных таблицы идентификаторов, структуры данных таблицы перечня имен, структуры данных синтаксического дерева и структуры данных, представляющей обычную грамматику языка программирования и блок выполнения операций, связанный с памятью и предназначенный для выполнения операций над структурами данных, отличающееся тем, что содержит пакет технологических средств (ПТС), который соответствует хранящейся структуре данных и содержит интерфейсный блок ПТС, обеспечивающий по меньшей мере один интерфейс для структуры данных, выбранный из группы, состоящий из интерфейса создания/удаления, интерфейса обращения, интерфейса обновления и интерфейса вывода, при этом интерфейсный блок ПТС структурирован в соответствии с множеством абстрактных уровней, включающим уровень представлений, уровень определений, и концептуальный уровень, упомянутые уровни соответствуют интерфейсу для структуры данных, интерфейсу для уровня представлений и интерфейсу для уровня определений, причем по меньшей мере структура данных и уровень представлений не имеют доступа помимо ПТС, а концептуальный уровень интерфейса имеет доступ помимо ПТС, блок выполнения операция для осуществления операций над структурой данных имеет возможность доступа к концептуальному уровню интерфейса, который, в свою очередь, предназначен для обеспечения доступа к уровню представлений, обеспечивающему, в свою очередь, доступ к структуре данных. 8. Устройство по п.7, отличающееся тем, что в качестве языка программирования выбран язык программирования Pascal. 9. Устройство по п.7, отличающееся тем, что дополнительно содержит вторую структуру данных, хранящуюся в памяти и выбранную из группы, состоящей из структуры данных таблицы идентификаторов, структуры данных таблицы перечня имен, структуры данных синтаксического дерева и структуры данных, представляющей обычную грамматику языка программирования, второй ПТС, который соответствует второй структуре данных, интерфейсный блок во втором ПТС, предназначенный для обеспечения по меньшей мере одного интерфейса для второй структуры данных, причем интерфейс выбран из группы, состоящей из интерфейса создания/удаления, интерфейса обращения, интерфейса обновления и интерфейса вывода, множество уровней абстрактных конструкций в интерфейсном блоке второго ПТС, включающее уровень представлений, содержащий интерфейс для структуры данных, уровень определений, содержащий интерфейс для уровня представлений, и концептуальный уровень, содержащий интерфейс для уровня определений, причем по меньшей мере структура данных и уровень представлений не имеют доступа извне помимо ПТС, а концептуальный уровень имеет доступ помимо ПТС, при этом блок выполнения операция включает блок выполнения по меньшей мере одной команды компьютерной программы для выполнения операций над второй структурой данных посредством концептуального уровня интерфейса второго ПТС, который, в свою очередь, предназначен для обеспечения доступа к уровню представлений второго ПТС, обеспечивающему, в свою очередь, доступ к второй структуре данных. 10. Устройство по п.7, отличающееся тем, что блок выполнения операций дополнительно содержит блок, предназначенный для выполнения операций над структурой данных посредством концептуального уровня интерфейса, который, в свою очередь, предназначен для обеспечения доступа к интерфейсу определений, который, в свою очередь, предназначен для обеспечения доступа к уровню представлений, обеспечивающему, в свою очередь, доступ к структуре данных. 11. Устройство по п. 7, отличающееся тем, что интерфейс уровня N + 1 имеет доступ только посредством интерфейса уровня N.

Документы, цитированные в отчете о поиске Патент 1998 года RU2103727C1

ЕР, 0372834, патент, кл
Приспособление для точного наложения листов бумаги при снятии оттисков 1922
  • Асафов Н.И.
SU6A1

RU 2 103 727 C1

Авторы

Сафонов Владимир Олегович

Даты

1998-01-27Публикация

1995-10-24Подача