Программирование [programming]
1. Совокупность процессов, связанных с разработкой программ и их реализацией. В широком смысле к указанным процессам относят все технические операции, необходимые для создания программ, включая анализ требований, все стадии разработки, а также реализацию в виде готового программного продукта. В узком смысле под программированием часто понимают только процессы выбора структуры, кодирования и тестирования программ.
2. То же, что и программирование математическое: т. е. относящееся к разделу прикладной математики, исследующей проблемы оптимизации решения различных задач человеческой деятельности (в том числе - управления, проектирования, планирования и т.п.).
В зависимости от назначения и/или способа написания программ различают:
- прикладное программирование [application programming] - разработка и отладка программ для конечных пользователей (см. далее "Прикладная программа"), например, бухгалтерских, обработки текстов и т.п.
- системное программирование [system programming] - разработка средств общего программного обеспечения, в том числе операционных систем, вспомогательных программ, пакетов программ общесистемного назначения, например, автоматизированных систем управления, систем управления базами данных и т.д.
- декларативное (логическое, продукционное) программирование [declarative programming, logical programming] - метод программирования, предназначенный для решения задач искусственного интеллекта. В указанном контексте программа описывает логическую структуру решения задачи, указывая преимущественно, что "нужно сделать", не вдаваясь в детали "как это делается". Используются языки программирования типа Пролог.
- объектно-ориентированное программирование, объектное программирование, ООП [OOP, Object-Oriented Programming] - метод программирования, основанный на использовании концепции объекта, абстрагирующего конкретные его реализации в предметной области. При этом данные тесно связываются с выполняемыми над объектами процедурами. Например, круг на экране монитора может рассматриваться как объект, данные о котором характеризуют положение (координаты) центра, величину радиуса, толщину и цвет линии. Процедуры, связанные с этим объектом - перемещение, изменение размера, стирание и т.д.
Историческая справка
Объектно-ориентированное программирование разрабатывалось и усовершенствовалось в 1960-1970-х гг. В настоящее время оно используется в ряде языков программирования высокого уровня (Си++, Java, Smalltalk, ObjectLisp и др.). В начале 1990-х гг. была выявлена потребность в выработке единых спецификаций, которые должны позволить программным продуктам различных фирм взаимодействовать друг с другом в общей информационной среде. Решение указанной задачи взяла на себя фирма OMG (США). Выработанная OMG идеология "Бизнес-объекта" к 1997 г. получила достаточно широкое распространение при создании промышленных программных приложений.
Основу этой идеологии составляет "Общая архитектура брокера объектных запросов" - CORBA (Common Object Request Broker Architecture), центральной частью которой является спецификация на программный продукт (ORB, Object Request Broker), представляющий собой набор доменов или динамических библиотек, который обеспечивает взаимодействие различных программ в распределенной компьютерной среде. Кроме того, фирма OMG разработала спецификации обмена данными между брокерами различных фирм-производителей - GIOP (General Inter ORB Protocol) и с той же целью для Интернета - IIOP (Internet 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] - метод программирования, основанный на моделировании мыслительной деятельности человека. Используется для решения задач, не имеющих строго формализованного алгоритма или связанных с неполнотой исходных данных.