Компьютерная программа: различия между версиями

Материал из Изи Вики
(→‎Объясните простыми словами, пожалуйста: Версия близкая к финальной)
Строка 12: Строка 12:
!Компьютерная программа
!Компьютерная программа
|-
|-
|🏆Допустим, вы кинопродюсер и хотите создать уникальный и самый лучший фильм
|🏆 Допустим, вы кинопродюсер и хотите создать уникальный и самый лучший фильм
|💰Допустим, вы предприниматель и хотите создать очередной посредственный стартап
|💰 Допустим, вы предприниматель и хотите создать очередной посредственный стартап
|-
|-
|💡Вы находите сценариста и подробно описывайте ему свои идеи
|💡 Вы находите сценариста и подробно описывайте ему свои идеи
|🤨Вы находите программиста и формируете ему подробное техническое задание  
|🤨 Вы находите программиста и формируете ему подробное техническое задание  
|-
|-
|✍️Сценарист написал подробный и точный сценарий фильма
|✍️ Сценарист написал подробный и точный сценарий фильма
|🧑‍💻Программист написал исходный код программы
|🧑‍💻 Программист написал исходный код программы
|-
|-
|В сценарии описаны:
|'''В сценарии описаны:'''
|В исходном коде описаны:
|'''В исходном коде описаны:'''
|-
|-
|🔹Эпизоды — большие части фильма, состоящие из ряда сцен
|🔹Эпизоды — большие части фильма, состоящие из ряда сцен
Строка 42: Строка 42:
|🔸Константы — недопеременные, с постоянным одним значением
|🔸Константы — недопеременные, с постоянным одним значением
|-
|-
|Сценарий готов и проверен, начинаем процесс съемки:
|'''Сценарий готов и проверен, начинаем процесс съемки:'''
|Исходный код готов и проверен, начинаем сборку программы:
|'''Исходный код готов и проверен, начинаем сборку программы:'''
|-
|-
|🎥 Кинокамера, превращает сценарий в кинопленку
|🎥 Кинокамера, превращает сценарий в кинопленку
|🤖Компилятор — специальная программа, превращающая исходный код в машинный
|🤖 Компилятор — специальная программа, превращающая исходный код в машинный
|-
|-
|🎬Некоторые кадры снимаются несколькими дублями
|🎬 Некоторые кадры снимаются несколькими дублями
|🔁Некоторые инструкции выполняются многократно раз в циклах
|🔁 Некоторые инструкции выполняются многократно раз в циклах
|-
|-
|📣Режиссер следит чтобы актеры играли роли хорошо
|📣 Режиссер следит чтобы актеры играли роли хорошо
|🆘Отладчик следит чтобы переменные содержали верные значения
|🆘 Отладчик следит чтобы переменные содержали верные значения  
|-
|-
|✂️Монтаж — финальная сборка проигрываемой кинопленки  
|✂️ Монтаж — финальная сборка проигрываемой кинопленки  
|🖇Компоновка — финальная сборка исполняемой программы
|🖇 Компоновка — финальная сборка исполняемой программы
|-
|-
|🎞Получившаяся кинопленка ▣▣▣▣▣▣▣▣
|🎞 Получившаяся кинопленка ▣▣▣▣▣▣▣▣
|💯💯💯Машинный код <code>101001010010012(упс)000110001</code>
|💯 Машинный код <code>101001010010012(упс)000110001</code>
|-
|-
|🔘Катушки с кинопленкой — '''Кинофильм'''
|🔘 Катушки с кинопленкой — '''<u>''Кинофильм''</u>'''
|⚙️Файлы с машинным кодом — '''Компьютерная программа'''
|⚙️ Файлы с машинным кодом — '''''<u>Компьютерная программа</u>'''''
|-
|-
|Кинофильм готов, теперь нужно доставить его зрителю
|'''Кинофильм готов, теперь нужно доставить его зрителям:'''
|Программа готова, теперь нужно доставить её пользователю
|'''Программа готова, теперь нужно доставить её пользователям:'''
|-
|-
|🎦Кинотеатр — большой зал, вмещающий много зрителей
|🎦 Кинотеатр — большой зал, вмещающий много зрителей
|🖥️Сервер — большой мощный компьютер, вмещает много пользователей
|🖥️ Сервер — большой мощный компьютер, вмещает много пользователей
|-
|-
|🗄️Склад кинопленки в катушках в кинотеатре
|🗄️ Склад кинопленки в катушках в кинотеатре
|💽Жесткий диск с установленными программами на сервере
|💽 Жесткий диск с установленными программами на сервере
|-
|-
|📽Кинопроектор — умеет проигрывать кинопленку
|📽 Кинопроектор — умеет проигрывать кинопленку
|🚀Центральный процессор компьютера — умеет исполнять программы
|🚀 Центральный процессор компьютера — умеет исполнять программы
|-
|-
|👨‍🔧Киномеханик загружает катушку в кинопроектор и запускает его
|👨‍🔧 Киномеханик загружает катушку в кинопроектор и запускает его
|🦥Системный администратор устанавливает и запускает программу
|🦥 Системный администратор устанавливает и запускает программу
|-
|-
|😨Кинокритик посмотрел фильм первым и написал рецензию
|😨 Кинокритик посмотрел фильм первым и написал рецензию
|🧐Тестировщик протестировал программу и написал отчет о багах
|🧐 Тестировщик протестировал программу и написал отчет о багах
|-
|-
|🍿Зрители смотрят фильм
|🍿 Зрители смотрят фильм
|😱Пользователи работают с программой
|😱 Пользователи работают с программой
|-
|-
|😍Зрители в восторге, ваш фильм великолепен
|😍 Зрители в восторге, ваш фильм великолепен
|🤦Пользователи «в восторге», ваша программа «великолепна»
|🤦 Пользователи «в восторге», ваша программа «великолепна»
|}
|}



Версия от 00:56, 2 ноября 2022

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

Объясните простыми словами, пожалуйста

Компьютерная программа — это что-то вроде 01100011 01101111 01101101 01110000 01110101 01110100 01100101 01110010 00100000 01110000 01110010 01101111 01100111 01110010 01100001 01101101...

Ничего не понятно? Всё верно, вы и не должны понимать компьютерные программы, так как они предназначены для компьютеров. Это как пытаться посмотреть фильм, рассматривая кинопленку. Компьютерная программа — это «кинопленка», для компьютера.

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

Кинофильм Компьютерная программа
🏆 Допустим, вы кинопродюсер и хотите создать уникальный и самый лучший фильм 💰 Допустим, вы предприниматель и хотите создать очередной посредственный стартап
💡 Вы находите сценариста и подробно описывайте ему свои идеи 🤨 Вы находите программиста и формируете ему подробное техническое задание
✍️ Сценарист написал подробный и точный сценарий фильма 🧑‍💻 Программист написал исходный код программы
В сценарии описаны: В исходном коде описаны:
🔹Эпизоды — большие части фильма, состоящие из ряда сцен 🔸Классы — большие части программы, состоящие из набора функций
🔹Сцены — это группы кадров, объединенные единством места, времени и действия 🔸Функции — группа инструкций, для выполнения действия с определенными условиями
🔹Кадры — неделимый элемент фильма 🔸Инструкции — самые простые уже неделимые операции
🔹Актеры — не очень постоянные люди, постоянно меняющие роли 🔸Переменные — контейнеры для хранения изменяющихся значений
🔹Роли — бывают отрицательные и положительные 🔸Значения переменных — бывают отрицательные и положительные (для чисел)
🔹Статисты — недоактеры, обычно с одной небольшой ролью 🔸Константы — недопеременные, с постоянным одним значением
Сценарий готов и проверен, начинаем процесс съемки: Исходный код готов и проверен, начинаем сборку программы:
🎥 Кинокамера, превращает сценарий в кинопленку 🤖 Компилятор — специальная программа, превращающая исходный код в машинный
🎬 Некоторые кадры снимаются несколькими дублями 🔁 Некоторые инструкции выполняются многократно раз в циклах
📣 Режиссер следит чтобы актеры играли роли хорошо 🆘 Отладчик следит чтобы переменные содержали верные значения
✂️ Монтаж — финальная сборка проигрываемой кинопленки 🖇 Компоновка — финальная сборка исполняемой программы
🎞 Получившаяся кинопленка ▣▣▣▣▣▣▣▣ 💯 Машинный код 101001010010012(упс)000110001
🔘 Катушки с кинопленкой — Кинофильм ⚙️ Файлы с машинным кодом — Компьютерная программа
Кинофильм готов, теперь нужно доставить его зрителям: Программа готова, теперь нужно доставить её пользователям:
🎦 Кинотеатр — большой зал, вмещающий много зрителей 🖥️ Сервер — большой мощный компьютер, вмещает много пользователей
🗄️ Склад кинопленки в катушках в кинотеатре 💽 Жесткий диск с установленными программами на сервере
📽 Кинопроектор — умеет проигрывать кинопленку 🚀 Центральный процессор компьютера — умеет исполнять программы
👨‍🔧 Киномеханик загружает катушку в кинопроектор и запускает его 🦥 Системный администратор устанавливает и запускает программу
😨 Кинокритик посмотрел фильм первым и написал рецензию 🧐 Тестировщик протестировал программу и написал отчет о багах
🍿 Зрители смотрят фильм 😱 Пользователи работают с программой
😍 Зрители в восторге, ваш фильм великолепен 🤦 Пользователи «в восторге», ваша программа «великолепна»

Зачем нужны программы

Программы решают простые задачи:

  • Математические вычисления.
  • Обработка текстов.
  • Преобразование данных из одного формата в другой.
  • Обработка структурированных данных.

Объединяя программы для решения простых задач, можно собрать приложения для решения более сложных прикладных задач.

Наборы программ и приложений формируют программное обеспечение для вычислительных систем.

Данные системы уже могут решать сложные комплексные задачи, например:

  • Управлять автоматизированным заводом.
  • Быть автопилотом самолета.
  • Организовать инфраструктуру и процессы аэропорта.
  • Безопасно доставить ракету до Марса.
  • Сделать красивую фотографию в вашем смартфоне.

Как создаются программы

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

Такой текст с описанием понятных для человека инструкций назвали программным кодом. А правила его написания — языком программирования.

Важно не путать программу и её программный код. Пример для аналогии:

  • Инженер-программист — сценарист, придумавший сценарий фильма
  • Кодер — секретарь сценариста, набивающий текст на печатной машинке
  • Программный код — это сценарий фильма на бумаге.
  • Язык программирования — человеческий язык, на котором написан сценарий
  • Компиляция — процесс съемки фильма на камеру.
  • Машинный код — получившаяся кинопленка
  • Программа — катушка с кинопленкой
  • Процессор компьютера — кинопроектор
  • Компьютер с процессором и памятью — кинотеатр, с кинопроектором и складом кинопленки в катушках
  • Системный администратор — киномеханик
  • Пользователь — зритель
  • Тестировщик — кинокритик

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