Открыть сервисСервис

Исходный код в программировании

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

Этимология и понятие

Слово «исходник» является калькой с английского термина source code, дословно означающего «код-источник». В русскоязычной профессиональной среде используются оба варианта — и заимствование «исходный код», и сокращённая форма «исходник». Понятие появилось вместе с развитием программирования в 1950-х годах, когда стало очевидно, что программа существует в двух формах: человекочитаемой (текст на языке программирования) и исполняемой (набор машинных инструкций).

Свойства исходного кода

Хороший исходный код должен обладать рядом характеристик:

  • Читаемость — возможность понять логику программы без дополнительных объяснений;
  • Поддерживаемость — лёгкость внесения изменений и исправления ошибок;
  • Надёжность — корректность работы при различных входных данных;
  • Производительность — эффективность результирующей программы;
  • Переносимость — способность работать на разных платформах.

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

Языки программирования

Исходный код пишется на языках программирования, которые делятся на несколько категорий:

КатегорияПринцип работыПримеры
КомпилируемыеПолностью преобразуются в машинный код до запускаC, C++, C#, Go, Rust
ИнтерпретируемыеВыполняются построчно во время работыPython, JavaScript, PHP, Ruby
Компилируемые в байт-кодКомпилируются в промежуточный код для виртуальной машиныJava, Kotlin, Scala
СкриптовыеПредназначены для автоматизации задачBash, PowerShell, Lua

В России изучение основ программирования включено в школьную программу по информатике; наиболее распространёнными языками в российских вузах являются Python, C++ и Java.

Процесс преобразования

Путь от исходного кода до исполняемой программы включает несколько этапов:

  1. Лексический анализ — разбиение текста на токены (ключевые слова, идентификаторы, операторы);
  2. Синтаксический анализ — проверка грамматической правильности и построение дерева разбора;
  3. Семантический анализ — проверка типов, объявленных переменных, корректности ссылок;
  4. Оптимизация — улучшение производительности результирующего кода;
  5. Генерация кода — создание исполняемого файла или байт-кода.

Компиляторы (GCC, Clang, MSVC, Rustc) выполняют эти этапы целиком, в то время как интерпретаторы (CPython, MRI Ruby) сочетают анализ и выполнение на лету.

Управление версиями

Для хранения и отслеживания изменений исходного кода используются системы контроля версий. Наиболее распространённой является Git — распределённая система, созданная Линусом Торвальдсом в 2005 году для разработки ядра Linux. Популярные платформы размещения репозиториев:

  • GitHub — крупнейшая платформа, принадлежит Microsoft;
  • GitLab — платформа с открытым исходным кодом серверной части;
  • Bitbucket — сервис от Atlassian с интеграцией в Jira;
  • Gitee — китайская платформа, популярная в Азии;
  • Codeberg — некоммерческая платформа на базе Forgejo.

Открытый и закрытый исходный код

По степени доступности исходный код делится на два основных типа:

Открытый исходный код (open source) — доступен для свободного изучения, изменения и распространения. Примеры: ядро Linux, браузер Firefox, офисный пакет LibreOffice, редактор VS Code. Лицензии GPL, MIT, Apache определяют условия использования.

Закрытый исходный код (proprietary) — принадлежит разработчику, доступ к нему ограничен. Примеры: Microsoft Windows, Adobe Photoshop, macOS. Пользователь получает только исполняемый файл.

В России развитие открытого ПО поддерживается на государственном уровне: в рамках импортозамещения продвигаются отечественные ОС «Альт» (базируется на ядре Linux) и «Роса», офисный пакет «МойОфис», СУБД «Postgres Pro».

Хранение и структура проекта

Типичный проект содержит тысячи файлов исходного кода, организованных в дерево каталогов. Структура включает:

  • каталоги с исходными файлами (.c, .cpp, .py, .java, .js);
  • заголовочные файлы (.h, .hpp);
  • файлы сборки (Makefile, CMakeLists.txt, package.json);
  • конфигурации и метаданные (.gitignore, README.md);
  • тесты (отдельные файлы или каталоги).

Значение

Исходный код является основным нематериальным активом программной компании. Его кража или неправомерное использование квалифицируется как нарушение авторских прав; в России это регулируется Гражданским кодексом и законом «Об авторском праве». В ряде случаев государства требуют предоставления исходного кода критически важного ПО для проверки на наличие уязвимостей и закладок — эта практика называется обязательное ревью исходного кода (source code escrow).

Источники:

  • Робертс, Д. Введение в программирование. — М.: Вильямс, 2005.
  • Макконнелл, С. Чистый код: создание, анализ и рефакторинг. — СПб.: Питер, 2009.
  • Соммервилл, И. Программная инженерия. — М.: Вильямс, 2015.
  • Справочник по языкам программирования (TIOBE Index, 2024).
Заметили ошибку или не согласны с информацией в статье? Напишите нам support@bfometr.ru