Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Классификация языков программирования



С учетом зависимости от ЭВМ языки программирования подразделяются на машинно-зависимые и машинно-независимые. Классификация языков программирования представлена на рисунке 2.2.

Рисунок 2.2 – Классификация языков программирования

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

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

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

Процедурно ориентированные (универсальные) языки эффективны для описания алгоритмов решения широкого класса задач (Фортран, Кобол, Бейсик, Паскаль, и т.д.).

Проблемно ориентированные предназначены для описания процессов обработки информации в более узкой, специфичной области (Лисп, АПЛ).

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

2.3 Трансляторы: основные принципы работы

Необходимо отметить, что основное достоинство алгоритмических языков высокого уровня – возможность описания программ решения задач в форме, максимально удобной для восприятия человеком. Но в то же время каждое семейство ЭВМ имеет свой собственный, специфический внутренний (машинный) язык и выполняет только те команды, которые записаны на «его» языке. Для перевода исходных программ на машинный язык используются специальные программы-трансляторы [2].

Рассмотрим принцип работы двухуровневого лингвистического обеспечения (рисунок 2.3).

Рисунок 2.3 – Принципиальная схема работы двухуровневого

лингвистического обеспечения

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

Преимущества такой организации – сравнительно легкая настройка программной системы на новые подклассы объектов.

Что же такое трансляторы? Трансляторы – специальные программы перевода программы с одного языка программирования на другой.

Работа всех трансляторов строится по одному из двух принципов: интерпретация или компиляция.

Интерпретация подразумевает пооператорную трансляцию и последующее выполнение оттранслированного оператора исходной информации [2]. В связи с этим можно выделить как недостатки, так и достоинства метода интерпретации.

Недостатки метода интерпретации:

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

2) процесс трансляции одного и того же оператора повторяется столько раз, сколько раз должна исполняться эта команда в программе, что резко снижает производительность работы программы.

Достоинства метода интерпретации:

1) трансляторы-интерпретаторы поддерживают диалоговый режим, что особенно удобно при разработке и отладке исходных программ;

2) легко разрабатываются;

3) относительно дешевы.

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

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

Недостаток компиляции – большая сложность в разработке компилятора по сравнению с интерпретатором с того же самого языка. Это объясняется наличием двух действий: анализа, т.е. определения правильности записи исходной программы в соответствии с правилами построения языковых конструкций входного языка, и синтеза – генерирования эквивалентной программы в машинных кодах [2].

Достоинство компиляции – более высокая производительность вычислительной системы при сокращении требуемой оперативной памяти.

Наряду с рассмотренными выше трансляторами интерпретаторами и трансляторами-компиляторами на практике используются также трансляторы интерпретаторы-компиляторы. Данные трансляторы объединяют в себе достоинства обоих принципов трансляции: на этапе разработки и отладки программ транслятор работает в режиме интерпретатора, а после завершения процесса отладки исходная программа методом компиляции транслируется в объектный модуль – эквивалентную программу в машинных кодах, не «привязанную» к конкретным адресам оперативной памяти. Это позволяет значительно упростить и ускорить процесс составления и отладки программ, а также обеспечить более эффективное исполнение программы.





Дата публикования: 2014-11-18; Прочитано: 4707 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...