Средства программирования. Языки программирования высокого и низкого уровня. Обзор языков программирования высокого уровня.
Программы для первых компьютеров приходилось писать на машинном языке, т. е. в кодах, непосредственно воспринимаемых компьютером. Это было очень тяжелой, малопроизводительной и кропотливой работой, в ходе которой можно было легко ошибиться. Для облегчения процесса программирования в начале 50-х годов были разработаны системы, позволяющие писать программы не на машинном языке, а с использованием мнемонических обозначений машинных команд, имен точек программы и т. д. Такой язык для написания программ называется автокодом, или языком ассемблера. Для каждого типа процессоров существует собственный язык ассемблера, поэтому для переноса программы на ассемблере на другую аппаратную платформу ее придется почти полностью переписать.
Однако написание программ на языке ассемблера все же весьма трудоемко. Поэтому и после появления ассемблеров многие исследователи продолжали попытки облегчить процесс программирования, "научив" компьютеры понимать более удобные для человека языки составления программ. Такие языки стали называть языками программирования высокого уровня, а языки ассемблера и другие машинно-ориентированные - языками низкого уровня. Программы на языках высокого уровня либо преобразуются в программы, состоящие из машинных команд (это делается с помощью специальных программ, называемых трансляторами или компиляторами), либо интерпретируются с помощью программ-интерпретаторов.
Языки программирования высокого уровня приближены к уровню естественных языков. Грамотно составленная программа на языке программирования высокого уровня напоминает план решения задачи, записанный на обычном человеческом языке. Языки программирования высокого уровня обычно являются машинно-независимыми.
Первые языки программирования высокого уровня, например язык Фортран, разрабатывались для решения задач, требовавших сложных и громоздких вычислений. С дальнейшим развитием и распространением компьютеров расширился круг решаемых с их помощью задач, появились задачи, связанные с обработкой нечисловой информации. Наметился двоякий процесс: специализация и универсализация языков программирования. Это привело к созданию специализированных языков программирования, таких как языки Лисп и Пролог, ориентированных на узкие области применения и позволяющих эффективно решать некоторые задачи. С другой стороны, появились и быстро получили широкое распространение универсальные языки программирования, например языкиПаскаль и Си.
В настоящее время существует около двух тысяч языков программирования. Столь внушительное количество существующих языков объясняется многообразием сфер применения и подходов к реализации программ.
Инструментальное ПО (или системы программирования, языки программирования) обеспечивают создание ВСЕХ КЛАССОВ ПРОГРАММ: системных, прикладных и новых систем программирования.
Языки программирования являются основным средством общения программиста и компьютера. Программисты должны не просто уметь написать программу на каком-либо одном языке, они должны понимать различные стили программирования, присущие разным языкам. На протяжении своей профессиональной карьеры программисты будет работать с множеством различных языков и стилей одновременно. Понимание разнообразия языков программирования и различных парадигм значительно облегчает быстрое освоение новых языков. Для понимания прагматических аспектов языков программирования требуются также базовые знания теории трансляции языков программирования и механизмов работы среды времени выполнения, например, распределения памяти.
Первые языки программирования возникли относительно недавно. Различные исследователи указывают в качестве времени их создания 20-е, 30-е и даже 40-е годы XX столетия. Нашей задачей является не установление самого раннего языка, а поиск закономерностей в их развитии.
Как и следовало ожидать, первые языки программирования, как и первые ЭВМ, были довольно примитивны и ориентированы на численные расчеты. Это были и чисто теоретические научные расчеты (прежде всего, математические и физические), и прикладные задачи, в частности, в области военного дела.
Программы, написанные на ранних языках программирования, представляли собой линейные последовательности элементарных операций с регистрами, в которых хранились данные.
Нужно отметить, что ранние языки программирования были оптимизированы под аппаратную архитектуру конкретного компьютера, для которого предназначались, и хотя они обеспечивали высокую эффективность вычислений, до стандартизации было еще далеко. Программа, которая была вполне работоспособной на одной вычислительной машине, зачастую не могла выполняться на другой.
В настоящее время существуют тысячи различных языков программирования. Их можно классифицировать по различным признакам. Прежде всего, все языки программирования принято разделять на четыре большие группы: