Язык программирования [19] - формальный язык для описания алгоритма решения задачи на компьютере.
Каждый язык программирования имеет:
· алфавит – фиксированный для данного языка набор основных символов, допускаемых для составления текста программы на этом языке;
· синтаксис – систему правил, определяющих допустимые конструкции языка программирования из букв алфавита;
· семантику – систему правил однозначного толкования отдельных языковых конструкций, позволяющих воспроизвести процесс обработки данных.
Программа, подготовленная на языке программирования, должна пройти ряд преобразований, чтобы компьютер мог ее выполнить (рис.2.3).
Рис 2.3. Схема процесса создания загрузочного[20] модуля программы
Трансляция может выполняться с использованием средств компиляторов или интерпретаторов. Компиляторы транслируют всю программу, но без ее выполнения. Интерпретаторы, в отличие от компиляторов, выполняют пооператорную обработку и выполнение программы.
Достоинством компилятора являются компактный и эффективный код программы и высокая скорость выполнения. Достоинством интерпретаторов является возможность постоянного контроля состояния программно-аппаратной среды, благодаря чему достигается высокая надежность работы.
В реальных системах программирования перемешаны технология и компиляции и интерпретации. В процессе отладки программа может выполняться по шагам, а для отлаженной программы может быть получен исполняемый код.
В зависимости от способа преобразования операндов языка программирования в инструкции для ЭВМ их подразделяют на:
· языки низкого уровня (трансляторы), которые осуществляют транслитерацию, т.е. преобразование одного оператора языка в одну машинную инструкцию (пример - ассемблеры)
· языки высокого уровня (компиляторы [21]), осуществляющие преобразование одного оператора языка в несколько машинных инструкций.
Языки ассемблера ориентированы на конкретный тип процессора и учитывают его особенности, что позволяет создавать очень эффективные и компактные программы. Однако от разработчика в этом случае требуется очень высокая квалификация, отладка больших программ затруднена, а результирующая программа не может быть перенесена на другой тип компьютера.
Языки высокого уровня имитируют естественные языки и имеют следующие достоинства:
· алфавит значительно шире машинного, что делает его гораздо более выразительным и существенно повышает наглядность и понятность текста;
· набор операций, допустимых для использования, не зависит от набора машинных операций, а выбирается из соображений удобства формулирования алгоритмов решения задач определенного класса;
· конструкции команд (операторов) отражают содержательные виды обработки данных и задаются в удобном для человека виде;
· используется аппарат переменных и действия с ними;
· поддерживается широкий набор типов данных.