Устройство компиляции формального языка

 

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

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

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

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

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

Известны модели процесса преобразования формальных правил в операторы низкоуровневого машинного языка, описанные в А.Ахо, Р.Сети, Дж.Ульман «Компиляторы: принципы, технологии и инструменты». 2-е изд. Издательский дом «Вильяме», 2003 г., стр.29-41, которые обеспечивают преобразование предложений входного формального языка в систему команд для различных процессоров общего назначения. В качестве аналогов выберем множество возможных реализации данных моделей.

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

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

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

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

Сущность полезной модели заключается в решении задач преобразования предложений формального языка в последовательность исполняемых низкоуровневых команд специализированной вычислительной машины системы управления. Устройство компиляции формального языка, приведенное на фигуре 1, представляет собой техническую систему, состоящую из: интерфейса ввода формальных предложений входного языка 101, блока обработки макроподстановок 102, блока лексического анализа 103, блока синтаксического анализа 104, блока семантического анализа 105, блока контроля доступа к регистрам вычислительного устройства 106, блока формирования структуры управляющего алгоритма 107, блока связывания структурных блоков управляющего алгоритма 108, блока формирования последовательности регистрам вычислительного устройства 106, блока формирования структуры управляющего алгоритма 107, блока связывания структурных блоков управляющего алгоритма 108, блока формирования последовательности машинных кодов специализированного вычислительного устройства 109, центрального процессора 110, устройства диагностирования 111, запоминающего устройства 112, выходного адаптера интерфейса 113, специализированного цифрового вычислительного устройства системы управления 114.

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

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

Блок лексического анализа 103 выполнен с возможностью выделения синтаксически значимых лексем из входного потока информации.

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

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

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

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

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

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

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

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

Запоминающее устройство 112 представляет собой стандартный накопитель на магнитных дисках или энергозависимую полупроводниковую память.

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

Цифровое вычислительное устройство системы управления 114 представляет собой специализированное цифровое вычислительное устройство.

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

Через интерфейс ввода предложений формального языка 101 оператор вводит программу на исходном языке программирования. Центральный процессор 110 обеспечивает поступление информации на вход блока обработки макроподстановок 102 в котором происходит выделение и обработка макрорасширений исходного языка, далее поток информации поступает на вход блока лексического анализа 103, который осуществляет выделение структурно-значимых единиц из входной последовательности байт и передает их в блок синтаксического анализа 104. Блок синтаксического анализа 104 осуществляет проверку на соответствие синтаксиса входных предложений спецификации формального языка. В случае если одно из входных предложений не соответствует спецификации входного языка, на устройство диагностирования 111 выводится сообщение о возникшей ошибке, с указанием предложения, в котором она возникла, и устройство завершает свое функционирование. Далее информация поступает в блок семантического анализа 105, в котором осуществляется контроль вводимых параметров на соответствие допустимому диапазону. В случае выявления несоответствия, на устройство диагностирования 111 выводится сообщение о возникшей ошибке, с указанием параметра, который не удовлетворяет допустимому диапазону значений и устройство завершает свое функционирование. На следующем этапе информация поступает в блок контроля доступа к регистрам вычислительного устройства 106, в котором осуществляется проверка того, был ли данный регистр инициализирован каким-либо значением, перед тем как из него производится чтение данных. Если предварительной инициализации не было, а данный блок обнаруживает в одном из входных предложений инструкцию на чтение состояния данного регистра, то на устройство диагностирования 111 будет выдано предупреждение о том, что состояние регистра, из которого производится чтение не определено. Если ошибок не обнаружено, далее в блоке формирования структуры управляющего алгоритма 107 происходит генерация структуры данных, хранящей всю необходимую информацию для генерации исполняемых команд специализированного цифрового вычислительного устройства системы управления 114. Данная структура создается для каждой функционально завершенной совокупности входных предложений формального языка. Далее центральный процессор 110 размещает структуры данных, созданные в блоке формирования структуры управляющего алгоритма 107, в запоминающем устройстве 112. Далее блок связывания структурных блоков управляющего алгоритма 108, через центральный процессор 110, последовательно запрашивает из запоминающего устройства 112, хранящиеся в нем структуры данных, и осуществляет связывание структур в единое промежуточное представление, которое поступает на вход блока формирования последовательности машинных кодов специализированного вычислительного устройства 109, в котором осуществляется генерация исполняемых вычислительным устройством кодов. Последовательность сгенерированных исполняемых машинных кодов, через центральный процессор 110 и выходной адаптер интерфейса 113, поступает на вход специализированного цифрового вычислительного устройства системы управления 114, в котором происходит непосредственное функционирование управляющего алгоритма.

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

Покажем возможность осуществления полезной модели, т.е. возможность ее промышленного применения. Все блоки, входящие в состав заявленной полезной модели относятся к классам, для которых известны методы и правила их получения по предъявленным к ним требованиям, а именно:

- специалистам в данной области техники должно быть ясно, что интерфейс ввода предложений формального языка 101, реализуется с помощью стандартной клавиатуры персональных и промышленных компьютеров, а устройство диагностирования 111 реализуется с помощью стандартного монитора и соответствующих видеоадаптеров, также запоминающее устройство 112 может быть реализовано в виде стандартного накопителя на жестких магнитных дисках или энергозависимой полупроводниковой памяти;

- блок обработки макроподстановок 102 может быть получен по предъявленным к нему требованиям по известным методам и правилам, описанным в А.Ахо, Р.Сети, Дж.Ульман «Компиляторы: принципы, технологии и инструменты». 2-е изд. Издательский дом «Вильяме», 2003 г.,, стр.35-39;

- блок лексического анализа 103 может быть получен по предъявленным к нему требованиям по известным методам и правилам, описанным в Ю.Карпов «Теория и технология программирования. Основы построения трансляторов» - Издательство «БХВ - Петербург», 2005 г., стр.167-171;

- блок синтаксического анализа 104 может быть получен по предъявленным к нему требованиям по известным методам и правилам, описанным в Ю. Карпов «Теория и технология программирования. Основы построения трансляторов» - Издательство «БХВ - Петербург», 2005 г., стр.153-257;

- блок семантического анализа 105 может быть получен по предъявленным к нему требованиям по известным методам и правилам, описанным в А.Ахо, Р.Сети, Дж.Ульман «Компиляторы: принципы, технологии и инструменты». 2-е изд. Издательский дом «Вильяме», 2003 г., стр.336-376;

- блок контроля доступа к регистрам вычислительного устройства 106 может быть получен по предъявленным к нему требованиям по известным методам и правилам, описанным в А.Ахо, Р.Сети, Дж.Ульман «Компиляторы: принципы, технологии и инструменты». 2-е изд. Издательский дом «Вильяме», 2003 г., стр.336-376;

- блок формирования структуры управляющего алгоритма 107 может быть получен по предъявленным к нему требованиям по известным методам и правилам, описанным в Ю.Карпов «Теория и технология программирования. Основы построения трансляторов» - Издательство «БХВ - Петербург», 2005 г., стр.87-132;

- блок связывания структурных блоков управляющего алгоритма 108 может быть получен по предъявленным к нему требованиям по известным методам и правилам, описанным в А.Ахо, Р.Сети, Дж.Ульман «Компиляторы: принципы, технологии и инструменты». 2-е изд. Издательский дом «Вильяме», 2003 г., стр.443-485;

- блок формирования последовательности машинных кодов специализированного вычислительного устройства может быть получен по предъявленным к нему требованиям по известным методам и правилам, описанным в А.Ахо, Р.Сети, Дж.Ульман «Компиляторы: принципы, технологии и инструменты». 2-е изд. Издательский дом «Вильяме», 2003 г., стр.487-551;

- центральный процессор 110 может быть получен по предъявленным к нему требованиям по известным методам и правилам, описанным в Р.Токхайм «Микропроцессоры. Курс и упражнения». Издательство: «Энергоатомиздат» 1988 г, 336 стр., стр.106-129;

- выходной адаптер интерфейса 113 может быть получен по предъявленным к нему требованиям по известным методам и правилам, описанным в ГОСТ Р 52070-2003;

- цифровое вычислительное устройство системы управления 114 может быть получено по предъявленным к нему требованиям по известным методам и правилам, описанным в Р.Токхайм «Микропроцессоры. Курс и упражнения». Издательство: «Энергоатомиздат» 1988 г., 336 стр., стр.106-129;

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



 

Наверх