Компьютерное моделирование
Компьютерная модель
(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).
Визуальные среды
разработки
отличает
относительная
лёгкость освоения, быстрота
разработки, стандартизация
внешнего вида программ.
Визуальные среды
разработки
применяются
в основном для создания прикладных программ. |
Парадигмы программирования
(метамодели)
Парадигма (метамодель) программирования —
совокупность идей и понятий, определяющих стиль (модель) написания
компьютерных программ.
Парадигма (метамодель) программирования — способ концептуализации,
определяющий организацию вычислений и структурирование работы,
выполняемой компьютером.
Парадигма программирования не определяется
однозначно языком программирования.
Парадигмы программирования понимаются и
определяются различно:
-
как
система письма (семейства обозначений
(нотаций), разделяющих общий способ
(методику) реализаций программ).
-
как способ
выражения мыслей (стиль программирования
как описания намерений программиста)
-
как модель
(подход) к решению проблем
-
как
правила классификации языков
программирования в соответствии с
некоторыми условиями, которые могут быть
проверены
-
как способ
концептуализации того, что значит
„производить вычисления“
-
как модель
структурирования и организзации задач,
подлежащих решению на компьютере
|
Практически все современные языки
программирования (в той или иной мере) допускают использование различных
парадигм (мультипарадигмальное программирование).
Существующие парадигмы зачастую пересекаются друг с другом.
Основные модели (парадигмы) программирования:
В рамках одной парадигмы
программирования могут быть реализованы различные стили
(модели)... |
Модели программирования
Две модели программирования:
-
последовательная
(совокупность приемов программирования и структур
данных, отвечающих последовательной архитектуре
компьютера)
-
параллельная
(совокупность приемов
программирования и структур данных, отвечающих
параллельной архитектуре компьютера)
См.
здесь (архитектура Джона
фон Неймана и таксономия Майкла Флинна) |
Метамоделирование
|