Уровни языков программирования
Конструкция языков программирования
Назначение языков программирования
Языки программирования
Языки программирования предназначены для связи человека с микропроцессорной системой. Эта связь заключается в передаче от человека в систему набор команд (инструкций), которые необходимо выполнить. Упорядоченный набор таких команд называется программа.
Т.о. языки программирования предназначены для написания компьютерных программ, содержащих инструкции по выполнению определённого процесса и организации управления какими-либо устройствами.
Языки программирования рассчитаны на использование 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 году и до сих пор широко применяемый.
Для программирования в машинных кодах и кодах Ассемблера необходимо досконально знать архитектуру процессора (микроконтроллера), набор команд, владеть хотя бы основами программирования. Для написания программ на языке высокого уровня достаточно знать основы программирования. Поэтому языки Ассемблера постепенно вытесняются языками высокого уровня: например ассемблер для микроконтроллеров заменяется языком Си.
Для дальнейшей популяризации аппаратных средств и программных продуктов разработаны графические языки программирования, в которых необходимый алгоритм работы реализуется с помощью типовых блоков и связей между ними. Такая тенденция наблюдалась в интерфейсах операционных системах, который был командный (для работы необходимо вводить команды, причем знать какие), а стал графически — нажал на картинку и работа «пошла».