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

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

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

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

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

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

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

Развитие языков программирования. До 60-х годов ХХ века использовались только машинные языки. К машинным языкам относятся двоичный язык (непосредственный компьютерный язык) и шестнадцатеричный (модификация двоичного языка, в которой четыре цифры двоичного кода заменяются одной шестнадцатеричной).

Язык Ассемблер – это символическое представление машинного языка. Он облегчает процесс программирования по сравнению с программированием в машинных кодах. Программисту не обязательно употреблять настоящие адреса ячеек памяти с размещенными в них данными, участвующими в операции, и вычисляемые результаты, а также адреса тех команд, к которым программа не обращается. Некоторые задачи, например, обмен с нестандартными устройствами обработки данных сложных структур невозможно решить с помощью языков программирования высокого уровня. Это под силу ассемблеру. В принципе, язык Ассемблер является машинным языком. И программист, реализующий какую-либо задачу на языках высокого уровня, с помощью Ассемблера может определить осмыслено ли решение данной задачи, с точки зрения использования компьютера.

Один из самых старых языков программирования Фортран был создан в 50-х гг. ХХ века. Фортран и подобные ему языки программирования (Алгол, ПЛ/1) предназначались для решения вычислительных задач, возникающих в математике, физике, инженерных расчетах, экономике и т.п. Эти языки в основном работают с числами. Среди причин долголетия Фортрана можно отметить простую структуру, как самого Фортрана, так и предназначенных для него трансляторов. Программа на Фортране записывается в последовательности предложений или операторов (описание некоего преобразования информации), и оформляется по определенным стандартам. Эти стандарты накладывают ограничения, в частности, на форму записи и расположения частей оператора в строке бланка для записи операторов. Программа, записанная на Фортране, представляет собой один или несколько сегментов (подпрограмм) из операторов. Сегмент, управляющий работой всей программы в целом, называется основной программой. Язык Фортран до сих пор продолжает развиваться и совершенствоваться, оказывая влияние на создание и развитие других языков.

Например, Фортран заложен в основу Basic – диалогового языка, очень популярного для решения небольших задач, превосходного языка для обучения навыкам использования алгоритмических языков в практике программирования. Создали Basic ученые Дж. Кемени и Т. Куртц для использования в Дортмутском колледже, как средство для обучения программированию. Basic – один из самых популярных языков программирования высокого уровня, который используется и по сей день (в основном в школах для обучения программированию).

Язык программирования Алгол создан в 1960 г. (поэтому его иногда называют Алгол – 60). Развитием языка Алгол – 60 является Алгол – 68, созданный в Западной Европе Международной Федерацией. Версия Алгол – 68 обладала богатым набором средств, высокой строгостью и стройностью, но и большой сложностью. Ее реализация затянулась на долгие годы, в результате чего время было упущено и данный язык в некотором смысле, пережил самого себя – устарел, практически прекратив свое существование.

Самый известный отечественный язык программирования Рефал, разработанный в СССР в 1966 году. Этот язык прост и удобен для описания манипуляций над произвольными текстовыми объектами. Программирование на Рефале имеет специфику, связанную, прежде всего, с тем, что Рефал является языком функционального типа в отличие от обычных операторных языков. Если программа на операторных языках – ни что иное, как совокупность приказов-операторов, то программа на Рефале представляет собой по существу описание связей и отношений между определенными понятиями. Вследствие того, что в Рефале программист сам определяет структуру обрабатываемой информации, эффективность программы существенно зависит от удачного или неудачного выбора этой структуры. Для задания структур в Рефале используются скобки, а специфика всех реализаций языка такова, что использование скобок резко повышает эффективность выполнения программы. Это достигается с помощью адресного соединения скобок.

Язык программирования Паскаль является прямым развитием направления Алгола, он стал одним из наиболее популярных процедурных языков программирования среди прикладных программистов. Он разработан в 1970 г. швейцарским специалистом в области вычислительной техники профессором Н. Виртом, назван в честь французского математика Блеза Паскаля и, по замыслу автора, предназначался для обучения программированию.

Язык программирования АДА разработан в 1979 г. ведущими специалистами в области программирования по заказу Министерства обороны США для использования во встроенных системах с управляющими ЭВМ, что требует поддержки режима реального времени. Язык назван в честь Августы Лады Лавлейс, она по праву считается первым в мире программистом. АДА является продолжением направления Алгола. Язык отталкивает своей громоздкостью, хотя с 1986 г. он стал обязательным для многих военных приложений в США.

Язык программирования Си первоначально разработан в начале 70–х гг. для реализации разработки систем, трансляторов, баз данных и других системных и прикладных программ, т.е. создавался не как учебный, а как инструментальный язык. Си – это язык программирования общего назначения, хорошо известный своей эффективностью, экономичностью, и переносимостью. Указанные преимущества Си обеспечивают хорошее качество разработки почти любого вида программного продукта. Использование Си в качестве инструментального языка позволяет получать быстрые и компактные программы. Во многих случаях программы, написанные на Си, сравнимы по скорости с программами, написанными на языке ассемблера. При этом они имеют лучшую наглядность и их более просто сопровождать. Си сочетает эффективность и мощность в относительно малом по размеру языке. Язык Си предъявляет достаточно высокие требования к квалификации использующего его программиста. При изучении Си желательно иметь представление о структуре и работе компьютера. Большую помощь и более глубокое понимание идей Си, как языка системного программирования, обеспечат хотя бы минимальное знание языка ассемблер. Уровень старшинства некоторых операторов не является общепринятым, некоторые синтаксические конструкции могли бы быть лучше. Сейчас очень популярна модификация языка Си – язык Си ++ (Си плюс плюс), разработанный в 1983 году.

Вопросы:

1. Что значит программный алгоритм?

2. Почему машинный язык программирования неудобен для человека?

3. Чем отличается интерпретатор от компилятора?

4. Какие вы знаете языки программирования?