Стили и методы программирования: Информация. Стили программирования


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

Содержание: 

  1. Введение………………………………………………………………2
  2. Программирование…………………………………………………...3
  3. Стили программирования……………………………………………3
  4. Классификация стилей программирования…………………………4
  5. Процедурное программирование…………………………………….5
  6. Функциональное программирование………………………………...9
  7. Логическое программирование………………………………………11
  8. Объектно-ориентированное программирование……………………12
  9. Заключение…………………………………………………………….15
  10. Список литературы……………………………………………………16
                    

   1.Введение.

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

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

   Хороший стиль программирования предполагает:

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

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

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

   Программирование  включает в себя:

  • Анализ;
  • Проектирование - разработка алгоритма;
  • Кодирование и Компиляцию - написание исходного текста программы и преобразование его в исполнимый код с помощью компилятора;
  • Тестирование и отладку - выявление и устранение ошибок;
  • Сопровождение.
 

   Работая над программой, программист, особенно начинающий, должен хорошо представлять, что программа, которую он разрабатывает, предназначена, с одной стороны, для пользователя, с другой — для самого программиста. Текст программы нужен прежде всего самому программисту, а также другим людям, с которыми он совместно работает над проектом. Поэтому для того, чтобы работа была эффективной, программа должна быть легко читаемой, ее структура должна соответствовать структуре и алгоритму решаемой задачи. Как этого добиться? Надо следовать правилам хорошего стиля программирования. Стиль программирования — это набор правил, которым следует программист в процессе своей работы. Очевидно, что хороший программист должен следовать правилам хорошего стиля.

   Правила хорошего стиля - результат соглашения между программистами. Считается, что в соответствии с правилами хорошего стиля программный код должен поддерживать:

   - очевидную  логику;

   - естественные  выражения; 

   - осмысленные  имена; 

   - аккуратное  форматирование;

   - развернутые  комментарии; 

   - отсутствие  хитрых трюков и необычных конструкций.

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

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

   Сводить понятие стиля программирования только к правилам записи текста программы было бы неверно. Стиль, которого придерживается программист, проявляется во время работы программы. Хорошая программа должна быть прежде всего надежной и дружественной по отношению к пользователю.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

   Ваsic(Бэйсик) (Beginners All-purpose Symbolic Instruction Code) — многоцелевой язык символических инструкций для начинающих) представляет собой простой язык программирования, разработанный в 1964 году для использования новичками. Он был разработан как простейший язык для непосредственного общения человека с вычислительной машиной. Поэтому первоначально работа велась в интерактивном режиме с использованием интерпретаторов. В настоящее время для этого языка имеются также и компиляторы.

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

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

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

stud24.ru

4. Правила хорошего стиля программирования

  • Каждая программа должна начинаться с комментария, содержащего имя и фамилию программиста, назначение программы, номер версии и дату создания.

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

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

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

  • Имена переменных и подпрограмм должны быть информативными, т.е. такими, чтобы, глядя на них, другой программист мог догадаться о назначении переменной или подпрограммы. Плохо подобранное имя, дезориентирующее читателя, даже хуже, чем неинформативное имя, например X или A. Имена переменных должны состоять из букв нижнего регистра, кроме букв, с которых начинается второе или последующие слова, входящие в имя, например taxRate или numberOfCars. Имена подпрограмм должны начинаться с буквы верхнего регистра.

  • Имена объектов, свойств и методов должны начинаться с букв верхнего регистра.

  • Имя каждого компонента должно начинаться с префикса, состоящего из трех букв нижнего регистра и обозначающего тип компонента. Например, имя формы содержит префикс frm, поля ввода – edt, кнопки – btn и т.д. Буквы после префикса описывают назначение или содержание компонента. Например, поле ввода edtLastName содержит фамилию.

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

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

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

  • У всех вещественных констант цифры должны быть как слева, так и справа от десятичной точки, например 0.15, а не .15.

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

  • Для преобразования вещественного значения в строку и обратно используйте процедуры Str() и Val(), а для целых значений в языке Object Pascal – функции StrToInt() и IntToStr() соответственно.

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

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

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

  • studfiles.net

    Стиль программирования. Основные принципы форматирования. Цели хорошего форматирования. Способы форматирования. Стили программирования.

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

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

    Стиль программирования, под которым понимают стиль оформления программ и их «структурность», также существенно влияет на читаемость программного кода и количество ошибок программирования.

    Основные принципы форматирования

    Основная теорема форматирования гласит, что хорошее ви­зуальное форматирование показывает логическую структуру программы. Создание красивого кода — хорошо, а демонстрация структуры кода — лучше. Если одна методика лучше показывает структуру кода, а другая выглядит красивей, следует использовать ту, которая лучше демонстрирует структуру.

    Форматирование — это ключ к структуре программы. Компьютеру важна исключительно информация о скобках или опе­раторах begin и end, а читатель-человек склонен делать выводы из визуального представления кода.

    For i:=1 to 10 do

           s:=s+a[i];

           s2:=s2+a[i];

           s3:=s3+a[i];

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

    Цели хорошего форматирования

    Говоря объективно, хорошая схема форматирования должна делать следующее:

    точно представлять логическую структуру кода. Для демон­страции логической структуры программисты обычно при­меняют отступы и другие неотображаемые символы;

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

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

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

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

    Способы форматирования

    Можно получить хороший формат кода, поразному используя несколько инструментов для форматирования.

    •               Неотображаемые символы

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

    Группировка взаимосвязанных выражений — еще один способ применения неотображаемых символов .

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

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

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

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

    Хотя эту статистику тяжело применить на практике, но одно исследование показало, что оптимальное число пустых строк в программе составляет от 8 до 16 %. Если оно больше 16 %, то время, затрачиваемое на отладку, заметно увеличивается

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

    Скобки

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

    Вариант на C++: 12 + 4% 3 * 7 / 8.

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

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

    •               Программирование от состояний;

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

    •               Сентенциальное программирование;

    •               Программирование от событий;

    •               Программирование от процессов и приоритетов;

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

    •               Действия глобальны, условия локальны.

    •               Естественным способом программирования такой задачи на современных языках программирования является использование операторов goto либо объектов, обменивающихся информацией через общее поле памяти.

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

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

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

    •               В программировании от событий и от приоритетов действия локальны, условия глобальны. Условие состоит в том, что в системе произошло некоторое событие, лучшим обработчиком которого оказалось данное действие. Но в программировании от событий такое событие (например, щелчок мыши) снабжает процесс-обработчик важной информацией (например, о месте щелчка). А при программировании от приоритетов событие состоит в том, что все более приоритетные процессы ничего не могут сделать, и никакой позитивной информации активизируемому процессу не дает.

    •               На уровне понятий более высокого уровня возникают другие стили.

    •               Функциональный стиль программирования, когда программа представляет собой функционал высокого уровня, преобразующий функции, представлен языками ЛИСП и ML. Если функции типизированы, то этот подход, сохраняя возможности понятий высших уровней исключительно компактно выразить сложную структуру, вдобавок крайне эффективен по использованию ресурсов. Но нынешние реализации функционального программирования не могут удержаться от использования рекурсий и нетипизируемых конструкций типа оператора вычисления произвольного выражения или оператора неподвижной точки. Это создало функциональному программированию репутацию крайне неэффективного стиля, подходящего лишь для прототипов программ. Функциональному стилю соответствуют интуиционистская логика предикатов (типизированный вариант) и комбинаторная логика (нетипизированный вариант).

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

     

    starik2222.narod.ru

    Стиль программирования | | | Программирование Realcoding.Net

    <!--StartFragment -->

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

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

    Хороший стиль программирования предполагает:

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

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

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

    Сводить понятие стиля программирования только к правилам записи текста программы было бы неверно. Стиль, которого придерживается программист, проявляется во время работы программы. Хорошая программа должна быть прежде всего надежной и дружественной по отношению к пользователю.

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

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

    Примечание

    Приведенные в книге программы могут служить примером следования правилам хорошего стиля программирования.

    <!--StartFragment -->

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

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

    Хороший стиль программирования предполагает:

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

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

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

    Сводить понятие стиля программирования только к правилам записи текста программы было бы неверно. Стиль, которого придерживается программист, проявляется во время работы программы. Хорошая программа должна быть прежде всего надежной и дружественной по отношению к пользователю.

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

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

    Примечание

    Приведенные в книге программы могут служить примером следования правилам хорошего стиля программирования.

    www.realcoding.net

    Лекция 3 -4 Стили программирования Стили прграммирования

    Лекция 3 -4 Стили программирования

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

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

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

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

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

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

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

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

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

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

    Стили прграммирования • Ваsic(Бэйсик) (Beginners All-purpose Symbolic Instruction Code) — многоцелевой язык символических инструкций для начинающих представляет собой простой язык программирования, разработанный в 1964 году для использования новичками. Он был разработан как простейший язык для непосредственного общения человека с вычислительной машиной. Поэтому первоначально работа велась в интерактивном режиме с использованием интерпретаторов. В настоящее время для этого языка имеются также и компиляторы. • Согласно концепциям, заложенным в Basic, этот язык в смысле строгости и стройности является антиподом языка Pascal. В частности, в нем широко распространены различные правила умолчания, что считается плохим тоном в большинстве языков программирования подобного типа.

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

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

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

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

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

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

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

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

    Стили прграммирования Первым таким языком был LISP(Лисп) (LISt Processing — обработка списков), созданный в 1959 году. Цель его создания состояла в организации удобства обработки символьной информации. Существенная черта этого языка — унификация программных структур и структур данных: все выражения записываются в виде списков.

    Стили прграммирования Логическое программирование • Новую область — логическое, или реляционное программирование, — открыло появление языка PROLOG (Пролог) (PROgramming in LOGic — программирование в терминах логики). Этот язык был создан французским ученым А. Кольмероэ в 1973 году. В настоящее время известны и другие языки, однако наиболее развитым и распространенным языком логического программирования является именно Пролог. Так, имеется свыше 15 различных его реализаций на ПЭВМ. • Языки логического программирования, в особен ности Пролог, широко используются в системах искусственного интеллекта.

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

    Стили прграммирования • Это свидетельствует о декларативности языка логического программирования. Она метко выражена в формуле Р. Ковальского: «алгоритм = логика + управление» . • Языки логического программирования характеризуются: высоким уровнем; • строгой ориентацией на символьные вычисления; • возможностью инверсных вычислений, то есть переменные в процедурах не делятся на входные и выходные; • возможной логической неполнотой, поскольку зачастую невозможно выразить в программе определенные логические соотношения, а также невозможно получить из программы все выводы правильные. • Логические программы, в принципе, имеют небольшое быстродействие, так как вычисления осуществляются методом проб и ошибок, поиском с возвратами к предыдущим шагам.

    Стили прграммирования Объектно-ориентированное программирование • Прототипом объектно-ориентированного программирования послужил ряд средств, входящих в состав языка SIMULA-67. Но в самостоятельный стиль оно оформилось с появлением языка SMALLTALK, разработанного А. Кеем в 1972 году и первоначально предназначенного для реализации функций машинной графики. В основе объектно-ориентированного стиля программирования лежит понятие объекта, а суть его выражается формулой: «объект = данные + процедуры» . • Каждый объект интегрирует в себе некоторую структуру данных и доступные только ему процедуры обработки этих данных, называемые методами.

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

    Стили прграммирования • При создании новых объектов свойства объектов могут добавляться или наследоваться от объектов-предков. • В процессе работы с объектами допускается полиморфизм — возможность использования методов с одинаковыми именами для обработки данных разных типов. К наиболее современным объектноориентированным языкам программирования относятся C++ и Java.

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

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

    Стили прграммирования Язык C++ был разработан в начале 80 -х годов Б. Страуструпом, сотрудником лаборатории Bell корпорации AT&T. Им была создана компактная компилирующая система, в которой за основу был взят язык С, дополненный элементами языков BCPL, Simula-67 и Algol-68. К июлю 1983 года появился язык С с классами, а чуть позднее — C++. К 1990 году была выпущена третья версия языка C++, принятая комитетом ANSI в качестве исходного материала для его стандартизации.

    Стили прграммирования • В 1990 году сотрудник корпорации Sun Д. Гослинг на основе расширения C++ разработал объектноориентированный язык Oak, основным достоинством которого было обеспечение сетевого взаимодействия различных по типу устройств. • Новая интегрируемая в Internet версия языка, получила название Java. • Первый броузер, который поддерживал язык Java, разработан программистом корпорации Sun П. Нафтоном и получил название Hot. Java. • С января 1995 года Java получает распространение в Internet.

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

    Стили прграммирования • Механизм наследования, реализованный в Java, обязывает к более строгому подходу к программированию, что улучшает надежность и понимаемость кода. Язык же C++ обладает сложной, неадекватной и трудной для понимания системой наследования. • Возможности динамического связывания объектов одинаково хорошо представлены в обоих языках, однако, синтаксическая избыточность C++ заставляет и здесь отдать предпочтение языку Java. • В силу своей конструктивности идеи объектноориентированного программирования используются во многих универсальных процедурных языках.

    Стили прграммирования • Так, например, в состав интегрированной системы программирования на языке PASCAL (корпорации Borland International) версии 5. 5 входит специальная библиотека объектно-ориентированного программирования Turbo Vision. • В последнее время многие программы, в особенности объектно-ориентированные, реализуются как системы визуального программирования. Отличительной особенностью таких систем является мощная среда разработки программ из готовых «строительных блоков» , позволяющая создать интерфейсную часть программного продукта в диалоговом режиме, практически без кодирования программных операций.

    Стили прграммирования К числу объектно-ориентированных систем визуального программирования относятся: • Visual Basic, • Delphi, • C++Builder • Visual C++.

    Стили прграммирования Конец темы

    present5.com

    НОУ ИНТУИТ | Стили и методы программирования

    Форма обучения:

    дистанционная

    Стоимость самостоятельного обучения:

    бесплатно

    Доступ:

    свободный

    Документ об окончании:

    Уровень:

    Специалист

    Длительность:

    16:12:00

    Выпускников:

    152

    Качество курса:

    4.19 | 3.88

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

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

    ISBN: 978-5-9556-0023-X

    Теги: algol, CNT, common lisp, lisp, object pascal, pascal, prolog, автоматное программирование, автоматы, алгоритмы, архитектуры, вычисления, компоненты, модель вычислений, очередной символ, программирование, процедуры, РЕФАЛ, сентенциальное программирование, событийное программирование, структуры данных, теория, трансляторы, функтор

    Дополнительные курсы

     

    2 часа 30 минут

    -

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

    -

    Модели вычислений Традиционная архитектура вычислительных машин. Первое понятие о стилях программирования. Модификации традиционной архитектуры. Нетрадиционные архитектуры. Сети данных и параллелизм. Эмуляция и машина программы.

    -

    Традиционные языки Традиционные языки и традиционная архитектура. Структура традиционной программы. Основные традиционные языки. Как текст программы превращается в исполняемый код?

    -

    Синтаксис, семантика и прагматика Как определять язык программирования? Язык как текст (синтаксис). Язык как исполнимый текст (семантика). Конкретизация языка для данной обстановки. Какая часть синтаксиса нужна для семантики?

    -

    Сентенциальное программирование: Рефал

    Глобальные действия и глобальные условия. Конкретизация как один из видов отождествления. Данные и программы Рефала. Модель вычислений. Приемы программирования и примеры программ.

    -

    Функциональное программирование Теоретические предпосылки. Списки и простейшие операции. Значения и модель вычислений. Динамическое порождение программ и функционалы. Объекты и синтез программ.

    -

    Автоматное программирование: анализ задачи Термин "автоматное программирование" принадлежит, насколько нам известно, А.А. Шалыто. Во всяком случае, ему принадлежит заслуга его развития вопреки моде и мнению большинства.

    -

    Структурное программирование Теоретические предпосылки структурного программирования. Локальность действий и условий, требования к программным структурам. Призраки и подпорки. Сеть данных и совместность. Циклический и рекурсивный варианты.

    -

    Общее понятие о стилях программирования Следствия теоремы Гёделя о неполноте для программирования. Логическая несовместимость разных классов задач. Практическая несовместимость ипостасей внутри стилей. Взаимодействия и сочетаемость стилей.

    -

    www.intuit.ru

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

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

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

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

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

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

       Роль  основной конструкции в функциональных языках играет выражение: К выражениям относятся скалярные константы, структурированные объекты, функции, тела функций и вызовы функций. Функция трактуется как однозначное отображение из X в X, где X — множество выражений.

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

       классы  констант, которыми могут манипулировать функции;

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

       правила построения новых функций из базовых;

       правила формирования выражений на основе вызовов  функций.

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

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

       Первым  таким языком был LISP(Лисп) (LISt Processing — обработка списков), созданный  в 1959 году. Цель его создания состояла в организации удобства обработки символьной информации. Существенная черта этого языка — унификация программных структур и структур данных: все выражения записываются в виде списков. 

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

       Новую область — логическое, или реляционное программирование, — открыло появление языка PROLOG (Пролог) (PROgramming in LOGic — программирование в терминах логики). Этот язык был создан французским ученым А. Кольмероэ в 1973 году. В настоящее время известны и другие языки, однако наиболее развитым и распространенным языком логического программирования является именно Пролог. Так, имеется свыше 15 различных его реализаций на ПЭВМ. Языки логического программирования, в особенности Пролог, широко используются в системах искусственного интеллекта, рассматриваемых в данном учебном пособии.

       Центральным понятием в логическом программировании является отношение. Программа представляет собой совокупность определений  отношений между объектами (в  терминах условий или ограничений) и цели (запроса). Процесс выполнения программы трактуется как процесс общезначимости логической формулы, построен- ной из программы по правилам, установленным семантикой используемого языка. Результат вычисления является побочным продуктом этого процесса. В реляционном программировании нужно только специфицировать факты, на которых алгоритм основывается, а не определять последовательность шагов, которые требуется выполнить. Это свидетельствует о декларативности языка логического программирования. Она метко выражена в формуле Р. Ковальского: «алгоритм = логика + управление». Языки логического программирования характеризуются:

       высоким уровнем;

       строгой ориентацией на символьные вычисления;

       возможностью  инверсных вычислений, то есть переменные в процедурах не делятся на входные и выходные;

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

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

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

       Прототипом  объектно-ориентированного программирования послужил ряд средств, входящих в  состав языка SIMULA-67. Но в самостоятельный стиль оно оформилось с появлением языка SMALLTALK, разработанного А. Кеем в 1972 году и первоначально предназначенного для реализации функций машинной графики.

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

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

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

       К наиболее современным объектно-ориентированным  языкам программирования относятся C++ и Java.

       Язык C++ был разработан в начале 80-х годов Б. Страуструпом, сотрудником лаборатории Bell корпорации AT&T. Им была создана компактная компилирующая система, в которой за основу был взят язык С, дополненный элементами языков BCPL, Simula-67 и Algol-68. К июлю 1983 года появился язык С с классами, а чуть позднее — C++. К 1990 году была выпущена третья версия языка C++, принятая комитетом ANSI в качестве исходного материала для его стандартизации.

       В 1990 году сотрудник корпорации Sun Д. Гослинг  на основе расширения C++ разработал объектно-ориентированный язык Oak, основным достоинством которого было обеспечение сетевого взаимодействия различных по типу устройств. Новая интегрируемая в Internet версия языка, получила название Java. Первый броузер, который поддерживал язык Java, разработан программистом корпорации Sun П. Нафтоном и получил название HotJava. С января 1995 года Java получает распространение в Internet.

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

       Принципиальной  разницей между Java и C++ является то, что  первый из них является интерпретируемым, а второй – компилируемым. Синтаксис языков практически полностью совпадает.

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

       В силу своей конструктивности идеи объектно-ориентированного программирования используются во многих универсальных процедурных языках. Так, например, в состав интегрированной системы программирования на языке PASCAL (корпорации Borland International) версии 5.5 входит специальная библиотека объектно-ориентированного программирования Turbo Vision.

       В последнее  время многие программы, в особенности  объектно-ориентированные, реализуются  как системы визуального программирования. Отличительной особенностью таких  систем является мощная среда разработки программ из готовых «строительных блоков», позволяющая создать интерфейсную часть программного продукта в диалоговом режиме, практически без кодирования программных операций. К числу объектно-ориентированных систем визуального программирования относятся; Visual Basic, Delphi, C++Builder и Visual C++.

     

       9.Заключение.  

       Это далеко не всё, что можно рассказать о стилях программирования, но всё же достаточно для формирования первоначального представления о них.

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

       10.Список литературы. 

    1. Академик  А.П. Ершов. Предварительные соображения  о лексиконе программирования . –  http://www.codenet.ru/progr/cpp/C-Style.php
    2. Д. Гриса Наука програмировать.-http://www.finam.ru/dictionary/wordf02BDA/default.asp?n=32
    3. Ф. Л. Бауэра. Язык широкого спектра. – http://allpasc.narod.ru/pascalbook/glav8.htm
    4. Д. Кнута. Искусство программирования. – http://lectureroom.net/9.html
    5. Шелест В.Д. Программирование. – СПб.: БХВ - Петербург, 2002. – 592 с.: ил.
    6. Назаров С.В., Мельников П.П. Программирование на MS Visual Basic: Учеб. пособие / Под ред. Назарова. – М.: финансы и статистика, 2001. – 320 с.: ил.
    7. Венц. Профессия – программист. – http://www.computer-museum.ru/books/n_collection/teaching.htm
    8. Тарасов. Мир, построенный на вероятности. – http://kainsk.tomsk.ru/g2003/other22/hp.htm
    9. Кормен. Алгоритмы. – www.vzshit.net.ru/index.php?id=8
    10. Вирт. Алгоритмы + Структуры данных = Программы. – distance.ru/files/kursov/tech_programming.pdf

    stud24.ru