Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Компиляторы и интерпретаторы

Отличительные особенности алгоритмических языков

Компоненты, образующие алгоритмический язык

Основные отличия алгоритмических языков от машинных языков состоят в следующем:

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

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

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

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

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

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

Таким образом, алгоритмический язык в значительной мере является машинно-независимым.

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

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

Трансляция программы может выполняться двумя способами:

· методом компиляции,

· методом интерпретации.

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

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

Реальные трансляторы сочетают в себе технологии трансляции и интерпретации.

<== предыдущая лекция | следующая лекция ==>
Языки программирования высокого уровня | Три составляющие алгоритмического языка
Поделиться с друзьями:


Дата добавления: 2014-01-04; Просмотров: 298; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.012 сек.