Какая модель построения программ лежит в основе технологии процедурного программирования

Обновлено: 04.07.2024

Процедурное и объектно-ориентированное программирование

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

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

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

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

В рамках объектно-ориентированного подхода такое связывание осуществляется на уровне структуры программы и является неотъемлемой частью синтаксиса соответствующего языка программирования(в том числе это относится к С++). Любой объектно-ориентированный язык программирования базируется на трех механизмах, которые называются инкапсуляцией, полиморфизмом и наследованием.

Под инкапсуляцией подразумевается объединение, связывание в одно целое данных и программного кода для обработки данных. Базовой единицей инкапсуляции является класс, а конкретный экземпляр класса называется объектом.

Классы и объекты обсуждаются в дальнейших разделах.

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

В основу сайта положена информация из книги
"Самоучитель C++ с примерами и задачами. Книга + CD", СПб, Наука и Техника, 2010. - 480с.: ил.(+CD)
2010 - 2011 Все авторские права сохранены

Что такое процедурное программирование?

Ключевые особенности процедурного программирования

Ключевые особенности процедурного программирования приведены ниже:

Преимущества и недостатки процедурного программирования

Процедурное программирование имеет свои плюсы и минусы, некоторые из которых упомянуты ниже.
Преимущества

  • Процедурное программирование отлично подходит для программирования общего назначения
  • Закодированная простота наряду с простотой реализации компиляторов и интерпретаторов
  • Большое разнообразие книг и онлайн-материалов курсов по проверенным алгоритмам, облегчающих обучение в процессе
  • Исходный код переносим, ​​поэтому его можно использовать и для другого процессора
  • Код может быть повторно использован в разных частях программы, без необходимости копировать его
  • Благодаря методике процедурного программирования требования к памяти также сокращаются
  • Ход программы можно легко отследить

Недостатки

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

Как мы уже упоминали, существуют разные типы парадигмы программирования, которые являются не чем иным, как стилем программирования. Важно понимать, что парадигма ориентирована не на конкретный язык, а на способ написания программы. Ниже приведено сравнение между процедурным программированием и объектно-ориентированным программированием.

Что такое объектно-ориентированное программирование (ООП)

  • Благодаря модульности и инкапсуляции, ООП предлагает простоту управления
  • ООП имитирует реальный мир, облегчая понимание
  • Поскольку объекты являются цельными внутри себя, они могут использоваться в других программах

Недостатки

  • Объектно-ориентированные программы, как правило, работают медленнее и занимают много памяти
  • Чрезмерная обобщение
  • Программы, созданные с использованием этой парадигмы, могут занять больше времени

Процедурное программирование против объектно-ориентированного программирования: сравнение между собой

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

Процедурное программированиеОбъектно-ориентированного программирования
Использует неизменные данныеИспользует изменяемые данные
Следует декларативной модели программированияСледует модели императивного программирования
Расширяет поддержку параллельного программированияНе подходит для параллельного программирования
Порядок выполнения операторов не является основным направлениемПорядок выполнения операторов очень важен
Управление потоком осуществляется с помощью вызовов функцийУправление потоком осуществляется через условные операторы и циклы
Использует концепцию рекурсии для итерации коллективных данныхИспользует концепцию цикла для итерации сбора данных
Нет таких побочных эффектов его функцийМетод может иметь определенные побочные эффекты
В процедурном программировании основное внимание уделяется тому, что вы делаете.Основное внимание в объектно-ориентированном программировании уделяется теме «Как вы это делаете»

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

Недостатки

  • Использование функционального программирования исключительно в коммерческой разработке программного обеспечения не рекомендуется и не делается
  • Это требует большого количества памяти и времени
  • Это может оказаться менее эффективным, чем другие парадигмы

Вывод


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

Ладно. Введение это очень весело, но вы его все равно не читаете, так что кому интересно — добро пожаловать под кат!

Императивное программирование



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

Это были машинные коды, языки ассемблера и ранние высокоуровневые языки, вроде Fortran.

Ключевые моменты:

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

В низкоуровневых языках (таких как язык ассемблера) состоянием могут быть память, регистры и флаги, а инструкциями — те команды, что поддерживает целевой процессор.

В более высокоуровневых (таких как Си) состояние — это только память, инструкции могут быть сложнее и вызывать выделение и освобождение памяти в процессе своей работы.

В совсем высокоуровневых (таких как Python, если на нем программировать императивно) состояние ограничивается лишь переменными, а команды могут представлять собой комплексные операции, которые на ассемблере занимали бы сотни строк.

Основные понятия:

Порожденные понятия:

— Присваивание
— Переход
— Память
— Указатель

Языки поддерживающие данную парадигму:

Как основную:

— Языки ассемблера
— Fortran
— Algol
— Cobol
— Pascal
— C
— C++
— Ada

Как вспомогательную:

Стоит заметить, что большая часть современных языков в той или иной степени поддерживает императивное программирование. Даже на чистом функциональном языке Haskell можно писать императивно.

Структурное программирование



Структурное программирование — парадигма программирования (также часто встречающееся определение — методология разработки), которая была первым большим шагом в развитии программирования.

Основоположниками структурного программирования были такие знаменитые люди как Э. Дейкстра и Н. Вирт.

Языками-первопроходцами в этой парадигме были Fortran, Algol и B, позже их приемниками стали Pascal и C.

Ключевые моменты:

Эта парадигма вводит новые понятия, объединяющие часто используемые шаблоны написания императивного кода.

В структурном программировании мы по прежнему оперируем состоянием и инструкциями, однако вводится понятие составной инструкции (блока), инструкций ветвления и цикла.

Благодаря этим простым изменениям возможно отказаться от оператора goto в большинстве случаев, что упрощает код.

Иногда goto все-же делает код читабельнее, благодаря чему он до сих пор широко используется, несмотря на все заявления его противников.

Основные понятия:

— Блок
— Цикл
— Ветвление

Языки поддерживающие данную парадигму:

Как основную:

— C
— Pascal
— Basic

Как вспомогательную:

Поддерживают частично:
— Некоторые макроассемблеры (через макросы)

Опять-же большая часть современных языков поддерживают структурную парадигму.

Процедурное программирование



Опять-же возрастающая сложность программного обеспечения заставила программистов искать другие способы описывать вычисления.

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

Этим понятием на этот раз была процедура.

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

Ключевые моменты:

Процедура — самостоятельный участок кода, который можно выполнить как одну инструкцию.

В современном программировании процедура может иметь несколько точек выхода (return в C-подобных языках), несколько точек входа (с помощью yield в Python или статических локальных переменных в C++), иметь аргументы, возвращать значение как результат своего выполнения, быть перегруженной по количеству или типу параметров и много чего еще.

Основные понятия:

Порожденные понятия:

— Вызов
— Аргументы
— Возврат
— Рекурсия
— Перегрузка

Языки поддерживающие данную парадигму:

Как основную:

— C
— C++
— Pascal
— Object Pascal

Как вспомогательную:

Поддерживают частично:
— Ранний Basic

Стоит отметить, что несколько точек входа из всех этих языков поддерживаются только в Python.

Модульное программирование



Который раз увеличивающаяся сложность программ заставила разработчиков разделять свой код. На этот раз процедур было недостаточно и в этот раз было введено новое понятие — модуль.

Забегая вперед скажу, что модули тоже оказались неспособны сдержать с невероятной скоростью растущую сложность ПО и в последствии появились пакеты (это тоже модульное программирование), классы (это уже ООП), шаблоны (обобщенное программирование).

Программа описанная в стиле модульного программирования — это набор модулей. Что внутри, классы, императивный код или чистые функции — не важно.

Благодаря модулям впервые в программировании появилась серьезная инкапсуляция — возможно использовать какие-либо сущности внутри модуля, но не показывать их внешнему миру.

Ключевые моменты:

Модуль — это отдельная именованная сущность программы, которая объединяет в себе другие программные единицы, близкие по функциональности.

Например файл List.mod включающий в себя класс List
и функции для работы с ним — модуль.

Папка Geometry, содержащая модули Shape, Rectangle и Triangle — тоже модуль, хоть и некоторые языки разделяют понятие модуля и пакета (в таких языках пакет — набор модулей и/или набор других пакетов).

Модули можно импортировать (подключать), для того, чтобы использовать объявленные в них сущности.

Основные понятия:

Порожденные понятия:

Языки поддерживающие данную парадигму:

Как основную:

— Haskell
— Pascal
— Python

Как вспомогательную:

Поддерживают частично:
— C/C++

В некоторых языках для модулей введены отдельные абстракции, в других же для реализации модулей можно использовать заголовочные файлы (в C/C++), пространства имен, статические классы и/или динамически подключаемые библиотеки.

Вместо заключения

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

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

П р о ц е д у р н о е ( и м п е р ат и в н о е) п р о г р ам м и р о в а ни е я вл я ет с я о т р аж е н и ем а р х и- тект у р ы т р а д и ц ион н ы х Э ВМ, к о т о р ая б ы л а п р е д л о ж е н а ф о н Н е й м а н о м в 1 9 4 0 - х г о д а х . Т е о р е т и че ск о й м о д е ль ю п р о ц е д у рно го пр о г р амм ир о в а н и я с л у ж и т а л г о- ри т м и ч е ск а я с и с т е м а п о д н а зв а н и ем « м а ш ин а Тьюр и н га » .

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

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

П р о ц е д у р н ы е я з ы к и х а р акт е ри з у ю тся с л е д у ю щ и ми о с о б е н н о ст я м и :

 н е об х од и м о ст ь ю я в но г о у пр а вл е н и я п а м я т ью , в час т н о ст и , о п и с а н и ем п е- р ем е н ны х ;

 ма л о й п р и г о дн о ст ь ю д л я с и м в о ль н ы х в ы ч и с л е н и й;

 о тс у тст в и ем ст р о г о й матема т и ч е с к о й о с но в ы ;

 в ы с о к о й э ф ф ек т и вн о ст ь ю р еа л и з а ци и н а т р а д и ц и о нн ы х Э В М.

О дн и м и з в а ж н е й ш и х к л ас с и ф и к а ц ион н ы х п р и з н а к о в п р о ц е д у р н о г о я з ы ка я вл я ется е г о у ро в е нь . У ро в е н ь я зы ка пр о г р ам м и р о в а ни я оп р е д е л я ет с я сем а н т и- чес к о й ( см ы с л о в ой ) емк о ст ь ю его к о н с т р у к ци й и ст е п е н ь ю его ор и е н т а ц и и н а п р о г р ам м и ста. Я зы к п р о г р ам м и р о в а н и я част и ч н о л и к в и д ир у ет р а зр ы в ме ж д у мет о д а м и р еш е ни я р а зл и ч н о го ро д а з а д ач че л о в е к о м и в ы ч и с л и т е ль н о й м а ш и- н о й . Ч е м бо л ее я з ы к ор и е н т и ро в а н н а че л о в е к а, тем в ы ш е его у ро в е н ь . Д а д и м к р а т к у ю х а р акт е ри с т и ку р еа л и з о в а н ны м н а ПЭ ВМ я з ы к а м п р о г р ам м и р о в а ни я в п о р я д ке в о з р а ста н и я и х у ро вн я .

Д в о и ч н ы й я з ы к я вл я ется н е п о с р е д ст в е н н о ма ш и н ны м я з ы к о м. В н ас т о я щее в р емя т а к и е я з ы к и п ро г р а мм и с т ами п р а кт и ч е с к и н е п р и м е н я ю тся.

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

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

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

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

Яз ы к п р о гр а мм и ров а ния С (С и ) п е р в о н ача льн о б ы л р а з р а бо т ан д л я р е а ли- з а ц и и о п е р а ци о н н о й с и ст е мы UN IX в н ача л е 19 7 0 - х г о д о в . В по с л е д у ю щем п р и об р ел в ы с о к у ю п о п у л я рн о сть с р е д и с и сте м н ы х и п р и к л а д н ы х п р о г р ам м и- ст о в . В н ас т о я щее в р емя э т о т я зы к р еа л и з о в а н н а б о ль ш и н с т в е Э ВМ.

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

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

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

B a s i c ( B e g i n n e r s A l l - p u r po s e S y m boli c I n s t r u c ti o n C o d e – м но г о ц е л е во й я зы к с и м в о л и ч е ск и х и н с т р у к ци й д л я н а ч ин а ю щ и х – Б э й с и к) пр е д с т а вл яет с о бо й про с т о й я з ы к п р о г р а мм иро в а ни я , р а з р а бо т а н ны й в 1 9 6 4 г о д у д л я и с по льз о в а н и я но в и чка м и . О н бы л р а з р а б о т а н ка к п р о с т е й ш и й я з ы к д л я н е по с р е д с тв е н н о г о об- ще н и я че л о в ека с в ы ч и с л и те льно й м а ш и но й . П о э т о му п е р во н а ч а ль н о р а бо т а в е л ась в и н т е р ак т и в но м р еж и ме с и с польз о в а н и ем ин т е р п р етат о ро в . В н ас т о я- щее в р е м я д л я э т о г о я з ы ка и ме ю тся т ак же и к о м пи л я т о ры .

С о г л а с н о к о н ц е п ци ям, з а ло ж е н н ы м в B a s i c , э т о т я зы к в с м ы с л е с т р о г о сти и ст р о й н о сти я вл я е т с я а н т ип о д о м я з ы ка P as c al . В ч аст н о с т и , в н ем ш и р о к о р а с-

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

B a s i c ш ир о к о р а с п р о с т р а н ен н а Э ВМ р а зл и ч ны х т и п о в и о че н ь п оп у л яр е н в с р е д е п р о г р ам м и с т о в , о с о б е н н о н а ч и н а ю щ и х . С у щест в у е т м н о ж е ст в о д и а л е к- т о в э т о г о я з ы к а, ма л о с о в м е ст и м ы х меж д у с о б ой . B a si c акт и вн о п о г ло щ а ет м н о г и е к о н ц е п ц и и и но в и н ки и з д р у г и х я з ы к о в . П о э т о му о н д о с т ат о ч н о д и н а- м и ч е н , и н е льз я о д н о з н а ч н о оп р е д е л и ть его у ро в е н ь .

P as c a l ( П а с к а л ь ) я вл яется о д н и м и з н а и б о л ее по п у л я рн ы х с р е д и п р и к л а д- н ы х пр о г р амм и ст о в п р оц е д у р н ы м я з ы к о в п ро г р а м м и р ов а н и я , о с о б е н н о дл я ПЭ ВМ. Ра з р а бо т а н н ы й в 19 7 0 г о д у ш в е йц а р с к и м с п е ц и а л и ст о м в о б л асти в ы- ч и с л и т е ль н о й т е хн и ки пр о фе с с ор о м Н . В ир т о м я з ы к н а з в ан в честь фр а н ц у з- ск о г о мате м ат и к а и п о з ам ы с л у а в т ор а пр е дн а з н а ч а л ся д л я об у че н и я п ро г р а м- м и р о в а ни ю . О дн а ко я з ы к п о л у ч и л ся н а ст о ль ко у д ач н ы м, ч то стал о д н и м и з о с- но в н ы х и н ст р у ме н т о в п р и к л а д ны х и с и сте м н ы х п р о г р а м м и с т о в п р и р е ш е ни и з а д ач в ы ч и с л и те льн о го и и н ф о р ма ци о н н о - л о г и че с к о г о х а р акте р а. В 1 9 7 9 г о д у бы л п о д г о т о вл ен п р о ект о п и с а н и я я з ы ка – Б ри т ан с к и й ста н д а р т я з ы ка п р о- г р ам м и ро в а н и я Pas c a l B S 61 9 2 : 19 82 , к о т ор ы й стал т а кже и ме ж д у н а р од н ы м ста н д а р т о м ISO 7 18 5.

В я з ы к е Pa s c a l р е а л и з о в а н ря д к о нц е п ц ий , р а с сма т ри в а ем ы х к а к о с н о в а

« ди с ц и п ли н ир о в а нн о г о » п р о г р амм ир о в а н и я и з а и мст в о в а н н ы х вп о с л е д ст в и и р а зр а б о т ч и к а ми м н о г и х я зы к о в . О д ни м и з с у щест в е н ны х п р и зн а к о в я з ы к а P as c a l я в л яется по с л е до в а т е ль н ая и до стат о ч н о п о л н ая р е а л и з а ц и я к о н ц е п ци и ст р у кт у рно го пр о г р амм и ро в а н и я. П р и ч ем э то о с у щест вл я ется н е т о ль к о п у тем у пор я до ч и в а н и я с в я з ей м е ж д у ф р агм е н т ами п ро г р а м мы п о у пр а вл е ни ю , н о и з а счет с т р у кт у ри з а ц и и д а нн ых . К р о ме т о г о , в я зы ке р еа л и з о в а н а к он ц е п ц и я о п р е- д е л е н и я но в ы х т и п о в д а н н ы х н а о с н о в е у же и ме ю щ их с я. Э т о т я зы к, в о т л и ч и е о т я зы ка С , я вл яет с я ст р о г о т и п и з и р о в а н н ы м.

Читайте также: