Содержание к диссертации
Введение
Глава I. Структура "человеко-машинной"системы проектирования
1.1. Машинные методы ПВП. Математическая база ... 10
1.2. Программная база 16
1.3. Математические модели задач ПВП 21
Глава II. Алгоритмы построения проектной поверхности методом Монте-Карло
2.1. Алгоритм построения проектной плоскости 29
2.2. Алгоритм построения системы проектных плоскостей 31
2.3. Алгоритм построения проектной плоскости с учетом естественных уклонов 34
2.4. Алгоритм построения проектной поверхности в виде системы плоскостей с уступом 36
2.5. Алгоритм построения рационального планово-высотного положения проектной поверхности 38
Глава III. Модели диалога
3.1. Функциональный диалог 41
3.2. Системный диалог 44
3.3. Модели диалога в иерархической структуре системы 47
3.4. Структура диалоговой системы 51
Глава ІV. Программное обеспечение диалоговой системы
4.1. Проблемно-ориентированный входной язык ЯППОЗ 57
4.2. Другие языковые средства 73
4.3. Универсальный процессор 83
4.4. Генерация рабочих программ 84
4.5. Некоторые характеристики диалоговой системы и инструкция 92
Заключение 97
Список жтературы
- Машинные методы ПВП. Математическая база
- Алгоритм построения проектной плоскости
- Модели диалога в иерархической структуре системы
- Проблемно-ориентированный входной язык ЯППОЗ
Введение к работе
Одной из областей применения и внедрения.кибернетических методов является автоматизация проектирования с помощью ЭВМ, связанная с решением сложных многовариантных, многоэкстремальных задач.
Существующие машинные методы проектирования ориентированы преимущественно на полную автоматизацию с помощью ЭВМ и не позволяют вносить изменения в алгоритмы в случае необходимости. Однако возникающие в практике проектирования ситуации зачастую таковы, что требуется вмешательство человека в процесс машинного проектирования путем коррекции алгоритма, параметров, а порой создавать и реализовать новый алгоритм. Отсутствие же такой возможности существенно снижает результативность машинного проектирования. Алгоритмы проектирования являлись творчеством отдельных программистов. Проектировщики при этом разрабатывали методы решения задач и не могли запрограммировать свою задачу, так как преградой для них являлось незнание языка программирования. С другой стороны, как писал Бусленко Н.П. в послесловии редактора к /17 /: "Надежда на то, что широкий круг пользователей ЭВМ, овладев языками высокого уровня, будет самостоятельно программировать свои задачи, представляется не особенно реалистической. Скорее всего это окажется возможным для мелких задач, не выводящих нас за рамки простых программ одноразового использования". Между тем результативность и эффективность систем проектирования зависят от создания крупных программных комплексов.
В связи с этим, в настоящее время особую важность приобретает создание эффективных человеко-машинных систем проектирования. Актуальность проблемы возросла в связи с принятием широкой программы развития автоматизации проектных работ, изложен-
5 ной в Постановлении ЦК КПСС и Совета Министров СССР № 312 от 30 марта 1981 года "О мерах по дальнейшему улучшению проектно-смет- ного дела".
В свете этого, выдвигаемые и решаемые в диссертационной работе вопросы, направленные на создание эффективных диалоговых систем, обеспечивающих синтез проектных решений и их программной реализации в интерактивном режиме, а также позволяющих пользователю проводить исследования в конкретной предметной области(ПО), являются актуальными .
Целью работы являются исследование моделей и методов проектирования в конкретной ПО и выделение на этой основе базы модулей, пополнение ее. путем разработки моделей и методов случайного поиска проектных решений, разработка моделей диалога и реализация на этой основе конкретной высокоэффективной системы проектирования. Поставленная цель потребовала решения следующих задач: разработка моделей и методов проектирования вертикальной планировки (ПВП), которая исследуется как ПО; создание моделей диалога; создание проблемно-ориентированного входного языка и других языков, обеспечивающих функционирование системы в диалоговом и пакетном режимах.
ПВП характеризуется наличием сложных многомерных, многовариантных, многоэкстремальных задач. Такие задачи возникают при строительстве ирригационно-мелиоративных сооружений, промышленных, гражданских, дорожных и других объектов и связаны с преобразованием исходного рельефа в проектную поверхность, которая отвечала бы многим техническим условиям. Составление проектов вертикальной планировки является результатом интенсивного интеллектуального труда человека.
Необходимость оперативного вмешательства человека в процесс проектирования - наиболее важная особенность исследуемой ПО. Поэтому интерактивность накладывает отпечаток на все компоненты разрабатываемой системы, особенно на модели, методы и организацию диалога. Для вмешательства пользователя в процесс проектирования, создания новых методов или модификации существующих, т.е. синтеза проектных решений, необходима специальная математическая база, а для организации диалога - мощная программная база.
К математической базе отнесены машинные методы ПВП, которые можно "разбить на части", а синтез их должен дать возможность пользоваться известными методами решения задач ПО или разработки новых методов.
Программная база должна обеспечить эффективный интерфейс между "частями" методов при их синтезе, обеспечить пользователю общение с задачей на различных этапах, включая прием информации и ее дальнейшую обработку.
Такая декомпозиция "человеко-машинной" структуры облегчает разработку системы, которая, включая методы решения задач из ПО, одновременно допускала бы внутренние изменения хода решения этих задач пользователем с учетом его интеллекта, интуиции и опыта.
Для внедрения такого подхода должны быть созданы специальные методы, реализующие математические модели объекта исследования, разработаны модели диалога пользователя с ЭВМ, которые позволяют рассчитывать возможные варианты проектируемого объекта, анализировать результаты и разрабатывать таким образом лучший проектный вариант. Система должна иметь специальное программное обеспечение, которое даст возможность общения пользователя с системой. Под общением здесь подразумеваются средства системы, дающие возможность описывать постановку задачи, вести исследования, пользоваться другими ее возможностями.
Объектом исследования являются машинные методы ПВП, методы случайного поиска решения, диалоговые системы.
Основой методов исследования явились методы математического моделирования, метод Монте-Карло, методы оптимизации, декомпозиции, теории систем, системное программирование, методы структурного программирования и проблемно-ориентированные языки.
Новые научные результаты и защищаемые положения:
Разработаны модели и методы плоскостного проектирования, основанные на применении метода Монте-Карло.
Предложены функциональная и системная модели диалога.
Созданы языки системы, работающие в диалоговом и в пакетном режимах.
Создана методика построения диалоговых систем с упрощенной внутренней структурой программного обеспечения.
Практическая ценность. Предложенные в диссертационной работе решения способствовали созданию диалоговой системы проектирования, которая: повышает результативность проектирования; дает возможность привлечения для машинного проектирования пользователя-непрограммиста, из-за возможностей системы в части обеспечения взаимодействия человека с ЭВМ; способствует повышению возможностей исследователя-специалиста в проведении исследований в ПО; повышает роль и ответственность проектировщика-специалиста ПО, которое может принимать решения и реализовать их в ходе реше- ния задач; - обеспечивает повышение производительности системы проектирования в результате созданных средств оперативного вмешательства в процесс вычислений.
Реализация результатов исследования. Диалоговая Система сдана в фонд алгоритмов и программ АН УзССР. Реализованная версия системы сдана в эксплуатацию в институт "Союзгипроводхоз". Годовой экономический эффект составил 120 тыс. рублей.
Апробация работы. Основные положения и результаты диссертационной работы докладывались на отчетной научной конференции профессорско-преподавательского состава ТашГУ имени В.й.Ленина (1977 г.), на отчетной научной конференции аспирантов ТашГУ им. В.И.Ленина (1981, 1982 гг.), научной конференции аспирантов и молодых ученых ТашГУ им. В.И.Ленина (1983 г.), на научных семинарах кафедры математического обеспечения ЭВМ ТашГУ имени В.И.Ленина (1981, 1982, 1984 гг.), на научных семинарах лаборатории математического обеспечения УзНПО "Кибернетика" (1982, 1983 гг.), на объединенном семинаре "Математическое обеспечение ЭВМ" и "Логика и программирование" при КГУ им. В.И.Ленина, РМВЦ и ИМ с ВЦ MCCPJ (1983 г.), на семинаре лаборатории "Автоматизация научных исследований" ИТА АН СССР (Ленинград, 1983 г.), на ІУ Всесоюзном симпозиуме "Системное и теоретическое программирование" (Кишинев, 1983 г.), УП Всесоюзном семинаре по комплексам программ математической физики (Ташкент, 1983 г.), на научно-методическом семинаре кафедры "Вычислительная техника" МИИЗа (Москва, 1984 г.).
Диссертационная работа состоит из четырех глав: Первая глава,в соответствии с декомпозицией "человеко-машинной" системы, посвящена обзору машинных методов и
9 и систем ЇЇВП, и также диалоговых пакетов прикладных программ (ПЇЇП)1.
В этой же главе сформулированы модели ПВП.
Во второй главе излагаются алгоритмы построения проектной плоскости и системы плоскостей методом случайного поиска, изложенные в совместных работах с У.Ю.Юлдашевым /118-120/.
В третьей главе описаны модели диалога /122/, предназначенные для проведения действий с алгоритмами, а также для функционирования системы в режиме диалога. Приведена связь моделей диалога с основными подсистемами и блоками системы. Описана также структура системы, которая изложена в совместной работе с У.Ю.Юлдашевым/135 /.
В четвертой главе описаны языки системы /121/, являющиеся компонентами моделей диалога, изложены принципы работы универсального процессора и генератора рабочих программ /134 /. Основные результаты этой главы изложены в /133/ и в совместных работах с У.Ю.Юлдашевым /121, 134 /.
Слова система и ІЇПП использованы в дальнейшем как синонимы.
Машинные методы ПВП. Математическая база
Большой вклад в разработку машинных методов проектирования внесли Е.Н.Герасименко / 77 /, И.А. Дзядевич /4-І /, М.И.Коробоч-кин /55-66/, Л.К.Левит-Гуревич /62, 64, 72, 95 /, А.Н.Ляпин /73/, У.Х.Малков /60,62,64,74/, В.З.Меренков /77 /, Ю.К.Неумывакин /89 /, Л.И.Нестеренко / 87, 88/, А.Г.Расулов /71, 101, 102, 107/, У.Ю.Юлдашев /71, 101, 129-132 / и др.
Согласно / 88 / попытка свести общую задачу проектирования планировки к задаче линейного программирования не дали эффективных методов для ее решений. Основную роль при этом играет вид проектной поверхности.
Построение проектов связано прежде всего с формулировкой математических моделей соответствующих задач.
В /58 / М.И.Коробочкиным сформулированы модели задач вертикального проектирования в кусочно-линейной постановке и проанализированы различные возможности перехода к линейным постановкам с разным количеством условий и переменных.
Проектирование под топографическую поверхность ставится им как задача линейного /55 , 57, 58 / либо квадратичного программирования / 66 / и решается известными методами или разрабатываются специальные алгоритмы. Прямое решение задачи проектирования планировки с помощью методов квадратичного программирования затруднено в силу большой размерности участка, обычно характерной в практике проектирования. В связи с этим разрабатываются алгоритмы, максимально учитывающие специфику задачи. В / 66 / предложен один из таких алгоритмов под названием итерационный алгоритм с модульным ядром. Идея алгоритма заключается в последовательном улучшении значений искомьк рабочих отметок в некотором направлении с целью уменьшения значения целевой функции после выбора некоторой исходной точки. Этот метод позволяет в опреде
их корректировки в соответствии с условием баланса по отдельно взятой полосе, опять решается система нормальных уравнений. Метод "спрямления горизонталей" позволяет получить топографическую поверхность, имеющую уклоны в двух направлениях, из которых выбирается оптимальный уклон для полива по бороздам или полосам.
В / 107 / учитывается категория рельефа и для особо выраженных высотных отметок вводится корректировка, для чего выбирается положение плоскости методом наименьших квадратов и изменяются его параметры, с учетом командной отметки. Анализируется разность между проектными и исходными отметками. Особо выраженными считаются те высотные отметки, для которых разность превышает по абсолютной величине заранее заданную величину. Далее, после корректировки высотных отметок, вычисляются отметки проектной плоскости вторично методом наименьших квадратов. По ходу вычисления проверяются технические условия, невыполнение которых приводит к корректировке тех или иных параметров.
Метод наименьших квадратов применяется и при проектировании под наклонную плоскость или системы плоскостей / 77 /. При этом данный метод используется для построения допустимой проектной поверхности, отдельно применяя его на каждой плоскости. Увязка между плоскостями достигается изменением уклонов плоскости. Направленное изменение уклонов обеспечивает в некоторых случаях и построение оптимальной поверхности. При этом также выполняются технические требования на каждую плоскость и на проектную поверхность в целом / 7 /.
При проектировании под плоскость или под систему плоскостей ставится задача линейного программирования и решается мультипликативным алгоритмом симплексного метода / 56 /. При увеличении ограничений и размера проектируемой площади эффективность такого подхода снижается. В / 89 / предложен алгоритм, основанный на построении системы наклонных плоскостей через точки, лежащие на границе и внутри участка, образующие исходную опорную сеть условий задачи. Далее внутри прямоугольников выбираются дополнительные точки, по возможности совмещенные с характерными точками микрорельефа (если их нет, то используется лишь опорная сеть). Все точки соединяются таким образом, что весь участок будет покрыт сплошной сетью треугольников. Для вычисления высотных отметок внутри каждого треугольника составлен алгоритм, основанный на вычислении посредством уравнения плоскости, проходящей через три известные точки. Вычисление всех высотных отметок на участке приводит к построению проектной поверхности, соответствующей всем техническим условиям при минимальном объеме срезаемого грунта.
При решении задач вертикальной планировки под систему наклонных плоскостей используются различные подходы метода перебора.
В алгоритме, предложенном в /102/, находятся поперечные уклоны по подучасткам и осредняются для всего участка. Перебирая строятся системы плоскостей без уступа и выбирается из них поверхность, минимальная по суммарному объему срезаемого грунта. В / 71, 131 / перебор осуществляется по значениям командной отметки с некоторым шагом А И , также при фиксированном среднем поперечном уклоне.
Алгоритм построения проектной плоскости
Алгоритм построения проектной плоскости Решение задачи (I.3.I), (1.3.27), (1.3.3) - (1.3.6) выбора высотного положения проектной плоскости строим по следующему методу.
Из /130/ известно, что плоскость, проходящая через свою среднюю отметку, обеспечивает выполнение условия Vc(o,fi,n) =
УнЫ,р,н) , т.е. баланс объемов срезаемого и насыпаемого грунта. Исходя из этого, мы также в дальнейшем везде будем строить все проектные плоскости или системы плоскостей через их средние отметки, в результате этого существенно облегчается и выполнение условий (1.3.4) или (1.3.II).
Определяем среднюю отметку С(Х,У, z) исходной плоскости, координаты средней отметки определяем как среднее арифметическое абсцисс
В случае С-., или ,a датчик псевдослучайных чисел выдает новые значения уклонов на отрезках J И о/у , о J .
Выбор А «і в системе осуществляется автоматически путем учета количества высотных отметок в пределах одной плоскости.
Если условие (1.3.4) выполняется, то считаем, что построили один из допустимых вариантов проектной плоскости со значениями о % и И на подмножестве Ь . Для построения следующего варианта проектной плоскости процесс вычислений повторяем заново, каждый раз при этом сужая область поиска р ш Н .
При построении системы плоскостей по модели (1.3.7), (1.3,28) с условиями (1.3.9)-(1.3.11), (1.3.ІЗ) в предлагаемом алгоритме положение первой проектной плоскости существенно влияет на построение системы проектных плоскостей.
Проверяем условие (1.3.9). Если оно не выполняется, то из . г (У) tJi л г о to меняем разбиение, иначе на отрезках Zc/mt.„, ахJ и L/ „,/ ,« ] получаем псевдослучайные значения и Д и определим / , подставив эти значения в (2.1.6). При этом, если //, М„ах то х = (2.2.5).
Сужая границы поиска уклонов первой плоскости, получаем новые значения о и повторяем процесс.
Если Л t/ ax , тогда через Нл с уклонами у и А строим первую проектную плоскость, высотные отметки которого определяем по (1.3.17). При построении плоскости проверяем условие (1.3.10), если оно не выполняется, то по (2.2.5) еще сужаем границы датчика псевдослучайных чисел и повторяем процесс. Далее вычисляем Vc (j,A,Ht) и VH ( t,fit,ttt) по формулам Vc ( е,А,Це) = гЕ2 1Е1 R(«t,fie.He, c yj) " » А&е АМ ЪфЯ2.2.6) c=fe j=i ч «-«- j (Є) We ft VH fre fie.t ZZ fi(""A " xfy ПРИ К.Ь,«е.х»%) - (2.2.7) и проверяем коэффициент балансировки (І.ЗЛІ). Выбор Дс/П у „г определяется автоматически по изложенному принципу.
При выполнении условия (1.3.II), считаем, что первая проектная плоскость построена и приступаем к построению следующей. Для этого, принимая Mg , как (2.2.10) через среднюю отметку второй плоскости, определяем " W? tss (2.2.П) и уточняем значение Не Z - ОС о/ А = 75 - 2 e s (2.2.12) Далее строим вторую плоскость. Путем направленного изменения по (2.2.8) или (2.2.9) пытаемся удовлетворить условие К С2 ) (1.3.II). При с/, « « происходит возврат к первой плос-кости и возобновляется поиск с С + Sj — - с . В общем случае при Ы.с оі„ х происходит возврат к предыдущей плоскости и который строится заново С .t + e — ъ/-е-,
Когда удовлетворены все условия (1.3.9) - (1.3.II) и (1.3.13), то приступаем к поиску третьей допустимой плоскости. При этом действуем аналогично изложенному.
Для выбора Р( \/,Н ) из %Ы ,А.Ъ), Ъ г,А ,нг),. также строим остальные системы проектных плоскостей.
В ходе работы алгоритма могут возникнуть ситуации, когда первая попытка построить проектную систему плоскостей на -ом подучастке ( = 2,5,,,, g ) неудачна по причине возникнове 34-ния отрицательного ole сС«„ или положительного 0 oCejr уклонов. В этом случае .» ,(Є) ЄСЛИ -е -гсИ то (2 при - четном VI при - нечетном если о ь,ад: , то «/= 2 при - нечетном .1 при - четном, где , и оіг подразумеваются как «,,-, и aJc
В результате такой ситуационной приспособляемости (самообучения) алгоритма последующая работа датчика связана с поиском случайных значений - на более коротком отрезке, что приближает найденное решение к оптимальному.
Модели диалога в иерархической структуре системы
Диалоговый режим решения оптимизационных задач, включающий широкий спектр модулей ПО и моделей диалога требует четкой структуры диалога. Эффективность системы "человек - ЭВМ" существенно зависит от методов оптимизации, их быстродействия и возможности изменения хода решения задачи при необходимости со стороны пользователя. При этом диалог должен иметь иерархическую структуру» где каждый этап должен иметь строгую логическую структуру и не должен вызывать двусмысленность. Диалоговая система может иметь и пакетный режим работы, дающий возможность работы с ней не только высококвалифицированного специалиста, но и оператора, которому известно лишь некоторое подмножество элементарных действий из множества действий Q системы. К подмножеству , в частности, относится ввод исходных данных и пуск на счет по некоторой модели, которую система синтезирует автоматически. Формальное описание структуры диалога наглядно можно представить в виде ориентированного графа (рис. 4-). Вершину графа представим как время Т , когда пользователь и ЭВМ обмениваются информацией, а дугу, выходящую из нее, время tH , за которое машина выполнила некоторую процедуру и перешла к очередной вершине. Тогда пару ( Т, і ) можно определить как шаг диалога. С выполнением модулей ПО наступает этап действий информацион ного множества функционального диалога. Здесь, когда инициатором диалога является пользователь, он может изменить ход решения задачи. В зависимости от изменения параметров процедура требо вания диалога может продолжаться с того шага, или вернуться на шаг назад. Диалоги такого типа можно представить ввиде ориен тированного графа с петлями и циклами (по вершине T/jt ).
В ходе выполнения этапа действий информационного множества могут возникать следующие ситуации вывода информации: - строка текста на естественном языке с указанием координат ошибочного элемента исходного массива; - строка текста на естественном языке; - строка текста по формату: параметр = текущее значение ; - множество строк текста на естественном языке; - множество строк текста по формату: параметру= текущее значение , [ параметр2 = текущее значение2 ..., пара 4-9 метрк = текущее значениек J и ввода информации по принятию решения; - замена одного или нескольких элементов массива (набор цифр); - изменение значения одного или нескольких параметров по формату вывода.
Эти ситуации совмещены в соответствующих диалоговых функциональных модулях, в процессе чего исследователь-проектировщик может повлиять на ход решения задачи.
Несомненно, модели диалога в данной системе занимают одну из ключевых позиций, дополняют и соединяют математическую базу с программной базой диалоговой системы. Логическую связь моделей диалога с основными подсистемами и блоками системы можно представит в виде графа (рис. 5).
Вершину графа можно представить как часть монитора, который управляет моделями диалога. Дуга, выходящая из нее, связывает ее с компонентами функционального и системного диалога. После действий с компонентами моделей диалога можно вернуться назад, что обозначено в графе циклом. Дуга и цикл между двумя вершинами означает интерфейс между ними. Как видно из рис. 5, информационное множество связано с генератором системы, который имеет интерфейс модулями ПО, остальные множества (кроме множества И ) связаны с одной нижней вершиной, т.е. универсальным процессором. После интерфейса с последним в вершинах ЙСБ (информационно-справочная база), БА, БС (блок сервиса) выполняются процедуры, заданные этими вершинами. Настройка системы проводится, как было изложено выше, по сценарию и поэтому оно не связано с вершинами нижнего уровня.
Программы-пакета имеют модульную структуру /54 /. Каждый модуль отвечает требованиям структурного программирования / 37, 49 /.
Структурная схема ППП "ПВП-І" приводится на рис. 7.
Монитор, являясь центральным звеном в ППП "ПВП-І", осуществляет внутреннее планирование и управление пакетом. Основными функциями монитора являются: - внутреннее управление данными; - управление блоками: справочник, инструктор, обмен; - управление подсистемами синтез и сервис; - управление универсальным процессором; - контроль за процессором генерации рабочих программ и их выполнением. Блоки "справочник" и "инструктор" являются невыполнимыми. "Справочник" предназначен для получения пользователем различных характеристик пакета: - функция и назначения модулей; - сведения о входном языке.
Функции "инструктора" состоят в выдаче непосвященному пользователю правил пользования пакетом.
Подсистема "синтез" предназначена для синтеза метода решения и составления алгоритма. Синтез метода осуществляется после анализа входной информации и (или) проектируемой площади на основании модели ПО.
Процессор предназначен для эффективного лексического, синтаксического и семантического анализа задания на проблемно-ориентированном языке описания задачи и перевода его во внутренний язык, а также для синтаксического анализа других средств диалога. . Блок лексического анализа предназначен для выделения базовых элементов и создания стандартных символов.
Блок " синтаксический анализ" распознает базовые синтаксические конструкции с использованием редукции, выдает сообщения об ошибках.
Блок семантического анализа определяет точные смысловые значения параметров, контролирует правильность конструкций в описании задания.
В БА алгоритмы каталогизируются в закодированном виде, т.е. во внутреннем языке. При записи алгоритма в БА в закодированное поле вносится имя алгоритма и дата рождения. При использовании алгоритмов из БА повторная трансляция алгоритма не производится, и он автоматически выполняется. Средства отладки позволяют внести изменения в алгоритм, который после этого может быть выполнен или нет.
Проблемно-ориентированный входной язык ЯППОЗ
При лексическом анализе распознается номер оператора и терминальные символы-операторы и их функции, которые помещаются в векторе лексем.
Номер первого оператора каждой программы должен начинаться с единицы и увеличиваться по порядку. Это требование создает удобства пользователю при внесении локальных изменений в программу. При отсутствии номера выдается соответствующая ошибка. Затем вектор лексем сравнивается с элементами таблицы терминальных символов, так как во входном языке можно использовать и сокращенный аналог операторов, то сначала проверяется длинный оператор, а потом - его сокращенный аналог, Если лексем, стоящий после номера, является терминальным символом, то для дальнейшего анализа включается синтаксический анализатор, в обратном случае - выдается сообщение об ошибке. После выдачи сообщений об ошибке на терминал или дисплей во всех этапах трансляции, где указывается позиция ошибки, пользователь может тут же исправить ошибочный текст, при этом транслируется только исправленный оператор. При работе с первой частью входного языка, когда много параметров в операторе ВВОД, исправление и ввод нового текста оператора опять может привести к ошибке. Поэтому при работе с оператором ВВОД процессор дает возможность исправления ошибочного параметра или оператора и их повторного ввода.
Синтаксический анализатор предназначен для распознавания основных конструкций входного языка и вызова соответствующих подпрограмм для построения кода. Синтаксический анализ каждого оператора осуществляется в соответствующей ему подпрограмме на основе редукций, где и определена конструкция каждого оператора.
Базами данных на данном этапе являются: Вектор лексем - созданный при лексическом анализе.
Таблица параметров - постоянная база данных. Символы внутреннего языка - все символы, используемые в ЕС ЭВМ. Эти символы используются для представления операторов внутри процессора некоторой последовательностью символов.
Код - представление программы на внутреннем языке. Код используется также при семантическом анализе, при синтезе алгоритмов, при работе генератора программы, работе сервисных операторов и при каталогизации программы.
Иначе говоря, код - это стек, его дальнейшее использование при синтезе алгоритма и при работе генератора системы производится по принципу "первым вошел, первым вышел".
Редукция - синтаксические правила. Синтаксический анализатор и подпрограммы, подчиненные ему, работают с редукциями. Выделение редукции на рисунке является чисто логическим, так как в синтаксическом анализаторе редукции заложены в самих подпрограммах.
Векторы цикла - (Q,W,K ), используемые для генерации рабочей программы при присутствии операторов цикла в программе.
Синтаксический анализатор работает по следующему алгоритму. В соответствии с первым элементом вектора лексем вызывается соответствующая подпрограмма, а в поле кода засылается нужный символ. Номер позиции этого символа, как начало кодируемого оператора, записывается в вектор В. Далее по редукции, существующей в данной подпрограмме, проверяется конструкция оператора по следующим элементам вектора. Если очередной лексем - нетерминальный символ, то выдается соответствующая диагностика, иначе в поле кода на очередную позицию засылается символ, соответствующий терминальному символу и т.д., пока не рассмотрены все элементы вектора лексем.
Семантический анализатор определяет точные смысловые назначения функции (параметров операторов ЯППОЗа.
Если, например, нарушена последовательность терминальных символов внутри группы оператора ВВОД, то в поле кода анализатор сам автоматически изменяет последовательность. Если пропущен один из терминальных символов, необходимый в данном строке оператора, то этот терминальный символ добавляется по умолчанию в нужное место в поле кода.
Отделение семантического анализатора от синтаксического является чисто логическим, так как вышеперечисленные функции синтаксического и семантического анализа реализованы в каждой подпрограмме вместе. Базой данных для семантического анализатора является код.
После успешной трансляции производится глобальный семантический анализ программы, в которой выявляются операторы, использованные с одними и теми же "функциями" дважды или болве раз. На основании модели предметной области, которая хранится в аиде таблицы решения, выявляются операторы, которые были использованы не в требуемой последовательности.