9 Графические языки



Скачать 149.8 Kb.
Дата06.06.2016
Размер149.8 Kb.
9. .Графические языки

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

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

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

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

Языковые средства преобразования изображений предназначены для преобразования различного рода действий над геометрическими образами (масштабирование, смещение, поворот, слияние, удаление).

Эти средства оформляются в виде операторов:


  • выполняющие общие организующие действия;

  • строящие геометрические примитивы;

  • выполняющие сложные построения;

  • служебные и вспомогательные операторы.

10. Технологические языки

Современные САПР наряду с выполнением конструкторской документации позволяет проектировать программы изготовления проектируемых объектов на технологическом оборудовании с ЧПУ. Языковой основой такого проектирования являются проблемно-ориентированные технологические языки оборудования с ЧПУ.

Технологические языки можно рассматривать как развитие графических. Проектное решение оформляется в виде геометрического образца.

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

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

Основным структурным элементом технологических языков является оператор. Подразделяется на описывающий и выполняемый.



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

12. Языки программирования кодового уровня

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

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

Машинным словом называется обычно последовательность из 8-ми двоичных цифр.

По формату систему команд можно разделить на 2 категории:



  1. безадресные, т.е. команды, не имеющие ссылки на данные. Содержат только код операции, указывающий действие, которое должно быть выполнено (останов, сброс, возврат). Команды этого формата обычно образуют 1 машинное слово;

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

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

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

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

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

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

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

13. Языки программирования низкого уровня

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

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

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

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



14. Языки программирования высокого уровня

Языками программирования высокого уровня (или процедурно-ориентированными языками) называются языки задания алгоритмов решения определенного класса задач в терминах и понятиях, характерных и наиболее эффективных для этого класса.

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

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

Представление алгоритма решения задачи на процедурно-ориентированном языке заключается в указании последовательности процедурных шагов, конкретизирующих вычислительный процесс. При этом типичными процедурными шагами являются ввод данных, выборка значений, вычисления по формулам, присваивания значений переменным, проверка логических условий, передача управления определенным шагам, вывод данных. Выражение этих действий производится в терминах допустимых типов данных, типов операций и механизмов управления последовательностью применения операций и данных. Различие в содержании этих понятий обусловливают основные различия языков программирования высокого уровня. Наибольшее распространение в САПР получили языки высокого уровня Фортран, ПЛ/1, Бейсик, Паскаль.



16. Назначение фазы лексического анализа

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

  • класс лексемы, определяющий общее название для категории элементов, обладающих общими свойствами (например, идентификатор, целое число, строка символов и т. д.);

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

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

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

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

  • Один и тот же язык программирования может иметь различные внешние представления элементарных конструкций. Поэтому, наличие нескольких лексических анализаторов, порождающих на выходе одно и то же множество лексем, позволяет не переписывать синтаксический анализатор. Написать новый лексический анализатор намного проще, чем синтаксический. Примером языка, имеющего различные входные наборы символов, является PL/1. Для него определены 48-символьный и 60-символьный алфавиты.

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

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

27-31. Способы записи синтаксического языка

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



Метаязык Хомского

  • символ “” отделяет левую часть правила от правой (читается как "порождает" и "это есть");

  • нетерминалы обозначаются буквой А с индексом, указывающим на его номер;

  • терминалы - это символы используемые в описываемом языке;

  • каждое правило определяет порождение одной новой цепочки, причем один и тот же нетерминал может встречаться в нескольких правилах слева.

Метаязык Хомского-Щутценберже


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

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



  • символ "=" отделяет левую часть правила от правой (вместо символа "P" – читается как «порождает» или же «это есть»);

  • нетерминалы обозначаются буквой А с индексом, указывающим на его номер;

  • терминалы - это символы используемые в описываемом языке;

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

Введение возможности альтернативного перечисления позволило сократить описание языков.

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



  1. A1=A+B+C+D+E+F+G+H+I+J+K+L+M+N+O+P+Q+R+S+T+U+V+W+X+Y+Z+a+b+c+d+e+f+g+h+i+j+k+l+m+n+o+p+q+r+s+t+u+v+w+x+y+z ;

  2. A2=0+1+2+4+5+6+7+8+9 ;

  3. A3=A1+A3A1+A3A2 .


Бэкуса-Наура формы (БНФ)


Метаязыки Хомского и Хомского-Щутценберже использовались в математической литературе при описании простых абстрактных языков. Метаязык, предложенный Бэкусом и Науром, впервые использовался для описания синтаксиса реального языка программирования Алгол 60. Наряду с новыми обозначениями метасимволов, в нем использовались содержательные обозначения нетерминалов. Это сделало описание языка нагляднее и позволило в дальнейшем широко использовать данную нотацию для описания реальных языков программирования. Были использованы следующие обозначения:

  1. символ "::=" отделяет левую часть правила от правой;

  2. нетерминалы обозначаются произвольной символьной строкой, заключенной в угловые скобки "<" и ">";

  3. терминалы - это символы, используемые в описываемом языке;

  4. каждое правило определяет порождение нескольких альтернативных цепочек, отделяемых друг от друга символом вертикальной черты "|".

Пример описания идентификатора с использованием БНФ:

  1. <буква> :: = А|В|С|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|
    W|X|Y|Z|a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z

  2. <цифра> :: = 0|1|2|3|4|5|6|7|8|9

  3. <идентификатор> ::= <буква> | <идентификатор><буква> |
    <идентификатор><цифра>

Правила можно задавать и раздельно:

  1. <идентификатор> :: = <буква>

  2. <идентификатор> :: = <идентификатор> <буква>

  3. <идентификатор> :: = <идентификатор> <цифра>


Расширенные Бэкуса-Наура формы (РБНФ)


Метаязыки, представленные выше, позволяют описывать любой синтаксис. Однако, для повышения удобства и компактности описания, целесообразно вести в язык дополнительные конструкции. В частности, специальные метасимволы были разработаны для описания необязательных цепочек, повторяющихся цепочек, обязательных альтернативных цепочек. Существуют различные расширенные формы метаязыков, незначительно отличающиеся друг от друга. Зачастую такие языки называются расширенными формами Бэкуса-Наура (РБНФ).

В частности, РБНФ, используемые Виртом, имеют следующие особенности:



  1. Квадратные скобки "[" и "]" означают, что заключенная в них синтаксическая конструкция может отсутствовать;

  2. фигурные скобки "{" и "}" означают ее повторение (возможно, 0 раз);

  3. круглые скобки "(" и ")" используются для ограничения альтернативных конструкций;

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

Если нетерминал состоит из нескольких смысловых слов, то они должны быть написаны слитно. В этом случае для повышения удобства в восприятии фразы целесообразно каждое ее слово начинать с заглавной буквы или разделять слова во фразах символом подчеркивания. Терминальные символы изображаются словами, написанными буквами латинского алфавита (зарезервированные слова) или цепочками знаков, заключенными в кавычки. Синтаксическим правилам предшествует знак "$" в начале строки. Каждое правило оканчивается знаком "." (точка). Левая часть правила отделяется от правой знаком "=" (равно), а альтернативы - вертикальной чертой "|". Этот вариант РБНФ и будет использоваться для описания синтаксиса языков в лабораторной работе. В соответствии с данными правилами синтаксис идентификатора будет выглядеть следующим образом:

$ буква = "A"|"B"|"C"|…|"Z"|"a"|"b"|"c"|…|"z".

$ цифра = "0"|"1"|"2"|"3"|"4"|"5"|"6"|"7"|"8"|"9".

$ идентификатор = буква {буква | цифра}.


Диаграммы Вирта


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

c:\documents and settings\маньковы\рабочий стол\способы записи синтаксиса языка.files\fig02-01.gif

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


Вопросы к экзамену по дисциплине «Лингвистическое и программное обеспечения»


  1. Понятие автоматизации проектирования и его лингвистического обеспечения.

  2. Общая характеристика лингвистического обеспечения САПР.

  3. Общая характеристика языков проектирования.

  4. Основные части лингвистического обеспечения САПР.

  5. Базовое и управляющее лингвистическое обеспечение. Краткая характеристика.

  6. Управляющее лингвистическое обеспечение.

  7. Основные виды человеко-машинного общения.

  8. Диалоговые и директивные языки.

  9. Графические языки.

  10. Технологические языки.

  11. Базовое лингвистическое обеспечение.

  12. Языки программирования кодового уровня.

  13. Языки программирования низкого уровня.

  14. Языки программирования высокого уровня.

  15. Системы классификации и кодирования в языках проектирования.

  16. Назначение фазы лексического анализа.

  17. Особенности языков программирования.

  18. Иерархия программных объектов. Синтаксический разбор.

  19. Обобщенная структура транслятора. Основные фазы.

  20. Варианты взаимодействия блоков транслятора. Дать общее описание.

  21. Многопроходная организация взаимодействия блоков транслятора.

  22. Однопроходная организация взаимодействия блоков транслятора.

  23. Комбинированные взаимодействия блоков транслятора (компилятора, интерпретатора).

  24. Способы определения языков.

  25. Понятие формальных грамматик.

  26. Грамматики с ограничениями на правила.

  27. Способы записи синтаксиса языка. Метаязык Хомского.

  28. Способы записи синтаксиса языка. Метаязык Хомского-Щутценберже.

  29. Способы записи синтаксиса языка. Бэкуса-Наура формы (БНФ).

  30. Способы записи синтаксиса языка. Расширенные Бэкуса-Наура формы (РБНФ).

  31. Способы записи синтаксиса языка. Диаграммы Вирта.

  32. Назначение и необходимость фазы лексического анализа.

  33. Транслитератор

  34. Методы лексического анализа. Непрямой лексический анализатор.

  35. Методы лексического анализа. Прямой лексический анализатор.

  36. Назначение синтаксического разбора.

  37. Классификация методов синтаксического разбора.

  38. Методы синтаксического разбора.

  39. Последовательность синтаксического разбора.

  40. Методы синтаксического разбора. Использование просмотра вперед и возвратов.

  41. Сравнительный анализ широко используемых языков программирования.

  42. Средства визуального программирования.


Каталог: %D0%A3%D0%BD%D0%B8%D0%B2%D0%B5%D1%80 -> %D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0 %D0%A1%D0%90%D0%9F%D0%A0
%D0%A3%D0%BD%D0%B8%D0%B2%D0%B5%D1%80 -> Программа санкт-Петербург 2016
%D0%A3%D0%BD%D0%B8%D0%B2%D0%B5%D1%80 -> Лекции 28 час практические занятия 0 час лабораторные работы 8 час
%D0%A3%D0%BD%D0%B8%D0%B2%D0%B5%D1%80 -> Учебно-методический комплекс дисциплины проектирование конструкций
%D0%A3%D0%BD%D0%B8%D0%B2%D0%B5%D1%80 -> Учебная программа «Информатика и информационные технологии»
%D0%A3%D0%BD%D0%B8%D0%B2%D0%B5%D1%80 -> Инструкция по информатизации сферы государственной молодежной политики Красноярского края: методические рекомендации. Красноярск: ООО новые компьютерные технологии, 2012. 44 с
%D0%A3%D0%BD%D0%B8%D0%B2%D0%B5%D1%80 -> Тематика комплексных междисциплинарных курсовых работ по дисциплинам «Бухгалтерский финансовый учет» и «Финансовый анализ» для студентов 3 курса бакалаврита, обучающихся по направлению 080100. 62
%D0%A3%D0%BD%D0%B8%D0%B2%D0%B5%D1%80 -> Учебно-методический комплекс дисциплины Научно-исследовательский семинар \"Математическое моделирование механических систем и процессов\"


Поделитесь с Вашими друзьями:


База данных защищена авторским правом ©uverenniy.ru 2019
обратиться к администрации

    Главная страница