Компьютерная программа: различия между версиями
AE (обсуждение | вклад) (→Объясните простыми словами, пожалуйста: Доработки) |
AE (обсуждение | вклад) (→Объясните простыми словами, пожалуйста: Версия близкая к финальной) |
||
Строка 4: | Строка 4: | ||
Компьютерная программа — это что-то вроде <code>01100011</code> <code>01101111</code> <code>01101101</code> <code>01110000</code> <code>01110101</code> <code>01110100</code> <code>01100101</code> <code>01110010</code> <code>00100000</code> <code>01110000</code> <code>01110010</code> <code>01101111</code> <code>01100111</code> <code>01110010</code> <code>01100001</code> <code>01101101</code>... | Компьютерная программа — это что-то вроде <code>01100011</code> <code>01101111</code> <code>01101101</code> <code>01110000</code> <code>01110101</code> <code>01110100</code> <code>01100101</code> <code>01110010</code> <code>00100000</code> <code>01110000</code> <code>01110010</code> <code>01101111</code> <code>01100111</code> <code>01110010</code> <code>01100001</code> <code>01101101</code>... | ||
Ничего не понятно? Всё верно, вы и не должны понимать компьютерные программы, так как они предназначены для компьютеров. Это как пытаться посмотреть фильм, рассматривая кинопленку. | Ничего не понятно? Всё верно, вы и не должны понимать компьютерные программы, так как они предназначены для компьютеров. Это как пытаться посмотреть фильм, рассматривая кинопленку. Компьютерная программа — это «кинопленка», для компьютера. | ||
Но как создавать программы, если их нельзя понять? С помощью вспомогательных инструментов и специально обученных людей. Давайте разберем на примере. | Но как создавать программы, если их нельзя понять? С помощью вспомогательных инструментов и специально обученных людей. Давайте разберем на примере. | ||
Строка 24: | Строка 24: | ||
|В исходном коде описаны: | |В исходном коде описаны: | ||
|- | |- | ||
|🔹Эпизоды | |🔹Эпизоды — большие части фильма, состоящие из ряда сцен | ||
|🔸Классы | |🔸Классы — большие части программы, состоящие из набора функций | ||
|- | |- | ||
|🔹Сцены | |🔹Сцены — это группы кадров, объединенные единством места, времени и действия | ||
|🔸Функции | |🔸Функции — группа инструкций, для выполнения действия с определенными условиями | ||
|- | |- | ||
|🔹Кадры | |🔹Кадры — неделимый элемент фильма | ||
|🔸Инструкции | |🔸Инструкции — самые простые уже неделимые операции | ||
|- | |- | ||
|🔹Актеры | |🔹Актеры — не очень постоянные люди, постоянно меняющие роли | ||
|🔸Переменные | |🔸Переменные — контейнеры для хранения изменяющихся значений | ||
|- | |- | ||
|🔹Роли | |🔹Роли — бывают отрицательные и положительные | ||
|🔸Значения переменных | |🔸Значения переменных — бывают отрицательные и положительные (для чисел) | ||
|- | |- | ||
|🔹Статисты | |🔹Статисты — недоактеры, обычно с одной небольшой ролью | ||
|🔸Константы | |🔸Константы — недопеременные, с постоянным одним значением | ||
|- | |- | ||
| | |Сценарий готов и проверен, начинаем процесс съемки: | ||
| | |Исходный код готов и проверен, начинаем сборку программы: | ||
|- | |- | ||
| | |🎥 Кинокамера, превращает сценарий в кинопленку | ||
| | |🤖Компилятор — специальная программа, превращающая исходный код в машинный | ||
|- | |- | ||
| | |🎬Некоторые кадры снимаются несколькими дублями | ||
| | |🔁Некоторые инструкции выполняются многократно раз в циклах | ||
|- | |- | ||
|📣Режиссер | |📣Режиссер следит чтобы актеры играли роли хорошо | ||
|🆘Отладчик | |🆘Отладчик следит чтобы переменные содержали верные значения | ||
|- | |- | ||
|✂️Монтаж | |✂️Монтаж — финальная сборка проигрываемой кинопленки | ||
|🖇Компоновка | |🖇Компоновка — финальная сборка исполняемой программы | ||
|- | |- | ||
|🎞Получившаяся кинопленка | |🎞Получившаяся кинопленка ▣▣▣▣▣▣▣▣ | ||
|💯💯💯Машинный код | |💯💯💯Машинный код <code>101001010010012(упс)000110001</code> | ||
|- | |- | ||
| | |🔘Катушки с кинопленкой — '''Кинофильм''' | ||
| | |⚙️Файлы с машинным кодом — '''Компьютерная программа''' | ||
|- | |- | ||
| | |Кинофильм готов, теперь нужно доставить его зрителю | ||
| | |Программа готова, теперь нужно доставить её пользователю | ||
|- | |- | ||
| | |🎦Кинотеатр — большой зал, вмещающий много зрителей | ||
| | |🖥️Сервер — большой мощный компьютер, вмещает много пользователей | ||
|- | |- | ||
| | |🗄️Склад кинопленки в катушках в кинотеатре | ||
| | |💽Жесткий диск с установленными программами на сервере | ||
|- | |- | ||
|👨🔧Киномеханик загружает катушку в кинопроектор | |📽Кинопроектор — умеет проигрывать кинопленку | ||
|🦥Системный администратор запускает программу | |🚀Центральный процессор компьютера — умеет исполнять программы | ||
|- | |||
|👨🔧Киномеханик загружает катушку в кинопроектор и запускает его | |||
|🦥Системный администратор устанавливает и запускает программу | |||
|- | |- | ||
|😨Кинокритик посмотрел фильм первым и написал рецензию | |😨Кинокритик посмотрел фильм первым и написал рецензию | ||
Строка 79: | Строка 82: | ||
|- | |- | ||
|🍿Зрители смотрят фильм | |🍿Зрители смотрят фильм | ||
|😱Пользователи работают с | |😱Пользователи работают с программой | ||
|- | |- | ||
|😍Зрители в восторге, ваш фильм великолепен | |😍Зрители в восторге, ваш фильм великолепен | ||
| | |🤦Пользователи «в восторге», ваша программа «великолепна» | ||
|} | |} | ||
Версия от 00:47, 2 ноября 2022
Набор инструкций для выполнения компьютером. Результатом выполнения инструкций является обработка данных для получения полезного результата.
Объясните простыми словами, пожалуйста
Компьютерная программа — это что-то вроде 01100011
01101111
01101101
01110000
01110101
01110100
01100101
01110010
00100000
01110000
01110010
01101111
01100111
01110010
01100001
01101101
...
Ничего не понятно? Всё верно, вы и не должны понимать компьютерные программы, так как они предназначены для компьютеров. Это как пытаться посмотреть фильм, рассматривая кинопленку. Компьютерная программа — это «кинопленка», для компьютера.
Но как создавать программы, если их нельзя понять? С помощью вспомогательных инструментов и специально обученных людей. Давайте разберем на примере.
Кинофильм | Компьютерная программа |
---|---|
🏆Допустим, вы кинопродюсер и хотите создать уникальный и самый лучший фильм | 💰Допустим, вы предприниматель и хотите создать очередной посредственный стартап |
💡Вы находите сценариста и подробно описывайте ему свои идеи | 🤨Вы находите программиста и формируете ему подробное техническое задание |
✍️Сценарист написал подробный и точный сценарий фильма | 🧑💻Программист написал исходный код программы |
В сценарии описаны: | В исходном коде описаны: |
🔹Эпизоды — большие части фильма, состоящие из ряда сцен | 🔸Классы — большие части программы, состоящие из набора функций |
🔹Сцены — это группы кадров, объединенные единством места, времени и действия | 🔸Функции — группа инструкций, для выполнения действия с определенными условиями |
🔹Кадры — неделимый элемент фильма | 🔸Инструкции — самые простые уже неделимые операции |
🔹Актеры — не очень постоянные люди, постоянно меняющие роли | 🔸Переменные — контейнеры для хранения изменяющихся значений |
🔹Роли — бывают отрицательные и положительные | 🔸Значения переменных — бывают отрицательные и положительные (для чисел) |
🔹Статисты — недоактеры, обычно с одной небольшой ролью | 🔸Константы — недопеременные, с постоянным одним значением |
Сценарий готов и проверен, начинаем процесс съемки: | Исходный код готов и проверен, начинаем сборку программы: |
🎥 Кинокамера, превращает сценарий в кинопленку | 🤖Компилятор — специальная программа, превращающая исходный код в машинный |
🎬Некоторые кадры снимаются несколькими дублями | 🔁Некоторые инструкции выполняются многократно раз в циклах |
📣Режиссер следит чтобы актеры играли роли хорошо | 🆘Отладчик следит чтобы переменные содержали верные значения |
✂️Монтаж — финальная сборка проигрываемой кинопленки | 🖇Компоновка — финальная сборка исполняемой программы |
🎞Получившаяся кинопленка ▣▣▣▣▣▣▣▣ | 💯💯💯Машинный код 101001010010012(упс)000110001
|
🔘Катушки с кинопленкой — Кинофильм | ⚙️Файлы с машинным кодом — Компьютерная программа |
Кинофильм готов, теперь нужно доставить его зрителю | Программа готова, теперь нужно доставить её пользователю |
🎦Кинотеатр — большой зал, вмещающий много зрителей | 🖥️Сервер — большой мощный компьютер, вмещает много пользователей |
🗄️Склад кинопленки в катушках в кинотеатре | 💽Жесткий диск с установленными программами на сервере |
📽Кинопроектор — умеет проигрывать кинопленку | 🚀Центральный процессор компьютера — умеет исполнять программы |
👨🔧Киномеханик загружает катушку в кинопроектор и запускает его | 🦥Системный администратор устанавливает и запускает программу |
😨Кинокритик посмотрел фильм первым и написал рецензию | 🧐Тестировщик протестировал программу и написал отчет о багах |
🍿Зрители смотрят фильм | 😱Пользователи работают с программой |
😍Зрители в восторге, ваш фильм великолепен | 🤦Пользователи «в восторге», ваша программа «великолепна» |
Зачем нужны программы
Программы решают простые задачи:
- Математические вычисления.
- Обработка текстов.
- Преобразование данных из одного формата в другой.
- Обработка структурированных данных.
Объединяя программы для решения простых задач, можно собрать приложения для решения более сложных прикладных задач.
Наборы программ и приложений формируют программное обеспечение для вычислительных систем.
Данные системы уже могут решать сложные комплексные задачи, например:
- Управлять автоматизированным заводом.
- Быть автопилотом самолета.
- Организовать инфраструктуру и процессы аэропорта.
- Безопасно доставить ракету до Марса.
- Сделать красивую фотографию в вашем смартфоне.
Как создаются программы
Инструкции, которые может выполнить компьютер, достаточно примитивны, состоят из набора состояний вкл/выкл 1100110010
. Первоначально люди писали эти инструкции напрямую в виде машинного кода, но это было неудобно. Возникла идея писать инструкции понятным человеку текстом (компьютер, сложи эти числа, пожалуйста)
, а получившийся текст преобразовывать в машинный код с помощью вспомогательных программ — компиляторов.
Такой текст с описанием понятных для человека инструкций назвали программным кодом. А правила его написания — языком программирования.
Важно не путать программу и её программный код. Пример для аналогии:
- Инженер-программист — сценарист, придумавший сценарий фильма
- Кодер — секретарь сценариста, набивающий текст на печатной машинке
- Программный код — это сценарий фильма на бумаге.
- Язык программирования — человеческий язык, на котором написан сценарий
- Компиляция — процесс съемки фильма на камеру.
- Машинный код — получившаяся кинопленка
- Программа — катушка с кинопленкой
- Процессор компьютера — кинопроектор
- Компьютер с процессором и памятью — кинотеатр, с кинопроектором и складом кинопленки в катушках
- Системный администратор — киномеханик
- Пользователь — зритель
- Тестировщик — кинокритик
Чтобы не было путаницы, рекомендуется называть программный код — исходным кодом программы.