Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Posobie_dlya_studentov_2_matematika.doc
Скачиваний:
57
Добавлен:
25.11.2018
Размер:
2.93 Mб
Скачать

2.1.1. Языки низкого уровня

В группу языков программирования низкого уровня входят машинные языки и языки символического кодирования: (Автокод, Ассемблер).

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

К языкам программирования низкого уровня относятся машинно-ориентированные языки, которые отражают структуру конкретного типа компьютера (ассемблеры). Операторы языков ассемблеров и макроассемблеров – это те же машинные команды, но записанные мнемоническими кодами, а в качестве операндов используются не конкретные адреса, а символические имена.

Язык макроассемблера является расширением языка ассемблера за счёт включения макросредств, позволяющих создавать макрокоманды.

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

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

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

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

Такой перевод на язык машинных кодов называется трансляцией, а выполняется он специальными программами – трансляторами.

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

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

Существует два основных вида трансляторов: интерпретаторы и компиляторы.

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

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

Откомпилированные программы работают быстрее, интерпретируемые проще исправлять.

Разработка программ на языке высокого уровня включает в себя следующие действия:

  1. Ввод и редактирование текста на языке программирования

  2. Трансляция

  3. Отладка программы.

Любой язык программирования содержит определённые правила записи, которые определяют синтаксис данного языка, смысл каждой команды составляет семантику языка. Если неправильно записан оператор, то появляется сообщение о синтаксической ошибке. Если оператор используется не по своему назначению, то это семантическая ошибка.

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

Языки высокого уровня являются машинно-независимыми.

Языки высокого уровня можно разделить на алгоритмические (вычислительные) и проблемно-ориентированные (языки символьной обработки). К первому типу относят Фортран, Паскаль, Алгол, Бейсик, Си, ко второму типу – Лисп, Пролог, Снобол и др.

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