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

Программирование

ПО – одно из составляющих информатики, является неоднородным и имеет сложную структуру, включает несколько уровней:

1. системный

2. служебный

3. инструментальный

4. прикладной

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

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

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

Прикладное ПО – самый большой по объёму класс программ. К нему относятся программы конечного пользователя.

ПО:

1. системное:

ОС, драйверы, дисковые утилиты, архиваторы, антивирусы, диагностические программы;

2. прикладное:

программы обработки текста, электронные таблицы, СУБД, переводчики, игры, профессиональные пакеты (ППО);

3. инструментальное ПО:

редакторы программного кода, трансляторы, отладчики, редакторы связей, системы быстрой разработки (RAD).

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

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

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

Языки программирования – фундаментальные, формальные и искусственные языки. Как и естественные языки они имеют свой алфавит, словарный запас, грамматику и синтаксис, семантику.

Алфавит – разрешённый к использованию набор символов. С помощью которого могут быть образованы слова и величины данного языка.

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

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

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

Самый низкий уровень – Ассемблер. Программа, написанная на нём представляет собой последовательность команд машинных кодов, но записанных с помощью символьных мнемоник.

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

Компиляторы и интерпретаторы.

С помощью языка программирования создаётся текст программы, описывающей разработанный алгоритм. Чтобы эта программа была выполнена. Необходимо либо весь её текст перевести в машинный код, это действие выполняют программы-компиляторы, и уже потом передать на выполнение процессору, либо сразу выполнить команды языка, переводя на машинный язык и выполняя каждую команду поочерёдно. Это делают интерпретаторы. Основной недостаток компиляторов – трудоёмкость трансляции языков программирования, ориентированных на обработку данных сложной структуры. Заранее неизвестной или динамически меняющейся во время работы программы. Для таких программ в машинный код вводятся дополнительные проверки и анализ наличия ресурсов ОС.

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

Интерпретатор при выполнении каждой команды подвергает проверке и анализу необходимые ресурсы ОС и при необходимости сообщает об этом.