Материал: Лекции по информатике учебнометодическое пособие

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

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

Следующий этап развития инструментального ПО связан с по- явлением алгоритмических языков, каждый из которых содержит конструкции, удобные для записи алгоритмов в той или иной сфере человеческой деятельности. Алгоритмические языки относятся к классу языков высокого уровня. Они позволяют при составлении программы дробить алгоритм на более крупные смысловые блоки, не связанные со структурой и типом команд ЭВМ, на которой будет ра- ботать программа. При изменении модели процессора переписывает- ся только транслятор с алгоритмического языка, а пользовательские программы остаются прежними.
      1. 1   ...   19   20   21   22   23   24   25   26   ...   45

Основные понятия алгоритмических языков. Алфавит.


Синтаксис. Семантика

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

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

Алфавит – фиксированный для данного языка набор символов (букв, цифр, специальных знаков и т.д.), которые могут быть исполь- зованы при написании программы.

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

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

ния символов алфавита в соответствии с синтаксическими правилами и с учетом правил семантики.

Программа, написанная на алгоритмическом языке, называется

исходным модулем.


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

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

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

На втором этапе программа-сборщик заменяет в объектном модуле относительные адреса на абсолютные и подключает к нему необходимые для работы стандартные программы.

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

Исполняемый модуль

Исходный модуль

Объектный модуль
Компиляция Компоновка



Перевод кон- струкций языка в ма- шинные ко- ды с исполь- зованием от- носительных адресов
Добавление необходимых стандартных программ,

замена отно- сительных адресов ре- альными


Рис. 4.1. Схема трансляции в режиме компиляции

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

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

  • текстовый редактор для написания программы;

  • библиотеки стандартных программ;

  • средства отладки;

  • справочную службу;

–компилятор и/или интерпретатор;

  • диалоговый интерфейс.

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


Один из первых языков программирования высокого уровня, Фортран(Formula Translation), был создан в середине 50-х годов. Он используется для инженерных и научных расчетов, для реше- ния задач физики и других наук с развитым математическим аппара- том. Благодаря своей простоте и тому, что на этом языке накоплены

большие библиотеки программ, Фортран и в наши дни остается од- ним из самых распространенных алгоритмических языков.

Для решения экономических задач был создан язык програм- мирования Кобол.

Расширение областей применения ЭВМ влечет за собой созда- ние языков, ориентированных на новые сферы применения: Снобол алгоритмический язык дляобработкитекстовойинформации.Лисп – алгоритмический язык для обработки символов. Он находит широкое применение в исследованиях по созданию искусственногоинтеллекта.

В 1968 г. был объявлен конкурс на лучший язык программиро- вания для обучения студентов. Для этого конкурса Никлаус ВиртсоздалязыкПаскаль, достаточно простой, удобный, с наличием мощных средств структурирования данных. Хотя Паскаль был разра- ботан как язык для обучения программированию, он впоследствии получил широкое развитие и в настоящее время считается одним из самых используемых языков.

ДляобучениямладшихшкольниковСамуэлем Пайпертом был разработан языкЛого. Он отличается простотой и богатыми возможностями.

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

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

Появление функционального программирования привело к

созданию языка Пролог (ПРОграммы ЛОГические). Этот язык про- граммирования разрабатывался для задач анализа и понимания ес-тественных языков на основе языка формальной логики и мето-довавтоматическогодоказательстватеорем.

В 80-х г. 20 века был создан язык Ада. В дополнение к класси- ческим свойствам, он обеспечиваетпрограммированиезадачре-альноговремениимоделированияпараллельногорешениязадач.

К языкам сверхвысокогоуровняможно отнести Алгол-68и APL. Повышение уровня этих языков произошло за счет введения сверхмощных операций и операторов.

В современной информатике можно выделить два основных
Источник: https://files.student-it.ru/previewfile/157483