Главная / Информатика / Реферат на тему "ПРОГРАММИРОВАНИЕ КАК РАЗДЕЛ ИНФОРМАТИКИ. МЕТАФОРЫ (ПАРАДИГМЫ) ПРОГРАММИРОВАНИЯ. МЕТОДОЛОГИИ ПРОГРАММИРОВАНИЯ"

Реферат на тему "ПРОГРАММИРОВАНИЕ КАК РАЗДЕЛ ИНФОРМАТИКИ. МЕТАФОРЫ (ПАРАДИГМЫ) ПРОГРАММИРОВАНИЯ. МЕТОДОЛОГИИ ПРОГРАММИРОВАНИЯ"

ФГБОУ ВПО «МОРДОВСКИЙ ГОСУДАРСТВЕННЫЙ ПЕДАГОГИЧЕСКИЙ ИНСТИТУТ ИМЕНИ М. Е. ЕВСЕВЬЕВА»



Факультет физико-математический











Реферат

ПРОГРАММИРОВАНИЕ КАК РАЗДЕЛ ИНФОРМАТИКИ. МЕТАФОРЫ (ПАРАДИГМЫ) ПРОГРАММИРОВАНИЯ. МЕТОДОЛОГИИ ПРОГРАММИРОВАНИЯ







Выполнила:

студентка группы МДМ-112

Гришина Мария













Саранск 2016


Программирование как раздел информатики


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

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

Во «внутреннем мире» ЭВМ информация записывается, хранится, обрабатывается, пересылается между отдельными устройствами с помощью электрических сигналов. Соответственно и управление этими процессами осуществляется электронными устройствами: процессору и вспомогательному оборудованию ЭВМ присуще восприятие определенных последовательностей электрических сигналов. Физическая природа сигналов делает их труднодоступными для восприятия и осознания человеком. Отсутствию или присутствию сигналов ставится в однозначное соответствие определенное сочетание нулей и единиц (в 8- или 16-ричной системах исчисления так называемый двоичный код).

Общей задачей программирования является написание с помощью формальных языков, служащих средством общения между человеком и ЭВМ (языки программирования), оптимальных по определенным критериям (времени исполнения, объему используемой памяти, универсальности и пр.) программ. Арсенал живых (т.е. употребляемых в настоящее время) языков программирования, посредством которых команды программы связываются с определенными кодами и соответствующими им электрическими сигналами, в настоящее время составляет несколько сотен. Как правило, названия языков программирования сокращенно отражают основное назначение языка (АЛГОЛ — ALGOrithmic Language — алгоритмический язык, ФОРТРАН — FORmula TRANslatig language — язык перевода формул, БЕЙСИК — аббревиатура английского названия «Универсальный символический инструктивный код для начинающих» ПЛ/1 — Programming Ganguage — язык программирования и др. Сам язык включает набор команд (операторов), предписывающих ЭВМ выполнение законченных действий (например, в ФОРТРАНЕ используется около 20 английских слов:READ — прочитать, RETURN — вернуться, GO ТО — перейти и др.), которые вместе с дополнительной информацией в виде цифр и букв указывают ЭВМ, какую операцию и с какими данными необходимо выполнить. Совпадение результата действия оператора с общепринятым смысловым или бытовым значением команды (как, например в фортране) является характерной особенностью так называемых языков П. высокого уровня, появившихся относительно недавно (60-е гг.). На ранних этапах развития вычислительной техники программы для ЭВМ писались машинными кодами («машинными словами») — громоздкими последовательностями цифр. Числовой способ выражения инструкций не позволял следить за смыслом составляемых из них «текстов» программ. Дополнительные ограничения возникали в связи с тем, что в различных конструкциях машин по-разному решались проблемы хранения электрических сигналов и управления ими. Соответственно каждый из типов ЭВМ был приспособлен к пониманию только своих команд и их сочетаний. В связи с этим профессия программиста долгое время являлась уделом избранных, а процесс П. был недоступен для неспециалистов. Это долгое время обусловливало почти полное отчуждение пользователя от ЭВМ. Создание языков П. высокого уровня — систем нотации машинных команд, близких к понятиям формулирования задач в определенных предметных областях, в значительной степени способствовало устранению барьера между пользователем и ЭВМ.

В настоящее время программирование стало одной из наиболее рентабельных областей научного прогресса (объем продаж программных продуктов превышает аналогичные показатели для собственно ЭВМ — технических устройств, в которых они применяются, составив в 1988 г. только для США приблизительно 25 млрд. долларов). Вся современная стратегия использования ЭВМ — происходящий и углубляющийся процесс их широкого использования почти во всех сферах человеческой деятельности — наряду с достижениями микроэлектроники базируется на успехах программирования, которое развивается в трех взаимосвязанных направлениях. Теоретическое программирование изучает принципы и способы построения программ, имея конечной целью автоматический (с помощью ЭВМ) синтез программ для решения любых задач; системное программирование направлено на создание комплексов программ длительного и массового использования, обеспечивающих пользователям максимум удобств и возможностей (с помощью посредников или самостоятельно) для применения вычислительной техники при решении основного множества универсальных задач; прикладное программирование обслуживает конкретные (в т.ч. уникальные или узкоспециальные) потребности в применении ЭВМ представителями различных областей науки и практики.

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

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

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

Другой важной проблемой, осознание которой стимулировало ускоренное развитие программирования, явилось возникновение конфликтной ситуации между максимально возможной производительностью программиста (за рабочий день специалист высшей квалификации может составить программу или ее блок «длиной» в несколько сотен операторов) и постоянно растущей производительностью ЭВМ (современный персональный компьютер производит порядка 1 миллиона операций в секунду, а супер-ЭВМ — миллиарда). Путь устранения этого противоречия на основе создания универсальных пакетов прикладных программ, позволяющих пользователю самостоятельно или с привлечением специалиста адаптировать их к собственным проблемам, является развитием традиционного направления и поэтому, по мнению экспертов недостаточно радикален для того, чтобы разрешить эту проблему. Подсчитано, что если пытаться распространить существующие методы программирования на удовлетворение потенциальных потребностей пользователей в программных продуктах, то необходимо в 3—4 раза повысить производительность труда программистов и в 10—20 раз увеличить надежность (время работы без отказов) программ. С учетом устойчивой тенденции к приросту парка машин (в последнее пятилетие каждые полгода в мире происходит удвоение общей емкости памяти ЭВМ всех классов) это означает, что никакое разумное увеличение числа программистов не в состоянии уже в обозримом будущем обеспечить пользователей гаммой готовых программ, соответствующих как потенциальному многообразию областей применения ЭВМ, так и разрешаемых с их помощью задач. Прогноз показывает, что для полного использования производительности парка ЭВМ ожидаемая потребность в программистах соизмерима с численностью населения земного шара, если не будут найдены новые подходы к программированию.

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


Метафоры (парадигмы) программирования


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

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

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


История термина

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

Термин «парадигма программирования» впервые применил в 1978 году Роберт Флойд в своей лекциилауреата премии Тьюринга.

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

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

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


Различные определения

Далеко не все авторы, использующие термин «парадигма программирования», решаются дать интенсиональное определение данному термину. Однако и те определения, которые удаётся найти, серьёзно отличаются друг от друга. Диомидис Спинеллис даёт следующее определение.

Слово «парадигма» используется в программировании для определения семейства обозначений (нотаций), разделяющих общий способ (методику) реализаций программ. (В оригиналеThe word paradigm is used in computer science to talk about a family of notations that share a common way for describing program implementations)

Для сравнения тот же автор приводит определения из других работ. В статье Дэниела Боброва парадигма определяется как «стиль программирования как описания намерений программиста». Брюс Шнайер (Bruce Shriver) определяет парадигму программирования как «модель или подход к решению проблемы», Линда Фридман (Linda Friedman) — как «подход к решению проблем программирования».

Памела Зейв (Pamela Zave) даёт определение парадигмы как «способа размышления о компьютерных системах» (в оригинале «way of thinking about computer systems»).

Питер Вегнер (Peter Wegner) предлагает другой подход к определению термина парадигмы программирования. В его работе «Concepts and paradigms of object-oriented programming» парадигмы определяются как «правила классификации языков программирования в соответствии с некоторыми условиями, которые могут быть проверены».

Тимоти Бадд предлагает понимать термин «парадигма» как «способ концептуализации того, что значит „производить вычисления“, и как задачи, подлежащие решению на компьютере, должны быть структурированы и организованы».

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


Основные модели программирования

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

  • Декларативное программирование

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

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

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

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

  • Программирование, основанное на классах

  • Программирование, основанное на прототипах

  • Субъектно-ориентированное программирование


Подходы и приёмы

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

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

  • Аппликативное программирование

  • Обобщённое программирование

  • Доказательное программирование

  • Порождающее программирование

  • Аспектно-ориентированное программирование

  • Агентно-ориентированное программирование

  • Рекурсия

  • Автоматное программирование

  • Событийно-ориентированное программирование

  • Компонентно-ориентированное программирование

  • Грамотное программирование











Методология программирования


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

Каждая методология характеризуется своим

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

  • согласованным множеством моделей методов, которые реализуют данную методологию;

  • концепциями (понятиями), позволяющими более точно определить методы.

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


Происхождение

Можно проследить три пути возникновения методологий. Во-первых, они могут являться выражением практического опыта. Во-вторых, методологии могут происходить от одной из четырёх моделей алгоритма: абстрактная машина Тьюринга (императивное программирование), рекурсивные функции Гильберта и Аккермана (структурное программирование), лямбда-исчисление Чёрча (функциональное программиромание), нормальные алгоритмы Маркова (логическое программирование). В-третьих, методологии можно объяснить через отображение одной из трёх структур языка моделирования на структуру языка программирования. Составными частями могут быть структура данных, структура управления и логика. Каждое из девяти отображений определяет либо методологию, либо достаточно серьёзный метод программирования. Например, отображение логика-логика лежит в основе логического программирования.








Классификация


Классификация по ядрам

При подходе к методологии, как имеющей ядро (англ. core), соответствующее способу описания алгоритма, и дополнительные особенности, можно выделить следующие пять основных ядер методологий:

  • Методология императивного программирования

  • Методология ООП

  • Методология функционального программирования

  • Методология логическое программирование

  • Методология программирования в ограничениях

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


Классификация по топологической специфике

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


Классификация по специфике реализации

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

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


Выбор

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

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

















































Список использованных источников

  1. Роганов Е.А., Основы информатики и программирования: учеб. пособие. – М.: МГИУ, 2001.

  2. Одинцов И. О. Профессиональное программирование. Системный подход. — 2-е изд.. — СПб.: БХВ-Петербург, 2004. — 624 с.

  3. http://lyubo-yasenovskay.narod.ru/progr1.html

  4. https://ru.wikipedia.org/wiki/





Реферат на тему "ПРОГРАММИРОВАНИЕ КАК РАЗДЕЛ ИНФОРМАТИКИ. МЕТАФОРЫ (ПАРАДИГМЫ) ПРОГРАММИРОВАНИЯ. МЕТОДОЛОГИИ ПРОГРАММИРОВАНИЯ"
  • Информатика
Описание:

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

Автор Гришина Мария Александровна
Дата добавления 13.10.2016
Раздел Информатика
Подраздел Другое
Просмотров 71
Номер материала MA-067947
Скачать свидетельство о публикации

Оставьте свой комментарий:

Введите символы, которые изображены на картинке:

Получить новый код
* Обязательные для заполнения.


Комментарии:

↓ Показать еще коментарии ↓