МОДЕЛИ ПРОГРАММИРОВАНИЯ

 

 

Компьютерное моделирование

Компьютерная модель (computer model) — компьютерная программа, реализующая представление объекта, системы или понятия в форме, отличной от реальной, но приближенной к алгоритмическому описанию, включающей и набор данных, характеризующих свойства системы и динамику их изменения со временем.....
(https://ru.wikipedia.org/wiki/Компьютерное_моделирование)

Компьютерное моделирование разработка компьютерных моделей (компьютерных программ)

Программирование   разработка компьютерных программ
(https://ru.wikipedia.org/wiki/Программирование)
 

Компьютерное моделирование  программирование
 

 

 

Модель (структура) программирования

Разработка компьютерных программ  многогранная многофакторная деятельность со сложной структурой:

  • анализ предметной области и постановка задачи,

  • проектирование программы,

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

  • разработка структур данных,

  • написание текстов программ (кодинг) на языках программирования,

  • отладка и тестирование программы (испытания программы),

  • документирование,

  • настройка (конфигурирование),

  • доработка и сопровождение.

 

 

Языки программирования как метамодели

Компьютерная модель  — компьютерная программа...

Компьютерная программа:

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

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

Языки программирования - искусственные формальные языки для создания компьютерных программ.

Языки программирования - метамодели для компьютерных программ (и программирования = компьютерного моделирования, в части написания текстов компьютерных программ).

 

Разработка языков программирования - компьютерное метамоделирование (разработка метамоделей компьютерного моделирования).

Разработкой языков программирования не исчерпывается компьютерное метамоделирование!

Не всякое  компьютерное метамоделирование является разработкой языков программирования!

 

 

 

Компьютерное метамоделирование

Метамодели задают характер разработки (моделирования) компьютерных программ (моделей).

В качестве метамоделей компьютерных программ (как исходного текста) выступают:

  • Алгоритмы

  • Структуры данных

  • Языки программирования (см. здесь)

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

  • Языки программирования (см. здесь)

  • Системы программирования (см. здесь)

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

  • Модели программирования (в узком понимании, как термин)

 

 

Алгоритмы

Алгоритм —  последовательность команд для исполнителя (человека, компьютера...), выполнение которой решает поставленную задачу.

Понятие алгоритма - базовое в математике и информатике.
Современное формальное определение вычислительного алгоритма дано в середине XX века
в работах А. Тьюринга, А. Чёрча, Н. Винера, А. А. Маркова.

Программа - запись алгоритма на формальном языке.

Компьютерная программа -  запись алгоритма на формальном языке предназначенная для компьютера (как исполнителя).

Основная гипотеза алгоритмов (тезис ЧёрчаТьюринга):

  • Некоторый алгоритм для нахождения значений функции, заданной в некотором алфавите, существует тогда и только тогда, когда её можно вычислить на машине Тьюринга.

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

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

Учебные материалы:

 

 

Структуры данных

Структура данных (англ. data structure) — программная единица, позволяющая добавлять, хранить, искать, обрабатывать удалять  однотипные или логически связанные данные.

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

Различные виды структур данных подходят для различных задач и приложений.

 

Успешность программирования  существенно зависит от правильного выбора структур данных.

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

Пример: объектно-ориентированные языки: Java, C# и C++...

 

Многие классические структуры данных представлены в стандартных библиотеках языков программирования или непосредственно встроены в языки программирования.

Основные структуры данных (см. здесь):

  • Список

  • Массив

  • Стек

  • Очередь

  • Дерево

  • Двоичная куча

  • Граф

Учебные материалы:

 

 

 

Языки программирования (метамодели)

Языки программирования - метамодели компьютерного моделирования.

Компьютерная программа:

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

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

Компьютерная модель (англ. computer model) — компьютерная программа, реализующая представление объекта (свойств, системы, понятий) в форме, отличной от реальной, но приближенной к алгоритмическому описанию, включающей и набор данных, характеризующих свойства объекта и динамику их изменения со временем.

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

 

 

 

Системы программирования (метамодели)

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

Современное программирование осуществляется на основе использования  систем программирования (IDE  и RAD)  - технологий и средств быстрого создания программ.

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

Система программирования выступает эффективным (для достижения определенных результатов) посредником между программистом и языком программирования.

Система программирования - эффективный посредник только для достижения определенных результатов

Система программирования  является метамоделью взаимодействия программиста с языком программирования (определяет способы, характер, глубину этого взаимодействия)

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

Среда разработки программного обеспечения (IDE, Integrated development environment) — система программных средств, используемая для разработки программного обеспечения.

Обычно IDE включает в себя:

  • текстовый редактор,

  • компилятор и/или интерпретатор,

  • средства автоматизации сборки,

  • отладчики,

  • библиотеки стандартных функций и программ,

  • пользовательский интерфейс,

  • справочную систему.

Существуют среды разработки, предназначенные для нескольких языков (например, Microsoft Visual Studio) и для одного языка программирования (Visual Basic).

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

Визуальные среды разработки  применяются в основном для создания прикладных программ.

 

 

 

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

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

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

 

Своим современным значением в научно-технической области термин «парадигма» обязан книге Томаса Куна «Структура научных революций»

 

Парадигма программирования не определяется однозначно языком программирования.

 

Парадигмы программирования понимаются и определяются различно:

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

  • как способ выражения мыслей (стиль программирования как описания намерений программиста)

  • как модель (подход) к решению проблем

  • как правила классификации языков программирования в соответствии с некоторыми условиями, которые могут быть проверены

  • как способ концептуализации того, что значит „производить вычисления“

  • как модель структурирования и организзации задач, подлежащих решению на компьютере

 

Практически все современные языки программирования (в той или иной мере) допускают использование различных парадигм (мультипарадигмальное программирование).

Существующие парадигмы зачастую пересекаются друг с другом.

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

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

 

 

 

 

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

Две модели программирования:

  • последовательная (совокупность приемов программирования и структур данных, отвечающих последовательной архитектуре компьютера)

  • параллельная (совокупность приемов программирования и структур данных, отвечающих параллельной архитектуре компьютера)

См. здесь (архитектура Джона фон Неймана и таксономия Майкла Флинна)

 

 

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

 

 

 

 

kmp