Уровни языков программирования

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

Назначение языков программирования

Языки программирования

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

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

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

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

1) интерпретаторы – обрабатывают текст непосредственно во время написания программы, т.е. каждую строку по отдельности;

2) компиляторы – преобразуют весь текст программы одновременно.

Работа программы состоит в обработке данныхконстант и переменных. Действия над константами и переменными определяют операторы. Операторявляетсяинструкцией языка.

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

Различают уровни (по отношению к естественному, человеческому) языков программирования:

- низкого уровня – машинные языки;

- языки ассемблера – близки к машинному;

- языки высокого уровня – приближены к человеку.

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

Наряду с указанными недостатками язык кодовых комбинаций имеет и достоинства. Программа на этом языке оказывается наиболее эффективной, она занимает минимальный объем памяти и быстрее ис­полняется.

Пример: Для представления машинного языка используем DOS программу DEBUG — специальная программа, входящая в состав утилит MS-DOS, для ввода и пошагового выполнения программ, написанных на машинном языке или с помощью команд ассемблера (рис. 3.16).

 

Рисунок 3.16 – Просмотр содержимого ячеек памяти в окне программы DEBUG

Текст программы, представленной в шестнадцатеричном формате:

Команда Назначение Мнемоника
B8 23 01 Переслать шест. значение 0123 в AX MOV AX,0123
05 25 00 Прибавить шест. значение 0025 к AX ADD AX,0025
8B D8 Переслать содержимое AX в BX MOV BX,AX
03 D8 Прибавить содержимое AX к BX ADD BX,AX
8B CB Переслать содержимое BX в CX MOV CX,BX
2B C8 Вычесть содержимое AX из AX (очистка AX) SUB CX,AX
Нет операции  

Трудности программирования уменьшаются при использовании языка ассемблера. В этом языке вместо кодовых комбинаций применя­ется мнемоническая форма записи операций (мнемоники), выполняемых в микропро­цессоре. Такой мнемонической записью (в виде сочетания букв, взятых из соответствующих английских слов: MOV – перемещение, ADD – сложение, SUBB – вычитание) представляют вид выполняемой операции, операнды и адреса. Каждой команде на языке ассемблера соответствует команда на языке кодовых комбинаций.

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

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

Язык ассемблера (так же, как и язык кодовых комбинаций) индиви­дуален для каждого типа микропроцессора и микроконтроллера.

Следующий уровень языка программирования — язык высокого уровня. Языки высокого уровня близки к обычному математическому языку, описывающему процесс решения задачи, поэтому они легко усваивают­ся. Кроме того, они обеспечивают большую компактность программы (сложные вычислительные процессы представляются короткими запи­сями), что улучшает обзор программы и выявление в ней ошибок.

Простейшим языком программирования высокого уровня является BASIC («Beginner's All-purpose Symbolic Instruction Code» - универсальный код символических инструкций для начинающих), созданный в 1964 году и до сих пор широко применяемый.

Для программирования в машинных кодах и кодах Ассемблера необходимо досконально знать архитектуру процессора (микроконтроллера), набор команд, владеть хотя бы основами программирования. Для написания программ на языке высокого уровня достаточно знать основы программирования. Поэтому языки Ассемблера постепенно вытесняются языками высокого уровня: например ассемблер для микроконтроллеров заменяется языком Си.

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