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

кандидата технических наук
Ханна Джабр
город
Киев
год
1991
специальность ВАК РФ
05.13.11
Автореферат по информатике, вычислительной технике и управлению на тему «Разработка средств автоматизации обеспечения мобильности типовых системных программ»

Автореферат диссертации по теме "Разработка средств автоматизации обеспечения мобильности типовых системных программ"

КИЕВСКИЙ ПОЛИТЕХНИЧЕСКОЙ ИНСТИТУТ

ка правах рукописи

ханка дкабр (СИРИЯ)

удк 681. а об

РАЗРАБОТКА СРЕДСТВ АВТОМАТИЗАЦИИ ОБЕСПЕЧЕНИЯ ШЗЛЛЬНОСГИ ТИТОВЫХ СИСТЕМНЫХ ПРОГРАММ

Специальность 05; 13.11 -математическое и программное обеспечение вычислительных машин и систем

АВТОРЕФЕРАТ

диссертации ка соискание ученой степени каяднтата технических нагл

Киев-1991

Работа выполнена аа кафедре спецкаюварояанных вычислитель кьх средств Киевского политехническог о института

Научный руководитель: кандидат технических наук, доцент

Салалатоз 3. И.

Официальные оллонентьс доктор технических наук, профессор

Кузьыук BlR

кандидат технических наук,вед. научн. сотр. Воскобойяиков 0. L

Ведущая организция: икститут кибернетики АН УССР

защита состоится /А/ёкЛ 1991 г. ь/£/ часов на заседании специализированного совета Д 058.014.09 при Киевском политехническом институте.

Отзыв на автореферат в двух экгешлярах, вавэреу,п1Ш печатью учреждения просим направить по адресу: 252056, г. Киев проепект Победы 37.корпус Н 18:

С диссертацией можно ознакомиться в библиотеке Киевского политехнического института.

- Автореферат разослан ¿/¿¿¿Я 1991 г.

Ученый секретарь специализированного совета кандидат технических наук,

доцент . j* /,■■ -""О. В. Вузовский

А Н Я О 1 А д И Я

Целью диссертационой работы является разработка метода синтеза системных программ для различных известных ЗВМ, основанного яа обобдеиии типовых системных программ и концепции виртуальной ЭВМ (ВЭВМ) со своей системой команд, обеспечивающей переносимость программ.

Для достижения поставленной цели решаются следующие задачи:

- исследование суцестзувдих методов автоматизации обеспечения мобильности программного обеспечения;

- разработка непроцедурного языка описания системы команд целевой ЗВМ (ЦЗБЮ;

- разработка системы команд ВЗВМ на основе обобщения семантики команд известных ЭВМ, их формата и способа адресации;

- обеспечение мобильности разрабатываемых системных программных средств к различным ЦЭВМ.

На защиту выносятся следующие результаты:

1. Обобщенная ассемблерная модель программы пользователя, учитывающая реализацию хо.ч-сретного переносимого алгоритма, систему команд ЦЭВМ я внутреннее состояние процессора в каждой точке генерации алгоритма (содержимое регистров, стека, признаков результатов) .

2. Непроцедурный язык описания системы команд ЦЭВМ, обеспечивающий передачу значений параметров ЦЭВМ для выбора требуемого варианта генерации пользовательской программа

3. Обобщенный язык ассемблера ВЭВМ, обеспечивающий составление

говат эль с хкх программ в обобщенном виде.

,4 Структура системы автоматизации обеспечения мобильности типовых системных программ на уровне ассемблера ЦЭВМ с оптимизацией по количеству сохранений и восстановлений регистров и переев-

ЛЖ ' ■

5. Обобщение алгоритмов лексического и синтаксического анализа '".ля реализации их синтеза для ЦЭВМ и их использование на примере разработки ассемблера для однокристального микроконтроллера КМ1816ВЕ51.

ОБЩАЯ ХАРАКТЕРИСТИКА РАБОТЫ

Актуальность темы. Широкое использование микропроцессор.«.^ техники в различных областях человеческой деятельности предполагает новые методы ускоренного создания типового ярограмуногс обеспечения, трудоемкость разработки которого остается все ems высокой. С появлением нозых поколений микро-ЭВМ в том числе с RISC-архитектурой появилась проблема переносимости типового программного обеспечения. Существующее средства обеспечения мобильности - технология программирования и языки программирования - требует создания компиляторов, либо разработки конверторов или генег.эдоров кодов для ДЭВМ, что весьма затруднительно для широкого использования.

Поскольку в настоящее время создание типового программного обеспечения остается Есе еще трудоемким, то разработки i: исследования б области создания средств автоматизации обеспечения мобильности для типового программного обеспечения является в настоящее время актуальными.

•¿етоды исследования. При разработке ызтода автоматизации обеспечения мобильности типовых системных программ для ЦЭЕМ использованы основные положения математической логики, теории графов и теории множеств. Разрабоиса языка описания системы команд ЦЗВи базировалась на основе теории форизлышх языков, а языка ассемблера ВЭВМ - на основе обобщения Ассемблеров известных ЭШ по семантике операторов, форматам машинных команд, способам адресации и набору директив. Реализация обобщенных алгоритмов в тершках Ассемблера КЭШ осуществлена на ГОБЫ IBM PC/AT в райках операционной система MS DOS с использованием методов структурного v. модульного программирования.

Научная новизна. Определяется разработкой нового мзтеда оии-тега тияовык системных программ при помощи непроцедурных средств описания системы команд ЦЭШ, которые обеспечивают минимальное кохичестБО пересылок и сохранений, содержимого программно доо-гуятк регистров. Эффективность обеспечивается за счет принятой юдвли программы пользователя, учитывающей синтезируемый алгоритм, описание системы команд ЦЭБМ и внутреннее состояние ДЗВМ ь рабочей точка синтезируемого программного алгоритма. В обобщенно« виде в терминах ВЭШ разработали наиболее тшжодье алгоритм

ч 3 -

системных программ - лексический и синтаксический анализатора Разработан кепроцедурный язык описания системы команд ПЭВМ для переноса типовых алгоритмов с уровня Е8ВМ на уровень ассемблера ПЭВМ. Разработаны структуры макроопределений, реализующие правила формирования алгоритмов лексического и синтаксического анализа на Ассемблере ЦЭВМ.

Практическая ценность. Предлагаемые средства автоматизации обеспечения мобильности типовых системных программ позволяй? значительно снизить трудоемкость программирования при переносе программного обеспечения с уровня ВЗЕИ на уровень ЦЭВМ. Разработанный язык описания системы команд ЦЭВМ сводит к минимуму процесс разработки программ, реализующих различные алгоритмы, а модели типовых алгоритмов программ, реализованные в виде макроопределений, учитызают значения параметров из описания системы ко-15анд ПЭВМ. При этом разрабатываемый алгоритм должен быть реализован один раз в терминах обобранного ассемблера ВЭВМ (возможны такие внесена в него отдельных дополнений), а затем он может быть многократно кспольгозан для различных ЦЭВМ.

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

Реализация научных результатов. Предложенный в диссертации метод синтеза типовых системных программ обеспечивает при использовании непроцедурного языка описания системы команд ¡РВИ процедурное репение задач системного программирования с эффективным использованием архитектурных особенностей ЦЭВМ. Полученное результаты используются в учебном процессе в курсах "Сис-аемкое программирование", "Проектирование микропроцессорных систем" для слушателей межотраслевого института: повышения квалификации при Киевском политехническом институте.

Апробация работы. Основные положения и результаты диссертационной работы докладывались на всесоюзной конференции "Моделирование- 88" /Кишинев. 13В9г/.

Публикации. По теме диссертации о луб линовано 2 работы.

Структура и объем работы. Диссертационная работа изложена на 90 страницах, состоит из введения, четырех разделов и заключения. Работа содержит 2Б рисунков, список использованной литературы из 112 наименований и прилоления.

Во введении обосновывается актуальность темы диссертационной работа, сформулированы це,чи к задачи исследования.

В первом разделе приведен обзор су^есхьуад«: м&тодов обеспечения мобильности, анализируются ярзкмувз?с?ва к недостатки каждого кз них. Завершается раздел посч^.ноькой задачи исследования, которая заключаеся в разработке непроцедурных средств обеспечения мобильности при соэдачик типового программного обеспечения для ЦЭВМ.

Во втором разделе представлена разработанная модель генерации текстов программ для ЦЭБМ с обобщенного уровня в терминах олерат^оэ ВЭШ. Предлагаемая модель позволяет учитывать не только собственно требуемый алгоритм и систему команд, но и внутреннее состояние ЦЭВМ в каждой точке генерации программы. &го обеспечивает эффективное использование особенностей архитектуры и системы команд ЦЭВМ. Предложена система команд и ассемблер ЕЭВМ для составления обобщенных алгоритмов типовых программ. Разработан язык описания системы команд для ЦЭВМ для формирования множества значений параметров с целью дальнейшего их использования в процессе синтеза программ.

В третьем.разделе представлен аппарат реализации моделей для генерации текстов программ для ЦЭВМ. В качестве инструментального средства использован макрогенератор типа IBM 360/370, реализующий правила генерации текстов типовых системных программ ДЭВК при помощи логических.параметров и директив условной трансляции.

В четвертом разделе на примере реализации лексического и синтаксического анализаторов показана последовательность этапси их реализации для различных ЦЭВМ. Представлено их использовыание на примере-разработки транслятора с Ассемблера для микроконтроллера К1816ВЕ51.

В приложении приведены распечатки обобщенных системных программ на виртуальном уровне, а также синтезированные их Еаркакх-ь для IBM PC и СМ 1800. Приводится также текст транслятора с Ассемблера для микро-ЭВМ КЗ816ВЕ51 для обоих вариантов инструментальных ЭВМ.

ОСНОВНОЕ СОДЕРЖАНИЕ РАБОТ ь!

Проблема переносимости программного обеспечения пока em >

полной мере не решена. Особенно отчетливо она выделяется с появлением новых поколений ЗВМ (например, встраивемых и с RISC-архи-гектурой). Создание типового системного программного обеспечения делятся все еще актуальной задачей. Имеющиеся современные системы, обеспечивающие переносимость программного обеспечения на уровне языков программирования (С, PL/M) ;:ли в виде специальных гистем (CDL-2) не исключают процедурного характера процесса программирования. В первом случае требуется создавать компилятор, использующий специальные средства поддержи (анализатор УАСС), во втором необходимо создавать генератор кода для интерпретации внутреннего промежуточного представления програш. Использование технологий программирования (структурного, модульного, Р-гехнологш и др. ) не исключает процедурного характера составления программ. В силу этого процесс разработки программного олеспечения все еще остается трудоемким. Поэтому целью настоящей диссертационной работы является разработка таких средств автоматизации мобильного программного обеспечения,которые сведут к килиму процедурный характер создания программ.

С другой сторона,эти средства обеспечения мобильности должны бьть эффективны с точки зрения минимального использования памяти при максимальном быстродействии. Для достижения поставленной це-т были пронавизированы типовые системные программы, а также архитектура известных ЭВМ Модули типоеых программ разрабатывайся в обобщенном виде в терминах Ассемблера ВЭВМ. Система команд ВЭВМ выбрана таким образом, что покрывает системы команд гзвэстних современных ЗВМ. Выделены основные атрибуты, характеризующие машинную команду как в смысле ее аппаратной реализа-" ;к, так и в смысле синтаксиса языка ассемблера ЦЭВМ. Таким образом, мэсштаи команда любой ЦЭВМ мояег однозначно быть опк-в виде:

К » f(W,D,F,0,S,R,N, С,), где:

M - мнемоника мажшой команды;

D - параметр описывающий действие, выполняемое командой;

F - множество параметров, определяющих формат машинкой

команды;

О - множество параметров, описывающих способ адресации к операндам;

S - множество параметров, характеризующих синтаксис one-

- б -

ратора;

R - множество дополнительно используемых регистров;

N - множество параметров, описывающих семантику дополнительно используемых регистров;

С - множество признаков результата, вырабатываемых командой;

Далее, для полноты описания необходимо однозначно задать регистровую структуру ЦЭВМ. Кавдый программно доступный регистр в общем виде может быть описан следующим образом: R - f(Z,H) где: 2 - разрядность в Ситах;

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

Архитектура и система команд ВЭШ были ььйраяы ■ на основе обобщения семантик машинных команд, их форматов и способов адресации при обращении к операндам. В соответствии с принятой классификацией выполнено разбиение команд по их группам: арифметические, логические, пересылки, сдвиговые, переходов, обращений к подпрограммам и возвратов, прерывания, управления процессором и ввода-еывода. Программирование ввода-вывода является самостоятельной задачей, поэтому эти операции в обобг^нкоы виде будут использоваться только на логическом уровне. С точга зрения архитектуры принято, что в системе команд БЭВМ обязательно имеются команды работы со стеком типа PUSH и POP и реализованы вое известные способы адресации к операндам. О точки а рент/ обобщения Форматов машинных команд ВЗВМ, предусмотрены все возможные сочетания способов адресации, реализованные в едеетвуюшх ЭВМ, а именно: регистровая, прямая, непосредственный операнд, бзэо-во-индексная, через регистр с автоинкреме.чтом, через регистр с автодекрементом, а также все эти способы (ва исключением непосредственного операнда) для указания косвенного адреса Предус-ыатрено также наличие сегментации. В общэм виде выбраны следующие форматы: регистр, память (для команд ветвления), регистр-регистр, регистр-память, память-регистр, память-память, регистр- непосредственный операнд, память-непосредственный операнд. Здесь для указания на память использушсе все перечисленные ви&ь способы доступа в вашгь (прядай, базоис-иялекеный и т.д.).

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

В дальнейшем типовые алгоритмы системных программ составляются в обобщенном вида в терминах Ассемблера ВЭВМ. Обобщение выполняется скачала с использованием наиболее слолных команд ВЭВМ таких, например, так перекодировка, поиск символов и др. для каждого отдельного фрагмента алгоритма. Далее, по мере необходимости используются менее сложные команды (умножение, деление, и т.п.) вплоть до самых простых (сдвиги, пересылки, и т.п.). Таким образом, система команд ВЭВМ имеет 3 уровня сложности, мевду которыми кет четкой границы. Такое последовательное применение ко-г.:знд ВЭВМ при реализации обобщенных алгоритмов' типовых йрограмм позволяет наиболее полно- и эффективно использовать возможности системы команд ВЭВМ. При переносе обобщенных алгоритмов программ' аа уровнь ПЭВМ в случае отсутствия в ее системе команд какой либо из сложных команд уровня ВЭВМ выполняется ее эмуляция в виде альтернативной последовательностях команд. Выбор последовательности команд (Seq) осуществляется при помощи правил анализа параметров, однозначно описывающих систему команд ЦЭВМ (множество ' ■. которые обеспечивают генерацию необходимой последовательнсс-л?. Одним из вариантов инструментария для реализации таких пра-:мя являтся макрогенератор, в котором каздому i-му правилу гене-теции мояно поставить в соответствие директиву условной трансляцию (Dir(O) для анализа значений параметров генерации требуемой ветви исходного текста программы. С другой стороны, для наиболее полного и эффективного использования возможностей архитектуры и системы команд ЦЭВМ выполняется анализ наличия информации з регистрах и стеке (внутреннее состояние) - Int в каждой точке генерируемого программного фрагмента обобщенного алгоритма

По своему назначению правила подразделяется на следуйте группы: 1. для выбора команды с подходящей семантикой; 2} для эмуляции команды ЕЭВМ цепочкой команд ДЭШ; 3) для анализа внутреннего состояния ЦЭВМ в рабочей точке генерации программы с учетом синтаксиса, способов адресации к операндам к пр.; 4) для синтеза исходных операторов программы на .Ассемблере ЦЗВМ.

В этом случае при помощи директив условной трансляции анализируется содержимое регистров и стека во избежание использования избыточных команд пересылок и обращений в стек. Для этой цели в процессе синтеза формируется группа параметров, в которой каждому регистру ставится в соответствие имя переменной, значение которой в точке генерации размещается в каком-либо из них. Аналогично ¿запоминается и содержимое стека Объем стека принимается кз расчета на максимум и каждой записи в стек также ставится в соответствие имя переменкой, значение которой в точке генерации программы размещено в стеке. Тогда процесс формирования 1-й цепочки Зеч, реализующей конкретный фрагмент обобщенного алгоритма, определяется зависимостью:

Беч(0-Г(К, В1Г(0, 1пЦО) В данном случае правила 01г(л) включают в себя анализ множества 1пЬ(1). Это последнее обстоятельство позволяет свести к минимуму информационную избыточность при формировании результирующего кода объектного файла или полностью.ее исключить.

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

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

<описание команды* :=<заголовок описаниях последовательность операторов задания значений параметров* <заголовок описания* : -- СО.'.МАШ

<последовательность операторов задания значений параметров»: -оператор задания значения параметров» !< последовательность операторов задания значений параметров»;

<оператор задания значения параметров» :«мнемоника типа параметра» - <значение параметра команды»;

<: мнемоника типа параметра» : - NAM | SEM | FRM ! SNT |CADR] | CFLG1 | [REffl | CSRG].

В порядке следования каждой мнемонике типа параметра соответствует имя машинной команды ЦЭВМ на языке ассемблер, семантика команды, ее формат и синтаксис в Ассемблере, способ адресации к каждому операнду, параметры признака результата, дополнительно используемые регистры и их назначение. Причем, „описание мнемоники и семантики для каждой команды используется только один раз, а другие, например, как описания формата, синтаксиса и т. д. могут повторяться, (в этом случае список параметров заключается в круглые скобки). Значение параметра команды представляет собой предопределенный набор символов, однозначно характеризующий со-отЕзетстцукецее понятие, (такое ¡сак семантика, мнемоника, формат, способ адресации и т.д.).

Для полного описания программно доступных ресурсов ЦЭВМ описываются и регистры. Их описание подобно описанию машинных команд и определяет назначение в каждом конкретном случае. Ниже приводится структура описания регистров.

<описание регистра» (заголовок описания» -¡оператор описания регистра».

«заголовок описания» : - REGISTR

«оператор описания регистра» 'мнемоника регистра» - «список значений параметров регистра»;

«значение параметра регистра» : - COMMN | BASE | INDEX | COUNT | SEGM | STACK | PC I PORT | FLAG

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

В качестве инструментария для программной реализации модели программы пользователя был выбран макрогенератор, поскольку он позволяет формировать исходные тексты программ (в данном случае на Ассемблере ЦЭВМ). В дальнейшем исходные тексты используются для создания объктных файлов модулей программ.

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

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

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

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

Бее ключевые слова (мнемоники операторов, мнемонические операции и имена регистров) сведены в единую таблицу. Для кодирования типа разделителя используются два байта. Допустимость того или иного сочетания для кратных разделителей определяется вк5-ранной структурой данных для кодирования разделителя, которая имеет следуадш вид:

15 14 13 12 11 10 09 08 07 04 03 0

Здесь поля с соотвестсвукщими разрядами определяют: О - 3 - приоритет разделителя 4 - 7 - ¡сод разделитея 8 - 9 - код количества операндов в операции 10 - 11 - код кратности разделителей 12 - 13 - код фиктивного операнда

14 - признак регистра

15 - признак ключевого слова

Допустимые сочетания в этом случае задаются в виде специальной таблицы, определяющей краткость разделителей и ее глубину. Обращение к подпрограмме поиска пары терм - разделитель внутри лексического анализатора производится циклически пока полностю не будет обнаружен составной разделитель. Этим самым частично выполняется функции синтаксического анализатора и несколько уп-роаэется его алгорчт Обоби^нная подпрограмма обработки констант выполнена по слот посимвольного анализа со старших цифр, сдвига частичного произведения влево н сложения. Для десятичных констант выполняется два сдвига (на 1 и на 2 разряда) и дополнительное сложение (для реализации уиноиения на 10 ).

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

обобкеше програшы сыигт<с:шского анализа выполнено по схеке стекового алгоритма, <анализирующего приоритет соседних разделителей для последующей их обработки. При этом система приоритетов разделителей выбрана гачвй. что приоритеты операторов тает налниэка^ уровень, а приоритеты операций - выстай, что обеспечиваем упреадащую интерпретацию (коипиляця») операндов а оператора» яэача В случае, если приоритет аяадиэируеетго раэгр-

- IS -

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

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

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

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

Система состоит из 3-х групп файлов: файлов ВЭШ, файлов описания и файлов ЦЭВМ. В группе файлов описания исходными данными являются множество типовых программ, или фрагментов программ в обобщенном виде в терминах Ассемблера ВЭВМ, которые образует библиотеку типовых исходных программных модулей. В качество языка написания этих модулей используется язык макроассемблера ВЭВМ. Эти исходные данные поступают на вход конвертора исходных файлов ВЭВМ в файлы ЦЭВМ. Конвертор представляет собой специальный макрогенератор по типу IBM 380/370. С другой стороны, исходными данными является множество команд ВЭШ, выбранных на основании обобщения по семантике,' форматам и способам адресации к

файлы впртуальнс 0 ЗВМ' (ьсЕй;

Библиотека

Язык Микроассемблзра ■ ЕЗВМ исходных

программ типовых

модулей ВЗВМ

файлы

описания

Библиотека

данных

описания

системы

команд

ЦЗЗМ

система

команд ЦЗВМ

ИЗИк описания системы кс манд

цззм

43Й5Ы

ЦЗВМ

Библиотека

исходных

программ

ТИПОВЫХ

модулей ЦЗВМ

Трансляторы ассемблера целевых ЗЗМ

Библиотека

объектных

модулей

типовых

программ

10МП0К03'й'.".К

Библиотека ьагсузочных модуле?.

Рис. I Структура системы слнтеза типовых программ.

операндам в системах команд известных ЗВЙ

Группа файлов описания представляет собой языковые сродства описания системы команд ЦЭВМ и собственно файлы описания архитектуры и системы команд ЦЭВМ, которые оформляются в виде библиотеки для различных ЦЭВМ.

В группе файлов ЦЭВМ представлены в основном, выходные файлы, которые формируются в результате синтеза программ; это, прежде всего, исходные файлы синтезируемых программ, образующие библиотеку типовых исходных программ ЦЭВМ. Эти модули, будучи оттранслированы транслятором, который также синтезируется по предложнной методике, образуют библиотеку объектных модулей. Библиотека объектных модулей может быть использована в качестве банка программ для дальннейшей компоновки требуемых загрузочных модулей.

На базе разработанных анализаторов был реализован транслятор с языка ассемблер для микроконтроллера КШ816ВЕ51. За основу был принят классический двухпросмотровый алгоритм с формированием таблицы имен на первом просмотре.

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

Реализация языковых и программных средств выполнена на ПЗШ IBM PC/AT под управлением операционной системы MS DOS. Разработанный метод синтеза программ и обобщение алгоритмов лексического и синтаксического анализаторов в терминах Ассемблера ВЗШ имеют более широкое применение как в задачах системного программирования, так и в других областях применения.

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

- 15 -

ОСНОВНЫЕ РЕЗУЛЬТАТЫ РАБОТЫ

1. Прогеден анализ существующих методов и средств автоматизации обеспечения мобильности при разработке типовых системных программ выявлены их основные достоинства и недостатки. На основании выполненного анализа обоснована необходимость в разработке средств автоматизации обеспечения мобильности типовых программ.

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

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

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

б. Разработаны обобщенные алгоритмы типовых системных программ -■ лексического и синтаксического анализаторов, реализующие модели сннтегируешх программ в виде макроопределений, в которых учитывается наличке определенных команд ЦЭБМ и их формат, содер-днмое регистров и стека, наличие свободных регистров.

6. Синтезированы программы лексического и сиятшссичеекого анализаторов для микро-сЕЛ СМ-1800 и ПЭВМ 1БМ PC и на их основе реализован транслятор с Ассемблера для однокристального микроконтроллера HM1816RE51.

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

Во теме-диссертации опубликованы следующие работы:

1. Салапатов В.И., Кузнецов A.B. Ханна Дж. Обобщение семантики типовых алгоритмов системных программ". // Кишинев. Пйиинца -1990. - с. 114-120.

2. Салапатов В. И. , Ханна Дд. Обобщение алгоритмов лексического и синтаксического анализа ка ыашинно-ориентированном уровне виртуальной ЭВМ. // Весть. Киев, политехи, ин-та. К. , Вы-ш школа Выпуск 27,- 1991.- с. 71-75.

Подписано в печать 14,05.91. Формат 60x84/16.Бум.офс.Офс.печ. Уч,-пзд.л. 0,9,Уч.-изд.п. 1,0. Тираж ICO екз. Зак. № 111.Бесплатно.

Полиграфический участок Ин-та ююномики АН УССР. 252011,Киев-11, ул.Паяаса Мирного,26.