Процедурное программирование
Процедурное программирование есть отражение фон Неймановской архитектуры компьютера. Программа, написанная на этом языке, представляет собой последовательность команд, определяющих алгоритм решения задачи. Основной командой является команда присвоения, предназначенная для определения и изменения содержимого памяти компьютера. Фундаментальная идея процедурного программирования – использование памяти компьютера для хранения данных. Функционирование программы сводится к последовательному выполнению команд с целью преобразования исходного состояния памяти, т.е. программа производит пошаговое преобразование содержимого памяти, изменяя его от исходного состояния к результирующему. Одним из первых процедурных языков программирования высокого уровня стал Фортран (FORmula TRANslation), созданный в начале 50-ч гг. в США фирмой IBM. Первая публикация о нём появилась в 1954 г. Основное назначение языка – программирование научно-технических задач. Объектами языка являются целые и вещественные числа и числовые переменные. Выражения в нём формируются с помощью четырёх арифметических действий: возведения в степень, логических операций И, ИЛИ, НЕ, операций отношения и круглых скобок. Основные операторы Фортрана – ввод, вывод, присваивание, условный и безусловный переход, цикл,вызов программ. Долгие годы он был одним из самых распространённых языков в мире. За это время накоплена огромная библиотека программ, написанных на Фортране. Многие средства Фортрана использованы в языках PL-1 и Бейсик. Кобол (Common Business Oriented Language – общепринятый деловой язык) – язык программирования, ориентированный на решение задач обработки данных. Широко используется для решения учётно-экономических и управленческих задач. Разработан в США в 1958-1960 гг. Программа на Коболе имеет вид ряда предложений на английском языке и напоминает обычный текст. Группы последовательно записанных операторов объединяются в предложения, предложения – в параграфы, параграфы – в секции. Программист присваивает параграфам и секциям имена (метки), что облегчает непосредственное обращение к нужному участку программы. В Коболе были реализованы мощные средства работы с большими объёмами данных, хранящимися на различных внешних носителях. На этом языке создано много приложений, некоторые из них активно эксплуатируются и сейчас. Достаточно сказать, что одной из высокооплачиваемых категорий граждан с США являются программисты на Коболе. Алгол (ALGOrithmic Language) разработан группой зарубежных специалистов в 1960 г., явился результатом международного сотрудничества конца 50-х гг. Алгол предназначался для записи алгоритмов, построенных в виде последовательности процедур, применяемых при решении поставленных задач. В нём впервые были введены понятия «блочная структура программы», «динамическое распределение памяти». Однако данный язык программирования, из-за отсутствия на компьютерах транслятора данного языка, не получил распространение. В середине 60-х гг. сотрудники Дартмутского колледжа Томас Курц и Джон Кемени создали специализированный язык программирования,который состоял из простых английских слов. Новый язык назвали универсальным символическим кодом для начинающих (Beginners All-purpose Symbolic Instruction Code) BASIC (Бейсик). 1964 г. считают годом рождения данного языка. Он получил самое широкое распространение при работе на персональных компьютерах в режиме интерактивного диалога. В начале 60-х гг. каждый из существующих языков программирования был ориентирован на разные классы задач, но в той или иной мере привязан к конкретной архитектуре ЭВМ. Были предприняты попытки преодолеть этот недостаток путём создания универсального языка программирования. PL/1 (Programming Language One) – первый многоцелевой универсальный язык, разработан в США фирмой IBM в 1963-1966 гг. Это один из наиболее распространённых универсальных языков, он хорошо приспособлен для решения задач в области вычислительной техники: исследования и планирования вычислительных процессов, моделирования, решения логических задач и исследования логических схем, разработки систем математического обеспечения. При разработке данного языка были широко использованы основные понятия и средства языков Фортран, Алгол-60, Кобол. Паскаль (Pascal) является одним из наиболее популярных процедурных языков программирования, особенно для персональных компьютеров. Созданный как учебный язык программирования в 1968-1971 гг. Никлаусом Виртом, он был назван в честь французского математика и философа Блеза Паскаля. Задачей Вирта было создание языка, базирующегося на простом синтаксисе и небольшом количестве базовых конструкций, переводимого в машинный код простым компилятором. В основе языковой концепции Паскаля лежит системный подход, предполагающий переход от общей задачи к частным (более простым и меньшим по объёму). К основным принципам Паскаля следует отнести: Структурное программирование. Его методология основана на использовании подпрограмм и независимых структур данных, объединяющих связанные между собой совокупности данных. Подпрограммы позволяют заменять в тексте программ упорядоченные блоки команд, отчего программный код становится более компактным. Структурный подход обеспечивает создание более понятных и легко читаемых программ, упрощает их тестирование и отладку. Программирование сверху вниз, когда задача делится на простые, самостоятельно решаемые подзадачи. Затем на основе решённых подзадач выстраивается решение исходной задачи полностью – сверху вниз. В основу разработки языка Паскаль был положен Алгол-60,но в нём ужесточён ряд требований к структуре программы и имеются возможности, позволяющие успешно применять его для создания крупных проектов, например, программ-трансляторов. Период с конца 60-х до начала 80-х гг. характеризуется бурным ростом различных языков программирования, сопровождавшим, как это ни парадоксально, кризис программного обеспечения. Этот кризис особенно остро переживало военное ведомство США. В январе 1975 г. Пентагон решил навести порядок среди бесчисленного множества трансляторов и создал комитет для разработки одного универсального языка. На конкурсной основе комитет рассмотрел сотни проектов и выяснил, что ни один из существующих языков не может удовлетворить их требованиям, для окончательного рассмотрения было оставлено два проекта. В мае 1979 г. был объявлен победитель – группа учёных во главе с Жаном Ихбиа. Победивший язык назвали АДА, в честь Ады Лавлейс, дочери великого поэта Байрона. Язык АДА – прямой наследник Паскаля. Он предназначен для создания и длительного сопровождения больших программных систем, управления процессами в реальном масштабе времени. В языке чётко выражена модульность его конструкций, причём обеспечивается удобство организации разнообразных связей между модулями. Важным его достоинством является возможность параллельного программирования ветвей программы, которые затем могут реализовываться на многопроцессорных компьютерах. Язык АДА сложен для изучения. Язык программирования С (Си) был разработан в лаборатории Bell для реализации операционной системы Unix в начале 70-х гг. и не рассматривался как массовый. Он планировался для замены Ассемблера, чтобы иметь возможность создавать столь же эффективнее и компактные программы, и в то же время не зависеть от конкретного типа процессора. По набору управляющих конструкций и структур данных С имеет возможности, присущие высокоуровневым языкам, и вместе с тем он располагает средствами прямого обращения к функциональным узлам компьютера. Синтаксис языка С позволяет создавать лаконичный программный код. Одна из существенных особенностей С, приближающая его к функциональным языкам, состоит в том, что различия между выражениями и операторами сглаживаются. Например, выражения, являющиеся операторами программы, могут выполнять дополнительные операции присваивания. Использование подпрограмм основано на понятии функции, которая может также сочетать в себе возможности процедуры. Понятие процедуры в языке С отсутствует. Синтаксис языка затрудняет читаемость программы.
|