X-PDF

Статья на тему: Программирование.

Поделиться статьей

 

 

 

«Программирование».

 

 

 

 

 

 

 

 

 

 

 

Подготовил

учительинформатики

СавловскийЭрик Александрович.

 

 

Программирование– это раздел информатики, задача которого – разработка программного обеспеченияЭВМ.

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

Язык программирования – этофиксированная система обозначений для описания алгоритмов и структурных данных.

Языки программирования похожи наязыки естественного общения. И у тех, и у других можно найти много общего. Вузком смысле слово «программирование» обозначает процесс разработки программына определенном языке программирования. Разработку средств системного ПО исистем программирования принято называть системным программированием;разработку прикладных программ называют прикладным программированием. По этомупринципу делят программистов на системных и прикладных, в зависимости от типасоздаваемых ими программ.

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

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

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

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

2Парадигмы программирования 

2.1История происхождения термина «парадигмы программирования» 

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

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

Представленная информация была полезной?
ДА
58.52%
НЕТ
41.48%
Проголосовало: 957

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

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

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

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

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

Теоретическое программированиепридерживается публикационной направленности, нацеленной на сопоставимостьрезультатов научных экспериментов в области программирования и информатики.Программирование пытается выразить свои формальные модели, показать ихзначимость и фундаментальность. Эти модели унаследовали основные чертыродственных математических понятий и утвердились как алгоритмический подход винформатике. Стремление к доказательности построений и оценка их эффективности,правдоподобия, правильности, корректности и других формализуемых отношений насхемах и текстах программ послужили основой структурированного программированияи других методик достижения надежности процесса разработки программ, напримерграмотное программирование. Стандартные подмножества Алгола и Паскаля,послужившие рабочим материалом для теории программирования, сменились болееудобными для экспериментирования аппликативными языками, такими как ML,Miranda, Scheme, Haskell и другие. Теперь к ним присоединяются нововведения в Cи Java.

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

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

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

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

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

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

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

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

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

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

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

 

 

 

 

 

 

 

Заключение 

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

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

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


Поделиться статьей
Автор статьи
Анастасия
Анастасия
Задать вопрос
Эксперт
Представленная информация была полезной?
ДА
58.52%
НЕТ
41.48%
Проголосовало: 957

или напишите нам прямо сейчас:

Написать в WhatsApp Написать в Telegram

ОБРАЗЦЫ ВОПРОСОВ ДЛЯ ТУРНИРА ЧГК

Поделиться статьей

Поделиться статьей(Выдержка из Чемпионата Днепропетровской области по «Что? Где? Когда?» среди юношей (09.11.2008) Редакторы: Оксана Балазанова, Александр Чижов) [Указания ведущим:


Поделиться статьей

ЛИТЕЙНЫЕ ДЕФЕКТЫ

Поделиться статьей

Поделиться статьейЛитейные дефекты — понятие относительное. Строго говоря, де­фект отливки следует рассматривать лишь как отступление от заданных требований. Например, одни


Поделиться статьей

Введение. Псковская Судная грамота – крупнейший памятник феодального права эпохи феодальной раздробленности на Руси

Поделиться статьей

Поделиться статьей1. Псковская Судная грамота – крупнейший памятник феодального права эпохи феодальной раздробленности на Руси. Специфика периода феодальной раздробленности –


Поделиться статьей

Нравственные проблемы современной биологии

Поделиться статьей

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


Поделиться статьей

Семейство Первоцветные — Primulaceae

Поделиться статьей

Поделиться статьейВключает 30 родов, около 1000 видов. Распространение: горные и умеренные области Северного полушария . многие виды произрастают в горах


Поделиться статьей

Вопрос 1. Понятие цены, функции и виды. Порядок ценообразования

Поделиться статьей

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


Поделиться статьей

или напишите нам прямо сейчас:

Написать в WhatsApp Написать в Telegram
Заявка
на расчет