Стили программирования

Автор работы: Пользователь скрыл имя, 09 Января 2012 в 12:22, контрольная работа

Краткое описание

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

Содержание работы

Введение 2
1. Стили программирования. 3
1.1. Процедурное (императивное) программирование. 3
1.2. Функциональное программирование. 8
1.3. Логическое программирование. 11
1.4. Объектно-ориентированное программирование. 12
Заключение 16
Литература 17

Содержимое работы - 1 файл

Стили программирования_готово.docx

— 41.30 Кб (Скачать файл)

Содержание  

Введение 2

1. Стили программирования. 3

    1.1. Процедурное (императивное) программирование. 3

    1.2. Функциональное программирование. 8

    1.3. Логическое программирование. 11

    1.4. Объектно-ориентированное программирование. 12

Заключение 16

Литература 17 

 

Введение

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

     Язык  программирования служит двум связанным  между собой целям: он дает программисту аппарат для задания действий, которые должны быть выполнены, и  формирует концепции, которыми пользуется программист, размышляя о том, что  делать. Первой цели идеально отвечает язык, который настолько "близок к машине", что всеми основными  машинными аспектами можно легко  и просто оперировать достаточно очевидным для программиста образом. Второй цели идеально отвечает язык, который  настолько "близок к решаемой задаче", чтобы концепции ее решения можно  было выражать прямо и коротко. 

 

  1. Стили программирования.
 

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

    1. Процедурное (императивное) программирование.

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

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

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

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

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

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

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

     Дадим краткую характеристику реализованным  на ПЭВМ языкам программирования в порядке возрастания их уровня.

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

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

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

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

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

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

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

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

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

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

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

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

     Pascal является одним из наиболее популярных среди прикладных программистов процедурным языком программирования, особенно для ПЭВМ. Разработанный в 1970 году швейцарским специалистом в области вычислительной техники профессором Н. Виртом, язык назван в честь французского математика и по замыслу автора предназначался для обучения программированию. Однако язык получился настолько удачным, что стал одним из основных инструментов прикладных и системных программистов при решении задач вычислительного и информационно-логического характера. В 1979 году был подготовлен проект описания языка — Британский стандарт языка программирования PascalBS6192, который стал также и международным стандартом ISO 7185.

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

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

Pascal реализован  на ЭВМ различных типов, но  наиболее распространен и развит  для ПЭВМ. В настоящее время  широко используются такие версии  этого языка для ПЭВМ, как BorlandPascal и TurboPascal.

     К процедурным языкам программирования относятся:

  • Ada (язык общего назначения)
  • Basic (версии начиная с Quick Basic до появления Visual Basic)
  • Си
  • КОБОЛ
  • Фортран
  • Модула-2
  • HAL/S
  • Pascal
  • ПЛ/1
  • Рапира
  • REXX
    1. Функциональное программирование.

     Сущность  функционального (аппликативного) программирования определена А. П. Ершовым как «... способ составления программ, в которых единственным действием является вызов функции, единственным способом расчленения программы па части является введение имени для функции, а единственным правилом композиции — оператор суперпозиции функции. Никаких ячеек памяти, ни операторов присваивания, ни циклов, ни, тем более, блок-схем, ни передачи управления».

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

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

     Аппликативный язык программирования включает следующие  элементы:

  • классы констант, которыми могут манипулировать функции;
  • набор базовых функций, которые программист может использовать без предварительного объявления и описания;
  • правила построения новых функций из базовых;
  • правила формирования выражений на основе вызовов функций.

Информация о работе Стили программирования