Вступление
Понятие программирования имеет довольно широкую область использования. Сам по себе термин обозначает процесс подготовки и реализации сценариев, направленных на решение определенных задач. Сюда же входит и последующее развитие составленных программ. В информатике программирование выполняет преимущественно прикладную роль – оно предусматривает использование ряда методов, техник и инструментов, посредством которых можно создавать программы для ЭВМ.
Важный аспект при этом – в каком разрезе рассматривается наука информатика при пояснении специфики программирования. Существует два варианта дисциплины – теоретическая и прикладная. Первая изучает информационные процессы, а также их особенности в рамках разных направлений человеческой деятельности. Ключевые функции, которые выполняются, – это сбор, хранение и обработка данных. Что касается прикладной информатики, здесь акцент уже сделан на решение конкретных задач, для чего и требуется внедрение тех или иных механизмов. В этом случае основой выступает автоматизация функций, описанных выше.
Говоря простым языком, информатика и программирование – неразделимы. Но с теоретической стороны, разработка программного обеспечения необходима для изучения, получения новых данных. С прикладной – это основной инструмент, позволяющий выстроить алгоритм действий таким образом, чтобы получить максимально точный результат в самые короткие сроки, а также с минимальным человеческим вмешательством или даже без него.
Основные разделы программирования
Основой программирования выступают разделы – части системы, которые и обеспечивают процесс создания ПО. Всего их насчитывается пять:
- Теория. Здесь речь идет о самой науке программирования. В ее основе лежит три ключевые позиции – алгоритм, задача и вычислитель. Их взаимодействие обеспечивают прочие структурные элементы. К примеру, это спецификация задач, благодаря которой можно распределять все направления деятельности программы по конкретным особенностям. Также к указанным элементам относятся синтаксический анализ программ, доказательство их свойств, семантика языков и т. д.
- Методология. Подразумевается набор определенных методов, которые используются в процессе программирования. Важно учитывать, что каждая отдельная методология имеет свою направленность и философскую ориентированность, что и отличает их разные варианты.
- Технология. Здесь за основу взят принцип действия технологического процесса. И именно в этом разрезе рассматривается процесс программирования. Соответственно, основными объектами выступают конкретные знания, методы и средства, доступные для использования при разработке того или иного ПО.
- Инженерия. Этот раздел включает прикладное направление программирования. Поэтому в нем предусмотрено использование конкретных инструментальных средств, необходимых для достижения той или иной цели в процессе решения поставленной задачи. Здесь также уместно использовать такой термин, как «творческая техническая деятельность», так как зачастую разработчикам приходится подключать множество новых подходов для получения необходимого результата. Однако не стоит забывать о том, что программная инженерия имеет и непосредственное отношение к процессам совершенствования инструментов разработки ПО. Для реализации всех указанных здесь задач используются несколько ключевых методов работы с ПО:
- моделирование;
- архитектура;
- тестирование;
- сопровождение;
- анализ;
- экономика и пр.
5. Инструментарий. Это направление включает в себя все инструменты, которые используются или являются потенциально подходящими для применения в процессе разработки программного обеспечения того или иного типа.
Также к основам программирования стоит отнести группы, объединяющие ключевые техники, применяемые в рамках РПО. Основными являются три – направляющая, инструментальная и базисная. Первая включает два направления и предусматривает их использование еще до начала работы над конкретным проектом. Здесь речь идет о методологии и технологии. Это означает, что на первичных этапах требуется определиться с методами и концепциями, которые окажутся оптимальными для данного случая. Важно, чтобы они были объединены определенным подходом – часто это также называют парадигмой программирования.
Выбор подходящей технологии тоже имеет большое значение. Он предусматривает подбор тех процессов, которые будут применяться при подготовке программного продукта. За основу при этом берут выбранную ранее методологию.
Далее подключается инструментальная группа. Она включает языки и системы программирования. Они требуются для того, чтобы реализовать каждую конкретную технику с учетом выбранной методологии. Что касается базисной группы, в нее входят операционные и аппаратные платформы. При реализации ряда проектов они не играют значимой роли. Однако особое значение платформы имеют при необходимости проведения именно системного программирования.
Программирование как деятельность
Рассматривая понятие программирования, нельзя упустить тот факт, что оно выступает конкретным видом деятельности. В частности, это процесс выполнения определенного набора действий, направленных на разработку программного обеспечения, способного решить ту или иную задачу. Здесь важно понимать, что программирование, которое существовало раньше, и современная его версия очень сильно отличаются. Первые ЭВМ не предусматривали возможности работы без знания того или иного языка программирования. Это означало, что простых автоматизированных программ для них попросту не существовало. Если оператору нужно было выполнить ту или иную задачу, он должен был самостоятельно провести программирование и уже потом получить результат.
Только ЭВМ четвертого поколения смогли получить хоть и примитивные, но все же рабочие варианты программ. Те были способны самостоятельно проводить ряд определенных действий. После этого программирование стало инструментом, необходимым не для выполнения прикладных задач, а для совершенствования ПО, которое уже само могло выполнять прикладную функцию.
Также в современном мире все более активно используется такое понятие, как системы программирования. Оно подразумевает, что сейчас отдельные варианты ПО не существуют самостоятельно. Они входят в определенную систему, которая работает слаженно, подключая все отдельные элементы. И в такой ситуации программное обеспечение выступает лишь частью общей системы.
Ключевые парадигмы программирования
При рассмотрении особенностей программирования очень часто за основу берется такой параметр как язык. Однако считать его основной РПО ни в коем случае нельзя. Все дело в том, что ключевым параметром выступают именно парадигмы программирования. Они представляют собой различные направления этого типа деятельности, каждое из которых включает в себя совокупность идей, связанных одним стилем написания программного обеспечения. Каждая парадигма выступает неким паттерном программирования, определяющим точную организацию всех действий, которые выполняет ПК при вычислениях, обработке информации и т. д.
Нужно учитывать, что парадигмы программирования отличаются непосредственно от языков РПО. Главное отличие заключается в том, что для создания конкретной программы может использовать лишь один выбранный язык. Однако в рамках парадигмы можно применять сразу несколько языковых вариантов. И в этом заключается немалый плюс, так как появляется возможность компенсировать недостатки каждого отдельного языка. Стоит упомянуть и о том, что сами парадигмы могут пересекаться при создании программного продукта. Это возможно, даже если их паттерны программирования отличаются.
Популярные парадигмы
Выделяют несколько парадигм, которые отличаются своими алгоритмами программирования. Среди ключевых можно выделить:
- Императивную. Эта парадигма предусматривает необходимость включения в исходный код ряда инструкций. Все они должны прописываться и выполняться последовательно. Данные, которые удается при этом получить, сохраняются в памяти. Объясняя обыденными понятиями, такое программирование позволяет получить продукт, работающий по принципу приказов. Выполняет их в этой ситуации непосредственно процессор. Что касается языков, которые могут использоваться в данном типе программирования, то им свойственно использование именных переменных, оператора присваивания, составных выражений, подпрограмм и пр.
- Декларативную. В этой парадигме используется спецификация решения задачи, которая задается в качестве готового результата, а не самого процесса его получения. Такой вариант является полной противоположностью предыдущего. Главное отличие заключается в том, что здесь отсутствует указание последовательности шагов, необходимых для решения поставленной задачи. При выборе декларативной парадигмы обеспечивается ссылочная прозрачность.
- Структурную. В рамках этой парадигмы готовая программа представляется в виде иерархической структуры блоков. Такими тремя базовыми конструкциями выступают последовательность, ветвление и цикл. Зачастую, используются дополнительные подпрограммы. Сам процесс разработки программного обеспечения имеет направление «сверху вниз». Он всегда ведется пошагово.
- Функциональную. При использовании такой парадигмы алгоритм программирования становится следующим – при всех вычислениях используются значения функций в математическом понимании. То есть здесь функции не имеют свойств подпрограмм, как это прослеживается в ряде других парадигм. Сами же последовательные состояния вычислительного процесса могут приобретать форму списка. Особенностью парадигмы можно считать то, что она не предусматривает необходимости сохранения состояния программы. Поэтому не предполагается и ее изменяемость.
- Логическую. В этой парадигме за основу взята математическая логика. Соответственно, программные решения здесь имеют форму логических утверждений и правил вывода. Использоваться для такого программирования могут разные языки, однако выделяют наиболее популярный вариант – это Пролог. Его преимущество – отсутствие необходимости предоставления плана перебора вариантов. Именно за счет этого он обошел по популярности всех предшественников.
- Объектно-ориентированную. При использовании такой парадигмы программы представляются в формате совокупности ряда объектов, которые взаимодействуют между собой. При этом предусматривается иерархия наследования. Образуется она благодаря тому, что каждый объект представляет собой отдельный класс. Также в этой парадигме удается структурировать информацию с точки зрения управляемости. Это является способом оптимизации процесса моделирования, что крайне важно при реализации особо крупных проектов.
Стоит обратить внимание также на то, что последняя из указанных парадигм имеет подвиды. Речь идет о таких подходах:
- Компонентно-ориентированный. Здесь в основу положено понятие независимого модуля исходного кода, что называется компонентом. Реализация такого объекта возможна в виде множества языковых конструкций. Предназначается же он для повторного использования кода, а также для его развертывания.
- Прототипно-ориентированный. В этом случае понятие класса, о котором шла речь в объектно-ориентированной парадигме, отсутствует. Что касается процесса наследования, он становится возможным посредством использования клонирования прототипа. Такое понятие обозначает конкретный экземпляр объекта. Как и во всех остальных случаях, здесь могут использоваться несколько различных языков программирования. Однако среди наиболее популярных вариантов указывают Self.
- Агентно-ориентированный. В таком варианте парадигмы основой выступает понятие агента. Он представляет собой некий объект, способный воспринимать среду пребывания. Для этого предусматриваются датчики. Ментальное поведение этого объекта напрямую зависит от среды, в которой он находится. А взаимодействие осуществляется посредством использования исполнительных механизмов.
Описывая парадигмы программирования, также важно указать, что они могут включать те или иные инструменты, процессы, явления и не только, которые объединены рядом параметров, но при этом не обязательно существуют одновременно.
Вывод
Подводя итог, стоит отметить, что программирование выступает очень обширным понятием, объединяющим в себе не только несколько парадигм, но и множество языков. И если первые являются определяющими параметрами, указывающими на направление и алгоритм проведения разработки программного обеспечения, то вторые могут использоваться параллельно друг с другом в рамках даже одной и той же парадигмы.
Однозначно сказать о том, что программирование – это информатика, нельзя. В понятии информатики как науки сосредоточены знания об информации и ее использовании – передаче, обработке, последующем применении и т. д. Само же программирование играет прикладную, практическую и инструментальную роль. Оно призвано упростить все действия, выполняемые с информацией, а также расширить круг возможностей для обработки таких данных.