Лингвистическое обеспечение
Лекция 2 Лингвистическое обеспечение
2.1 Классификация языков САПР. Языки проектирования
2.2 Классификация языков программирования
2.3 Трансляторы: основные принципы работы
2.1 Классификация языков САПР. Языки проектирования
Рекомендуемые материалы
Составной частью общего (системного) программного обеспечения являются системы программирования с соответствующими алгоритмическими языками.
Классификация языков САПР представлена на рисунке 2.1.
Рисунок 2.1 – Классификация языков САПР
Языки программирования предназначены для написания программного обеспечения.
Языки проектирования предназначены для описания информации об объектах и задачах проектирования.
Среди языков проектирования выделяют языки входные, выходные, сопровождения, управления, промежуточные и внутренние.
Входные языки служат для задания исходной информации об объектах и задачах проектирования и включают в себя языки описания объектов и языки описания заданий.
Языки описания объектов служат для описания свойств проектируемых объектов, а языки описания заданий – для описания заданий на выполнение проектных операций и процедур.
В свою очередь, языки описания объектов делятся на языки схемные, графические и моделирования. Эти языки используются для описания исходной информации, представленной в виде, соответственно, некоторой схемы, конструкторского чертежа, алгоритма функционирования. Языки программирования, или алгоритмические языки, классифицируются: по степени их зависимости от вычислительной машины; назначению (ориентации на ту или иную сферу применения); специфике организационной структуры языковых конструкций и т.п. [2].
Схемные языки широко применяют при описании принципиальных электрических схем в подсистемах проектирования электронных устройств, функциональных схем в подсистемах функционально-логического проектирования ЭВМ.
Графические языки – основа лингвистического обеспечения в подсистемах геометрического моделирования и машинной графики.
Языки моделирования развиты в подсистемах имитационного моделирования систем массового обслуживания.
Выходные языки используются для выражения результатов выполнения проектных процедур на ЭВМ.
Языки сопровождения – для корректировки и редактирования данных при выполнении проектных процедур.
Языки управления служат для представления управляющей информации для программно-управляемого дополнительного оборудования, например устройств документирования и технологических автоматов.
Промежуточные и внутренние языки предназначены для представления информации на определенных стадиях ее переработки в ЭВМ.
Достоинство этих языков, в отличие от входных языков, – большое разнообразие, узкая проблемная ориентация и изменчивость при адаптации САПР к изменяющимся условиям, унифицированность и универсальность.
Недостаток, как и любых узкоспециализированных, – их громоздкость и неудобство применения конечным пользователем.
2.2 Классификация языков программирования
С учетом зависимости от ЭВМ языки программирования подразделяются на машинно-зависимые и машинно-независимые. Классификация языков программирования представлена на рисунке 2.2.
Рисунок 2.2 – Классификация языков программирования
К машинно-зависимым языкам относятся машинные языки (внутренние языки ЭВМ, представляющие собой систему инструкций и данных, которые не требуют трансляции и могут непосредственно интерпретироваться и исполняться аппаратными средствами ЭВМ) и машинно ориентированные языки.
Отличие последних от машинно-зависимых – необходимость предварительной трансляции на машинный язык программ, составленных с их помощью.
В свою очередь, машинно-независимые языки классифицируются на процедурно ориентированные и проблемно-ориентированные.
Процедурно ориентированные (универсальные) языки эффективны для описания алгоритмов решения широкого класса задач (Фортран, Кобол, Бейсик, Паскаль, и т.д.).
Проблемно ориентированные предназначены для описания процессов обработки информации в более узкой, специфичной области (Лисп, АПЛ).
Объектно ориентированные языки программирования предназначены для разработки программных приложений для широкого круга разнообразных по сфере приложения задач, имеющих общность в реализуемых компонентах (например, для взаимодействия с базами данных, работе в условиях функционирования корпоративных сетей организаций или взаимодействии с глобальной сетью Интернет).
2.3 Трансляторы: основные принципы работы
Необходимо отметить, что основное достоинство алгоритмических языков высокого уровня – возможность описания программ решения задач в форме, максимально удобной для восприятия человеком. Но в то же время каждое семейство ЭВМ имеет свой собственный, специфический внутренний (машинный) язык и выполняет только те команды, которые записаны на «его» языке. Для перевода исходных программ на машинный язык используются специальные программы-трансляторы [2].
Рассмотрим принцип работы двухуровневого лингвистического обеспечения (рисунок 2.3).
Рисунок 2.3 – Принципиальная схема работы двухуровневого
лингвистического обеспечения
Пользователь на входном языке составляет описание, которое с помощью специальной транслирующей программы, называемой конвектором, переводится на промежуточный язык. Далее работает основной транслятор, переводящий описание задачи с промежуточного языка в объектную рабочую программу.
Преимущества такой организации – сравнительно легкая настройка программной системы на новые подклассы объектов.
Что же такое трансляторы? Трансляторы – специальные программы перевода программы с одного языка программирования на другой.
Работа всех трансляторов строится по одному из двух принципов: интерпретация или компиляция.
Интерпретация подразумевает пооператорную трансляцию и последующее выполнение оттранслированного оператора исходной информации [2]. В связи с этим можно выделить как недостатки, так и достоинства метода интерпретации.
Недостатки метода интерпретации:
1) интерпретирующая программа должна находиться в памяти ЭВМ в течение всего процесса выполнения исходной программы, т.е. занимать определенный объем памяти;
2) процесс трансляции одного и того же оператора повторяется столько раз, сколько раз должна исполняться эта команда в программе, что резко снижает производительность работы программы.
Достоинства метода интерпретации:
1) трансляторы-интерпретаторы поддерживают диалоговый режим, что особенно удобно при разработке и отладке исходных программ;
2) легко разрабатываются;
Лекция "64 Права и обязанности приемных родителей" также может быть Вам полезна.
3) относительно дешевы.
В случае многократного решения задачи, когда быстродействие работы вычислительной системы имеет существенное значение, целесообразно использовать другой принцип – компиляцию.
При компиляции процессы трансляции и выполнения разделены во времени: сначала исходная программа полностью переводится на машинный язык, а затем оттранслированная программа может многократно исполняться.
Недостаток компиляции – большая сложность в разработке компилятора по сравнению с интерпретатором с того же самого языка. Это объясняется наличием двух действий: анализа, т.е. определения правильности записи исходной программы в соответствии с правилами построения языковых конструкций входного языка, и синтеза – генерирования эквивалентной программы в машинных кодах [2].
Достоинство компиляции – более высокая производительность вычислительной системы при сокращении требуемой оперативной памяти.
Наряду с рассмотренными выше трансляторами интерпретаторами и трансляторами-компиляторами на практике используются также трансляторы интерпретаторы-компиляторы. Данные трансляторы объединяют в себе достоинства обоих принципов трансляции: на этапе разработки и отладки программ транслятор работает в режиме интерпретатора, а после завершения процесса отладки исходная программа методом компиляции транслируется в объектный модуль – эквивалентную программу в машинных кодах, не «привязанную» к конкретным адресам оперативной памяти. Это позволяет значительно упростить и ускорить процесс составления и отладки программ, а также обеспечить более эффективное исполнение программы.