Программирование[programming]

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

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

В зависимости от назначения и/или способа написания программ различают:

’ прикладное программирование[application programming] - разработка и отладка программ для конечных пользователей (см. далее "Прикладная программа"), например бухгалтерских, обработки текстов и т.п.;

’ системное программирование[system programming] - разработка средств общего программного обеспечения, в том числе операционных систем, вспомогательных программ, пакетов программ общесистемного назначения, например, автоматизированных системуправления, систем управления базами данныхи т.д.;

’ декларативное (логическое, продукционное) программирование[declarative programming, logical programming] - метод программирования, предназначенный для решения задач искусственного интеллекта. В указанном контексте программа описывает логическую структуру решения задачи, указывая преимущественно, что "нужно сделать", не вдаваясь в детали "как это делается". Используются языки программирования типа Пролог;

’ объектноориентированное программирование, объектное программирование, ООП[OOP, Object-Oriented Programming] - метод программирования, основанный на использовании концепции объекта, абстрагирующего конкретные его реализации в предметной области. При этом данные тесно связываются с выполняемыми над объектами процедурами. Например, круг на экране монитора может рассматриваться как объект, данные о котором характеризуют положение (координаты) центра, величину радиуса, толщину и цвет линии. Процедуры, связанные с этим объектом - перемещение, изменение размера, стирание и т.д.

Историческая справка

Объектноориентированное программирование разрабатывалось и усовершенствовалось 1960-1970-х гг. В настоящее время используется в ряде языков программирования высокого уровня(Си++, Java, Смолток, ObjectLisp и др.). В начале 1990-х гг. была выявлена потребность в выработке единых спецификаций, которые должны позволить программным продуктам различных фирм взаимодействовать друг с другом в общей информационной среде. Решение указанной задачи взяла на себя фирма OMG(США). Выработанная OMG идеология "Бизнес-объекта" к 1997 г. получила достаточно широкое распространение при создании промышленных программных приложений. Основу этой идеологии составляет "Общая архитектура брокера объектных запросов" - CORBA(Common Object Request Broker Architecture), центральной частью которой является спецификация на программный продукт (ORB, Object Request Broker), представляющий собой набор доменовили динамических библиотек, который обеспечивает взаимодействие различных программ в распределенной компьютерной среде. Кроме того, фирма OMG разработала спецификации обмена данными между брокерами различных фирм-производителей - GIOP(General Inter ORB Protocol) и с той же целью для Интернета - IIOP(Интернет Inter ORB Protocol). Поддержкой и развитием бизнес-объектной технологии занимается специально организованный в рамках OMG отдельный комитет - BODTF(Business Object Domain Task Force). В 1998 г. этим комитетом выпущена спецификация (BOCA, Business Object Component Architecture), регламентирующая построение программных систем из компонент-объектов, созданных на основе технологии CORBA/IIOP.

’ параллельное программирование[concurrent programming] - разработка программ, обеспечивающих одновременное (параллельное) выполнение операций, связанных с обработкой данных;

’ процедурное (процедурно-ориентированное) программирование[procedure-oriented programming] - метод программирования, в соответствии с которым программы пишутся как перечни последовательно выполняемых команд. При этом используется процедурно-ориентированные язык программирования;

’ структурное программирование, модульное программирование[structured programming, modular programming] - метод написания программ небольшими независимыми частями - модулями, каждый из которых связан с какой-либо процедуройили функцией. При этом результирующая программа организуется в виде совокупности взаимосвязанных по определенным правилам модулей. Это упрощает разработку сложных программных продуктов и их тестирование. Структурное программирование реализуется языками Паскальи Оберон(см. далее также "Функциональное программирование");

’ функциональное программирование[functional programming] - метод программирования, основанный на разбиении алгоритма решения задачи на отдельные функциональные модули, а также описании их связей и характера взаимодействия. Для данного вида программирования наиболее широко используются языки HOPEи ML. Элементы функционального программирования реализуются также другими языками, например Си;

’ эвристическое программирование[heuristic programming] - метод программирования, основанный на моделировании мыслительной деятельности человека. Используется для решения задач, не имеющих строго формализованного алгоритмаили связанных с неполнотой исходных данных.