Программа (информатика)¶
Программа — в информатике последовательность инструкций (команд), задающая алгоритм решения задачи и предназначенная для выполнения вычислительной машиной. Программы записываются на языках программирования и хранятся в памяти компьютера в виде исполняемого кода или интерпретируемого скрипта. Понятие «программа» также употребляется в более широком смысле — как план мероприятий, расписание или сценарий какого-либо события.
¶История
Идея программного управления вычислительной машиной была заложена в работах Ады Лавлейс, которая в 1843 году опубликовала описание алгоритма для аналитической машины Чарльза Бэббиджа — считается первым опубликованным компьютерным алгоритмом. Термин «программирование» в современном смысле закрепился в 1940-х годах, когда для машин ENIAC и EDVAC стали составлять наборы команд для решения конкретных задач.
В 1945 году Джон фон Нейман опубликовал описание архитектуры ЭВМ с хранимой программой, где программа и данные хранятся в одной памяти — эта модель (архитектура фон Неймана) стала основой большинства современных компьютеров. В СССР одним из первых программистов считается Матвей Гуревич, а в 1948 году под руководством Сергея Лебедева была создана первая советская ЭВМ «Малая электронная счётная машина» (МЭСМ), для которой писались программы на машинном коде.
¶Виды программ
Программы классифицируются по назначению и способу исполнения:
- Системные — операционные системы, драйверы, утилиты, обеспечивающие работу компьютера и управление оборудованием.
- Прикладные — программы для решения пользовательских задач: текстовые редакторы, браузеры, игры, базы данных.
- Встроенные (embedded) — программы, управляющие отдельными устройствами: микроконтроллерами, бытовой техникой, автомобилями.
- Исполняемые файлы — скомпилированные программы, готовые к запуску (в Windows — файлы с расширением .exe, в Linux — ELF-бинарники).
- Скрипты — интерпретируемые программы, выполняемые построчно (Python, Bash, JavaScript).
- Библиотеки — наборы готовых функций, подключаемых к другим программам.
¶Языки программирования
Программы пишутся на языках программирования — формальных системах команд, понятных человеку и транслируемых в машинный код. Основные группы:
| Уровень | Примеры | Особенности |
|---|---|---|
| Машинный код | ассемблер | инструкции процессора напрямую |
| Низкоуровневые | C, C++, Rust | управление памятью, высокая скорость |
| Высокоуровневые | Python, Java, C# | абстракция от железа, кроссплатформенность |
| Скриптовые | JavaScript, PHP, Ruby | интерпретация, быстрая разработка |
| Декларативные | SQL, HTML | описание результата, а не алгоритма |
¶Жизненный цикл программы
Разработка программного обеспечения включает этапы:
- Постановка задачи — определение требований к программе.
- Проектирование — выбор алгоритмов, архитектуры, языка.
- Кодирование — написание исходного кода.
- Тестирование — поиск ошибок (багов) и их исправление.
- Развёртывание — установка у пользователей.
- Сопровождение — обновления, исправление новых ошибок.
Для управления исходным кодом используются системы контроля версий — Git, Subversion. Компиляция (трансляция) переводит исходный текст в исполняемый код, интерпретация выполняет команды построчно без предварительной трансляции.
¶Программы в России
В России разработкой программного обеспечения занимаются компании «Яндекс», «1С», «Касперский», «Авито» и другие. Государственная программа «Цифровая экономика Российской Федерации» (2017–2030) направлена на развитие отечественного ПО и импортозамещение в сфере информационных технологий. В образовании действует федеральный проект «Информатика и цифровые технологии», включающий обучение школьников программированию с начальной школы.
¶Интересные факты
- Самая первая компьютерная ошибка (bug) — мотылёк, застрявший в реле компьютера Mark II в 1947 году, откуда появился термин «отладка» (debugging).
- Программа Microsoft Windows состоит из сотен миллионов строк кода, а ядро Linux — примерно из 30 миллионов строк.
- В 2021 году инженеры NASA использовали программу, написанную на языке COBOL в 1960-х, для управления космическими аппаратами — многие системы до сих пор работают на устаревших языках.
¶Источники
- Кнут Д. «Искусство программирования»
- Таненбаум Э. «Современные операционные системы»
- Райт Г., Дейт К. «Базы данных. Проектирование и реализация»
- Федеральный закон «Об информации, информационных технологиях и о защите информации» (№149-ФЗ)
