Программный подход при управлении станками



Мы поможем в написании ваших работ!


Мы поможем в написании ваших работ!



Мы поможем в написании ваших работ!


ЗНАЕТЕ ЛИ ВЫ?

Программный подход при управлении станками



 

При разработке управляющих программ для станков с ЧПУ основным кодом остаётся семиразрядный буквенно-цифровой код ISO-7bit. Код предназначен для записи информации на восьмидорожковой перфоленте. Приведем обобщающее описание кода.

Мощность алфавита кода ISO-7bit равна 128 символам. Первым четырем дорожкам перфоленты приписаны веса двоично-десятичного кода 1-2-4-8 (двоичная комбинация в строке может иметь различный десятичный вес). Таким образом, в любой строке могут быть закодированы числа от 0 до 15. Эти числа могут являться собственно числами, буквами, знаками в зависимости от кода признака на пятой-седьмой дорожках. Ключ к коду ISO-7bit представлен в таблице 2.1.

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

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

Переходя к структуре управляющей программы ЧПУ, заметим, что ее основным информационным блоком является кадр. Кадр содержит слово «Номер кадра» и одно или несколько других слов: «Подготовительная функция», «Размерные перемещения», «Функция подачи», «Скорость главного движения», «Функция инструмента», «Вспомогательная функция». Кадр завершается разделителем LF («Конец кадра»), который, хотя и обозначается двумя буквами, на самом деле представляет собой один символ.

Слово «Номер кадра» является его именем, состоит из адреса N и целого десятичного числа. В главном кадре управляющей программы вместо имени используют символ «:».

 

Таблица 2.1 – Ключ к коду ISO-7bit

Кодируемые символы или их группы Числовое представление на первых четырех дорожках Номер дорожки, используемой для формирования кода признака
Числа от 0 до 9 : Буквы A-O Буквы P-Z DEL % (…) +,-, ., / NUL LF 0-9 1-15 0-10 8-9 11, 13, 14, 15 5, 6 5, 6 5, 7 5, 6, 7 - -

 

Слово «Подготовительная функция» содержит адрес G и условный двухразрядный десятичный код; таким образом, предусмотрено сто подготовительных функций G00-G99. Значения некоторых подготовительных функций указаны в таблице 2.2. Эти значения соответствуют рекомендациям ГОСТ, однако в конкретных устройствах ЧПУ могут быть отклонения, что оговаривается методикой программирования.

 

Функция Название Значение

Таблица 2.2 – Значения подготовительных функций

G00 Позиционирование Отмена координатной связи, ускоренное перемещение в заданную точку
G01 Линейная интерполяция Установка постоянного отношения между скоростями по оси координат
G02 Круговая интерполяция Движение исполнительного органа по часовой стрелке, если смотреть со стороны положительного направления оси, перпендикулярной к обрабатываемой поверхности
G03 Круговая интерполяция Движение против часовой стрелки
G04 Пауза Выдержка времени, заданная в программе или в самом устройстве ЧПУ вне программы
G08 Разгон Автоматическое увеличение скорости движения до запрограммированной в кадре
G09 Торможение Автоматическое уменьшение скорости движения до нуля или до запрограммированной в следующем кадре
G16* Пространственная интерполяция Объединение вариантов плоской интерполяции в одном кадре
G17-G19 Плоскость обработки Выбор плоскости обработки соответственно XY, XZ, YZ для задания плоскости интерполяции, плоскости коррекции на размеры инструмента
G25* Циклическое повторение Повторение группы кадров или программы
G26*-G27* Условный переход   Проверка выполнения условий соответственно «больше», «меньше»
G28*-G29* Безусловный переход Выполнение перехода соответственно на кадр и на программу
G30* Семафор Установка семафора и его значения с целью синхронизации разных программ в устройствах ЧПУ, ГПМ
G31* Прерывание Прерывание выполнения программы на основании проверки значения семафора
G40 Отмена коррекции Отмена коррекции контура на размеры инструмента
G41-G42 Коррекция на радиус фрезы Коррекция, когда инструмент находится соответственно слева и справа от обрабатываемой поверхности, если смотреть в направлении движения инструмента
G43-G44 Коррекция длины инструмента Указание, что значение коррекции на длину инструмента необходимо соответственно сложить с координатой, заданной в кадре
* Указывает на неузаконенную подготовительную функцию

 

 

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

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

Сложным словом «Размерные перемещения» задают геометрическую информацию. При этом могут быть использованы адреса: X, Y, Z, U, V, W, P, Q, R, I, J, K, A, B, C, D, E.

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

Числовые части простых слов в составе «Размерных перемещений» могут быть построены одним из двух способов в зависимости от внутренней организации переработки информации в устройстве ЧПУ. В первом способе десятичная точка не предусмотрена, а её фактическое положение определено в характеристике формата конкретного устройства ЧПУ. Во втором способе положение десятичной точки указано явно. Примеры одинаковых слов, соответствующих первому и второму способам: X0288400, X288.4.

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

На участке ускоренного перемещения (рисунок 2.1 а) в конечном счете требуется лишь попасть в заданную точку T1, а промежуточная траектория безразлична. На участке линейной интерполяции (рисунок 2.1 б) движение инструмента осуществляется с максимальным приближением к заданной прямой Т0 Т1. На участке круговой интерполяции (рисунок 2.1 в) траектория движения инструмента определяется геометрическими параметрами дуги Т0 Т1 Т2. Во всех случаях начальным положением инструмента является точка Т0, в которую инструмент попал по результатам отработки предыдущего кадра. Таким образом, координаты х0, у0 точки Т0 полагаются известными; исходя из этого обстоятельства, в слове «Размерные перемещения» задают такие геометрические параметры участка траектории, при которых его пространственное положение стало определённым.

Варианты задания траектории движения для плоскости ХY показаны в таблице 2.3.

 

 


а) б) в)

 

Рисунок 2.1 – Способы движения вдоль заданной траектории: а) на участке ускоренного
неинтерполируемого перемещения; б) при линейной интерполяции; в) при круговой
интерполяции

 

 

Таблица 2.3 – Задание траектории движения в кадре в зависимости от способа движения и способа определения геометрических параметров

Способ движения на участке траектории Указание на способ движения Способ определения геометрических параметров участка траектории Указание на способ определения параметров Расчет числовой части слов, входящих в сложное слово «Размерные перемещения»  
Ускоренное перемещение (см. рисунок 2.1 а) G00 Абсолютные координаты конечной точки Координаты конечной точки относительно начальной точки G90 [X] = x1; [Y] = y1    
G91 [X] = x1 – x0 [Y] = y1 – y0    
Линейная интерполяция (см. рисунок 2.1 б) G01 Абсолютные координаты конечной точки Координаты конечной точки относительно начальной G90 [X] = x1; [Y] = y1    
G91 [X] = x1 – x0 [Y] = y1 – y0    
Круговая интерполяция по часовой стрелке G02 Абсолютные координаты конечной точки и центра окружности G90 [X] = x2; [Y] = y2 [I] = xц; [J] = yц    
Абсолютные координаты промежуточной и конечной точек окружности в двух смежных кадрах [X] =x1; [Y] = y1 (1-й кадр) [X] = x2; [Y] = y2 (2-й кадр)    
    [X] = x2; [Y] = y2; [I] = a; [J] = r    
Абсолютные координаты конечной точки, угол и радиус    
Координаты конечной точки и центра окружности относительно начальной точки G91 [X] = x2 – x0; [Y] = y2 – y0 [I] = xц – x0; [J] = yц – y0    
Координаты промежуточной точки относительно начальной и конечной точек относительно промежуточной в двух смежных кадрах [X] = x1 – x0 [Y] = y1 – y0 (1-й кадр) [X] = x2 – x1 [Y] = y2 – y1 (2-й кадр)    
    [Х] = х2 – х0 [У] = у2 – у0 [I] = α; [J] = r    
Координаты конечной точки относительно начальной, угол и радиус    
Примечание - Буква в квадратных скобках означает числовую часть слова с таким же адресом    
                 

Слово «Функция подачи» может определять как регулирующую (контурную) скорость подачи, так и составляющие этой скорости, разложенной по координатным осям. Результирующую скорость подачи записывают под адресом F после всех слов «Размерных перемещений». Составляющую скорости подачи, относящуюся к определённой координатной оси, записывают под адресом F сразу же после слова, задающего размерное перемещение по этой оси.

Слово «Скорость главного движения» записывают с адресом S. Слово «Функция инструмента» используют для выбора (поиска) инструмента. Слово «Вспомогательная функция» содержит адрес M и предназначено для организации дискретного управления: объектом (М00 – М02), главным приводом (М03 – М05, М13 – М14, М19, М38 – М39), приводом подачи (М36 – М37, М40 – М45), системой охлаждения (М07 – М09, М50 – М51), инструментом (М06, М55 – М56), деталью (М10 – М11, М60 – М62, М71 – М72). Пояснения относительно вспомогательных функций приводились ранее в таблице 1.2.

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

N04G2X + 053Y + 053Z + 042F031S04T03M2LF.

Правила построения этой записи таковы:

– слова обозначают символами их адресов и описанием их числовой части;

– обозначения следуют в принятой для кадра последовательности;

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

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

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

– другой вариант описания числовой части каждого слова «Размерные перемещения» состоит в том, что за адресом каждого слова записывают три цифры, первая или последняя из которых нуль – в зависимости от того, можно ли опустить нули перед первой или последней значащей цифрой, а другие две цифры имеют тот же смысл, что и в предыдущем варианте;

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

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

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

Полная структура управляющей программы показана на рисунке 2.2. Перед её началом записывают комментарий, в котором приведены номер чертежа, наименование детали, модель станка с ЧПУ, фамилия технолога-программиста, дата разработки и др. Комментарий помещают в скобках и устройством ЧПУ он игнорируется. Начало управляю-щей информации обозначают символом «%», вслед за которым указывают номер управляющей программы. Далее следуют кадры, в числе которых могут быть: главный (помечаемый символом «:»), обычные (открываемые словом «Номер кадра»), пропускаемые при наличии подтверждения с панели оператора (дополнительно помечаемые символом «/»), содержащие обращения к подпрограммам (при помощи слова «Номер подпрограммы», например, с адресом L).

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

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

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

Грамматика языка (примем для нее обозначение Г) определяется четверкой компонентов (Р, Т, α, σ), где каждый компонент четверки означает множество: Р – множество правил грамматики; Т – словарь используемых языковых символов, называемых терминальными символами (или просто терминалами); α – множество синтаксических переменных, называемых нетерминальными символами (или просто нетерминалами);
σ – начальная переменная.

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

Приведем примеры терминалов и нетерминалов языка ISO-7bit:

T = {A, B, C,…, Z, 0…9, NUL, DEL, LF, +, …};

α = {<кадр>, <номер кадра>, <подготовительная функция>, <размерные перемещения> …}. Нетерминалы свободно выбирает разработчик грамматики, они соответствуют его представлениям о фрагментации грамматических конструкций.

Один из нетерминалов является начальной переменной, им будет тот, который является обобщающим наименованием всех порождаемых в языке предложений. Допустим, грамматика определяет все допустимые тексты управляющих программ ЧПУ. Тогда в качестве начальной переменной удобно принять σ = <управляющая программа>.

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

Приведем фрагмент правил Р языка ISO-7bit: Р = {<подготовительная функция>→G <цифра> <цифра>; <цифра>→0; <цифра>→1; <цифра>→2…<цифра> → 9}.

В этом фрагменте: Т={G, 0 … 9}; α={<подготовительная функция>, <цифра>}.

Подставляя одно правило в другое, получим все допустимые варианты <подготовительных функций>; G00…G99.

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

Особенности этих грамматик таковы, что автоматная грамматика является в то же время контекстно-свободной, контекстно-зависимой и грамматикой с фазовой структурой. Контекстно-свободная грамматика является наряду с этим контекстно-зависимой и грамматикой с фазовой структурой; контекстно-зависимая является одновременно грамматикой с фазовой структурой.

Грамматика с фазовой структурой является наиболее общей из четырех классов грамматик. Её единственным ограничением является то, что левая часть каждого правила должна быть составлена только из нетерминалов по типу: (непустая цепочка нетерминалов) → (любая, в том числе и пустая, цепочка терминалов и нетерминалов). Абстрактными примерами правил грамматики с фразовой структурой могут быть: α1 α2 α3 → Т1 Т2 Т3 α4 Т4 α5 α6 Т6; α4 → α6 Т4; α5 α6 → α7 α1 Т1… .

Контекстно-зависимая грамматика накладывает на форму правил грамматики с фазовой структурой дополнительное ограничение, в соответствии с которой левая и правая части каждого правила содержат «контекст нетерминалов». Правила для этой грамматики выглядят так: (цепочка нетерминалов u1 * нетерминал * цепочка нетерминалов u2) →
(цепочка нетерминалов u1 * любая непустая цепочка * цепочка нетерминалов u2). Здесь символ * является условным разделителем, который в практической записи правила отсутствует.

Особенностью контекстно-зависимой грамматики является то, что замена нетерминала на некоторую непустую цепочку (в порядке подстановки одного правила в другое) возможна лишь в контексте с цепочками u1 и u2 (слева и справа), причем одна из цепочек может быть пустой. В некоторых правилах пустыми могут оказаться обе цепочки u1 и u2. Приведем абстрактные примеры правил грамматики этого класса: a1→a1 a2; a1 a2→a1 a3; a3→T1 T2 a1… В первом и третьем правилах u1 и u2 – пустые цепочки. Во втором правиле u1=a1, u2 – пустая цепочка.

Контекстно-свободная грамматика вносит дополнительное ограничение в форму правил контекстно-зависимой грамматики: цепочки u1 и u2 должны быть пустыми не в отдельных правилах (как в только что приведенном примере), а сами правила должны иметь вид: (один нетерминал) – (любая, в том числе и пустая цепочка). Примерами могут служить такие правила: a1→a2; a2→T1 T2 a1

Автоматная, или регулярная, грамматика располагает ещё более жесткими ограничениями, состоящими в том, что правая часть всех правил должна начинаться с терминала; кроме того, в правой части правила может быть только один нетерминал. Общая форма автоматной грамматики: (один нетерминал) – (цепочка терминалов или один терминал * один нетерминал, он может быть пустой). Примеры, иллюстрирующие автоматную грамматику: а1→Т1 а2; а2→Т2 Т3 Т4 а3; а2→Т2 Т5 а4

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

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

Построим некоторую версию грамматики языка ISO-7bit, имея в виду формат кадра управляющей программы, представленный выше в формальном виде.

Определим словарь T используемых терминальных символов:

T={%, LF, +, -, ., 0…9, F, G, I, J, K, M, N, S, T, X, Y, Z}.

Введём словарь нетерминалов:

σ = <управляющая программа>, α = {<номер программы>, <кадр>, <номер кадра>, <тело кадра>, <подготовительная функция>, <размерные перемещения>, <функция подачи>, <скорость главного движения>, <функция инструмента>, <вспомогательная функция>, <перемещение параллельно оси>, <параметр интерполяции>, <перемещение по X>, <перемещение по Y>, <перемещение по Z>, <целая часть для X,Y>, <дробная часть>, <целая часть для Z>, <дробная часть для Z>, <целая часть для F>, <дробная часть для F>, <одноразрядное число>, <двухразрядное число>, <трёхразрядное число>, <четырёхразрядное число>, <пятиразрядное число>, <цифра>}.

Составим правила P грамматики Г. При написании правил принято: вертикальная черта есть символ логической операции ИЛИ; в квадратных скобках обозначена необязательная часть, а в фигурных скобках – такая часть, которая может повторяться: <управляющая программа> → % <номер программы> {<кадр>} M02LF; <номер программы> → <четырёхразрядное число>; <кадр> → <номер кадра>; <номер кадра> → N <одноразрядное число> <тело кадра> | N <двухразрядное число> <тело кадра> | N <четырёхразрядное число> <тело кадра>; <тело кадра> → <подготовительная функция> | <размерные перемещения> | <функция подачи> | <скорость главного движения> | <функция инструмента> | <вспомогательная функция> | LF; <подготовительная функция> → {G <двухразрядное число>} <тело кадра>; <размерные перемещения> → {<перемещение параллельно оси>} | {<параметр интерполяции>} | <тело кадра>; <перемещение параллельно оси> → X <перемещение по X> <размерные перемещения> | Y <перемещение по Y> <размерные перемещения> | Z <перемещение по Z> <размерные перемещения>; <параметр интерполяции> → I <перемещение по X> <размерные перемещения> | J <перемещение по Y> <размерные перемещения> | K <перемещение по Z> <размерные перемещения>; <перемещение по X> → [+]<целая часть для X,Y>. <дробная часть> | - <целая часть для X,Y>. <дробная часть>; <перемещение по Y> → [+] <целая часть для X,Y>; <дробная часть> | - <целая часть для X,Y> <дробная часть>;<перемещение по Z> → [+] <целая часть для Z>. <дробная часть для Z> | - <целая часть для Z>.<дробная часть для Z>; <целая часть для X,Y> → <одноразрядное число> | <двухразрядное число> | <трёхразрядное число> | <четырёхразрядное число> | <пятиразрядное число>; <дробная часть> → <трёхразрядное число>; <целая часть для Z> → <одноразрядное число> | <двухразрядное число> | <трёхразрядное число> | <четырёхразрядное число>; <дробная часть для Z> → (двухразрядное число); <функция подачи> ® F <целая часть для F>. <дробная часть для F> <тело кадра>; <целая часть для F>® <одноразрядное число> ½<двухразрядное число> ½ <трехразрядное число>; <дробная часть для F>® <одноразрядное число>; <скорость главного движения >® S <одноразрядное число > <тело кадра> ½ S<двухразрядное число> <тело кадра> ½ S <трехразрядное число> <тело кадра > ½ S <четырехразрядное число> <тело кадра > ; <функция инструмента> ® T <одноразрядное число> <тело кадра> ½ T <двухразрядное число> <тело кадра> ½ T <трехразрядное число> <тело кадра>; <вспомогательная функция> ® M <двухразрядное число > <тело кадра>; <одноразрядное число > ® <цифра>; <двухразрядное число> ® <цифра> <цифра> ; <трехразрядное число> ® <цифра> <цифра> <цифра>; <четырехразрядное число> ® <цифра> <цифра> <цифра> <цифра>; <пятиразрядное число> ® <цифра> <цифра> <цифра> <цифра> <цифра>; <цифра> ® 0½1½2½3½4½5½6½7½8½9.

Удобным и наглядным графическим образом правил грамматики являются синтаксические диаграммы (рисунок 2.3).

Каждая синтаксическая диаграмма описывает одно или несколько правил грамматики. На рисунке 2.3 приведены три синтаксические диаграммы, где отражены некоторые правила грамматики языка ISO-7bit. Каждая синтаксическая диаграмма имеет заголовок, в качестве которого выступает раскрываемый диаграммой нетерминал. Таким образом, заголовок эквивалентен левой части правила, а сама диаграмма – правой его части; это возможно с учетом подстановок одних правил в другие.

Синтаксическая диаграмма имеет вход (левая вертикальная линия) и выход (правая вертикальная линия). Между входом и выходом расположены допустимые альтернативные цепочки терминалов (размещены в кружочках) и нетерминалов (размещены в прямоугольниках).

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

 



Последнее изменение этой страницы: 2016-07-14; просмотров: 131; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 35.153.166.111 (0.009 с.)