Что такое исходный код?
Исходный код представляет собой понятный человеку текст программы: программист пишет его на языке вроде Python, Java или C и сохраняет в обычных текстовых файлах, а компилятор или интерпретатор превращает его в инструкции, которые компьютер может выполнить.
Обновлено 24 сентября 2026 г.
Открой любой файл с расширением .py, .c или .java в простом текстовом редакторе, и ты читаешь исходный код. Это такой же файл, как список покупок: буквы, цифры, пробелы и переносы строк. Программой его делает то, что текст следует правилам языка программирования, поэтому инструмент может превратить его в инструкции для процессора.
Как выглядит исходный код
Вот законченная программа на Python. Каждая строка здесь исходный код, включая комментарий, который компьютер пропускает, а следующий программист читает.
Total: 12
Та же программа на C тоже является исходным кодом, просто на другом языке с другими правилами:
#include <stdio.h>
int main(void) {
int price = 4;
printf("Total: %d\n", price * 3);
return 0;
}
Настоящее приложение состоит из тысяч таких файлов. В ядре Linux больше 30 миллионов строк исходного кода, а у небольшого веб-приложения легко наберётся несколько сотен файлов. У каждого файла есть расширение, которое сообщает инструментам, на каком он языке:
| Расширение | Язык |
|---|---|
.py | Python |
.c, .h | C |
.cpp, .hpp | C++ |
.java | Java |
.js | JavaScript |
.go | Go |
.rs | Rust |
Исходный код является обычным текстом
В исходном коде нет шрифтов, цветов и скрытого форматирования. Цвета, которые ты видишь в редакторе, добавляет сам редактор для удобства чтения; в файле они не хранятся. Поэтому код пишут в редакторе кода вроде VS Code и никогда в Microsoft Word: текстовый процессор сохраняет данные форматирования и «умные» кавычки, и получается файл, который язык не может прочитать. Обычно он отвергает такой файл с синтаксической ошибкой.
Раз это просто текст, программа может даже хранить исходный код другой программы в строке и запустить его:
<class 'str'>
3 lines of text
Total: 12
До последней строки source является обычной строкой. exec передаёт её Python, который читает текст и выполняет его. Вот вся жизнь исходного кода в миниатюре: сначала текст, потом инструкции.
Как исходный код становится работающей программой
Процессор твоего компьютера не умеет читать Python или C. Он выполняет только машинный код, то есть двоичные инструкции для одного конкретного типа процессора (x86-64 в большинстве ноутбуков и серверов, ARM в телефонах и Mac на Apple Silicon). Кто-то должен переводить. Есть два основных способа:
- Компилятор переводит всю программу заранее. Команда
gcc hello.c -o helloчитает исходный код на C и записывает новый файлhello, полный машинного кода. После этого можно удалитьhello.c, аhelloвсё равно запустится. - Интерпретатор выполняет исходный код напрямую. Команда
python3 hello.pyзапускает интерпретатор Python, который читаетhello.pyи выполняет его инструкции. Отдельный файл программы не создаётся, поэтому исходный код нужен при каждом запуске.
Многие языки сочетают оба способа. Исходный код на Java компилируется javac в байт-код (файлы .class), а виртуальная машина Java выполняет этот байт-код. Полное сравнение есть на странице компилятор и интерпретатор.
Исходный, объектный и машинный код
Эти три термина описывают одну и ту же программу на разных стадиях:
| Термин | Кто его читает | Пример |
|---|---|---|
| Исходный код | Люди и компиляторы | total = price * 3 в app.py |
| Объектный код | Компоновщик (линкер) | hello.o, результат gcc -c hello.c |
| Машинный код (исполняемый файл) | Процессор | hello в Linux или macOS, hello.exe в Windows |
Если открыть скомпилированный исполняемый файл в текстовом редакторе, ты увидишь нечитаемые символы, потому что это двоичные данные, а не текст. На Mac первые четыре байта программы hello из примера выше равны cf fa ed fe в шестнадцатеричной записи: это метка исполняемого файла Mach-O. Такие сырые значения можно посмотреть в конвертере систем счисления.
Открытый и закрытый исходный код
Кто может читать исходный код, вопрос не только технический, но и юридический. Программы с открытым исходным кодом (open source) публикуют исходники под лицензией, которая позволяет любому читать, менять и распространять их. Python, Linux и Firefox относятся к open source. Программы с закрытым исходным кодом (проприетарные) распространяются только в скомпилированном виде. Microsoft Windows и Adobe Photoshop закрыты, и их исходный код является коммерческой тайной.
Исходный код, как и книга, защищён авторским правом. То, что ты нашёл код в интернете, не значит, что его можно использовать: прежде чем копировать что-то в свой проект, проверь файл лицензии, часто он называется LICENSE.
Распространённые заблуждения
- «Просмотр кода страницы показывает исходный код сайта». Он показывает HTML, CSS и JavaScript, которые получил твой браузер. Серверная часть сайта (на Python, Java, PHP или другом языке) никогда не покидает сервер, поэтому увидеть её нельзя.
- «Декомпилятор возвращает исходный код». Декомпилятор восстанавливает читаемый код из скомпилированной программы, но комментариев там уже нет, а имена часто потеряны, так что результат только догадка об исходнике, а не тот файл, который написали авторы.
- «Код и исходный код означают одно и то же». Исходный код является версией, написанной людьми. «Код» шире и включает машинный код, байт-код и сгенерированный код.
- «Исходный код должен быть на английском». Ключевые слова вроде
ifиprintявляются английскими словами, но имена переменных, комментарии и строки могут быть на любом языке. Исходные файлы Python 3 по умолчанию в кодировке UTF-8, поэтому иprix = 4, и# 合計を計算するдопустимы.
Что изучить дальше
Исходный код проверяется до запуска, и первое, с чем сталкивается большинство новичков, это синтаксическая ошибка. Чтобы понять, чем различаются два способа выполнения исходного кода, прочитай, что такое компилятор, а затем компилятор и интерпретатор. Писать и запускать собственный исходный код можно прямо в браузере в песочнице Python или начать курс Python.
Часто задаваемые вопросы
Какой пример исходного кода можно привести?
app.py, файл на C вроде main.c или JavaScript на веб-странице. Даже одна строка print("Hello"), сохранённая в файле .py, считается исходным кодом. Такие программы, как Firefox или Linux, состоят из миллионов его строк.Чем код отличается от исходного кода?
Как получить исходный код программы?
Является ли HTML исходным кодом?
.html, которые пишет разработчик, являются исходным кодом веб-страницы, и браузеры так и называют их просмотр: «Просмотр кода страницы». То же относится к файлам CSS и к файлам JavaScript, которые загружает страница.