Исходный код языка разметки HTML страницы со вставкой на языке программирования JavaScript

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

Назначение

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

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

Кроме того, исходный код имеет и другие применения. Он может использоваться как инструмент обучения; начинающим программистам бывает полезно исследовать существующий исходный код для изучения технологии и методологии программирования. Он также используется как инструмент общения между опытными программистами благодаря своей лаконичной и недвусмысленной природе. Совместное использование кода разработчиками часто упоминается как фактор, способствующий улучшению опыта программистов. Для разработки ПО используется применение систем анализа исходного кода.[1]

Программисты часто переносят исходный код (в виде модулей, в имеющемся виде или с адаптацией) из одного проекта в другой. Это называется повторным использованием кода. Для проверки схожести исходного кода используют машинное обучение.[2]

Исходный код — важнейший компонент для процесса портирования программного обеспечения на другие платформы. Без исходного кода какой-либо части ПО портирование либо слишком сложно, либо вообще невозможно.

Возможно моделирование поверхностей в системе компьютерной математики.[3]

Организация

Исходный код некоторой части ПО (модуля, компонента) может состоять из одного или нескольких файлов. Код программы не обязательно пишется только на одном языке программирования. Например, часто программы, написанные на языке Си, из соображений оптимизации содержат вставки кода на языке ассемблера. Также возможны ситуации, когда некоторые компоненты или части программы пишутся на различных языках, с последующей сборкой в единый исполняемый модуль при помощи технологии, известной как компоновка библиотек (library linking).

Сложное программное обеспечение при сборке требует использования десятков или даже сотен файлов с исходным кодом. В таких случаях для упрощения сборки обычно используются файлы проектов, содержащие описание зависимостей между файлами с исходным кодом и описывающие процесс сборки. Эти файлы также могут содержать параметры для компилятора и среды проектирования. Для разных сред проектирования могут применяться разные файлы проекта, причём в некоторых средах эти файлы могут быть в текстовом формате, пригодном для непосредственного редактирования программистом с помощью универсальных текстовых редакторов, в других средах поддерживаются специальные форматы, а создание и изменения файлов производится с помощью специальных инструментальных программ. Файлы проектов обычно включают в понятие «исходный код». Часто под исходным кодом[4] подразумевают и файлы ресурсов, содержащие различные данные, например, графические изображения, нужные для сборки программы.

Для облегчения работы с исходным кодом[5] и для совместной работы над кодом командой программистов используются системы управления версиями.

Качество

В отличие от человека, для компьютера нет «хорошо написанного» или «плохо написанного» кода. Но то, как написан код, может сильно влиять на процесс сопровождения ПО. О качестве исходного кода можно судить по следующим параметрам:

  • читаемость кода (в том числе наличие комментариев к коду);
  • лёгкость в поддержке, тестировании, отладке и устранении ошибок, модификации и портировании;
  • экономное использование ресурсов: памяти, процессора, дискового пространства;
  • отсутствие замечаний, выводимых компилятором;
  • отсутствие «мусора» — неиспользуемых переменных, недостижимых блоков кода, ненужных устаревших комментариев и т. д.;
  • адекватная обработка ошибок;
  • возможность интернационализации интерфейса.

Неисполняемый исходный код

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

В таких случаях исходным кодом считается форма данной работы, предпочтительная для её редактирования. В лицензиях, предназначенных не только для ПО, она также может называться версией в «прозрачном формате». Это может быть, например:

  • для файла, сжатого с потерей данных — версия без потерь;
  • для рендера векторного изображения или трёхмерной модели — соответственно, векторная версия и модель;
  • для изображения текста — такой же текст в текстовом формате;
  • для музыки — файл во внутреннем формате музыкального редактора;
  • и наконец, сам файл, если он удовлетворяет указанным условиям, либо если более удобной версии просто не существовало.

См. также

Примечания

  1. Бочкарев О. И. Применение систем анализа исходного кода в разработке программного обеспечения // Журнал высоких гуманитарных технологий : журнал. — 2023. — Т. 1, № 1. — С. 24—32.
  2. Грибков Н. А., Овасапян Т. Д., Москвин Д. А. Определение схожести фрагментов исходных программных кодов с использованием методов машинного обучения // Проблемы информационной безопасности, компьютерные системы : журнал. — 2023. — Т. 1, № 1. — С. 62—71.
  3. Дубанов А.А. Мотошкин П.В. Моделирование поверхностей в системе компьютерной математики mathcad // Вестник ВСГУТУ : журнал. — 2013. — № 3 (42). — С. 10-20. — ISSN 2413-1997.
  4. Открытые системы. СУБД. ИСХОДНЫЕ КОДЫ LINUX - ЭТАЛОН КАЧЕСТВА // www.elibrary.ru : Сайт. — 2013.
  5. Калабин А.Л., Грязнов Е.Н. РЕФАКТОРИНГ ИСХОДНОГО КОДА. ОСНОВНЫЕ ПРИЕМЫ // elibrary.ru : Сайт. — 2013.

Ссылки