Оформление листингов программ. Листинг – что это такое простыми словами: полный разбор понятия Как это работает

Var n1, n2: Longint;

Function Quantity(x: Longint): Byte;

Var k: Byte;

While x <> 0 Do

Begin

End ;

Quantity:= k;

Begin

Writeln("Введите два числа");

k1:=Quantity(n1);

{количество цифр первого числа}

k2:= Quantity(n2);

{количество цифр второго числа}

Writeln("Одинаковое количество цифр")

If k1 > k2 Then

Writeln("В первом числе цифр больше")

Writeln("Во втором числе цифр больше");

Лекция № 17. Нетрадиционное использование пользовательских подпрограмм. Рекурсия

В ряде алгоритмов решения задач требуется вызов подпрограммы из раздела операторов той же самой подпрограммы.

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

if keypressed then halt; - для прерывания зависания, если таковое произойдет. Keypressed – это функция, возвращающая результат true, если на клавиатуре была нажата клавиша, и false – в противном случае.

Пример 1. Рассмотрим программу вычисления элементов ряда Фибоначчи с использованием рекурсивной процедуры.

procedure fibon(n,fn1,fn:integer); {рекурсивная процедура}

if n > 0 then

writeln(fn1+fn);

fibon(n-1,fn,fn1+fn);

var n,a,b: integer;

write("введите число элементов ряда Фибоначчи: ");

write("...следующими за двумя данными числами: ");

Fibon(n,a,b);

Пример 2. Программа, которая выводит на экран цифры целого положительного числа в обратном порядке.

program rekurs2;

procedure revers(n:integer); {рекурсивная процедура}

If keypressed then halt;

Write(n mod 10);

if (n div 10) <> 0 then

Revers (n div 10);

writeln("vvedi chislo <= : ", maxint);

Revers(n);

Лекция №18. Ввод – вывод данных. Файлы

Файл – это набор данных, хранящихся во внешней памяти компьютера под заданным именем.

Любой файл имеет три характерные особенности:

1. У файла есть имя, что дает возможность программе работать одновременно с несколькими файлами.

2. Файл содержит компоненты одного типа. Типом компонентов файла может любой тип.

3. Длина вновь создаваемого файла никак не оговаривается при его объявлении и ограничивается только емкостью устройств внешней памяти.

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

Путь – это перечень имен подкаталогов, которые отделены друг от друга с помощью обратной косой черты, за которым следует собственно имя файла.

Например:

c:\catalog1\catalog2\file1.txt.

Каждое имя каталога соответствует входу в подкаталог с таким именем. Знак ".." соответствует входу в надкаталог. Максимально допустимая длина пути – 79 символов.

В программе на ТР имя файла задается в виде текстовой константы, заключенной в апострофы, которая может быть значением строковой переменной:

"\turbo\pas\table.txt".

Устройства. Использование файлов в ТР было вызвано необходимостью обмена данными с окружением компьютера, его аппаратными средствами: дисплеем, клавиатурой, принтером, каналами ввода-вывода. Все они рассматриваются в ТР как файлы, с которыми можно работать так же, как с обычными файлами. Файлы на внешних устройствах часто называют физическими или внешними файлами . Обращение к устройствам выполняется с помощью специальных имен, которые запрещено использовать для обычных файлов – так называемых имен логических устройств компьютера.

­ CON – консоль . При помощи консоли выводимая информация пересылается на экран дисплея, а вводимая информация воспринимается с клавиатуры;

­ PRN – это наименование принтера . Если к компьютеру подключено несколько принтеров, то обращение к ним осуществляется с помощью логических имен: LPT1, LPT2, LPT3.

­ COM1, COM2, COM3 – это устройства подключения к последовательным портам . Используются для связи с другими компьютерами и для подключения мыши.

­ NUL – нулевое или пустое устройство. Часто используется программистами для отладки программы. Позволяет не создавать отдельный файл. При использовании его для вывода информации – информация никуда не выводится, но сообщается, что вывод произошел успешно.

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

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

Что такое листинг

Понятие листинг встречается в разных сферах нашей жизни:

  • Фондовые и криптовалютные биржи – они и будут темой данной статьи. Здесь речь идет о добавлении ценных бумаг или криптомонет в списки торговых платформ.
  • В торговле – это подразумевает добавление продукции того или иного производителя в ассортимент магазина.
  • В программировании – это исходный код (текст) программы, который при помощи компилятора переводится в исполняемый код.
  • В недвижимости – здесь подписываются договора на листинг между собственником недвижимости и торговым агентом, который занимается ее продажей за комиссионные.

Две последние отрасли мы рассматривать не будем. Нас интересует листинг на , а также криптовалютных.

Листинг и делистинг ценных бумаг

Листинг появился в нашем лексиконе от слова list, что с английского переводится как «список». Листинг ценных бумаг на фондовой бирже – это и есть процедура добавления акций, облигаций компаний в список инструментов, которые котируются на платформе. После этого они стают доступны для покупки и продажи на ней.

Пройдя процедуру листинга, ценные бумаги попадают в торговый список биржи

Нередко листингом участники рынка называют сам список. При этом у каждой площадки данный список свой.

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

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

Биржевой листинг важно не путать с IPO. В первом случае компания стремится попасть в котировальной список определенной торговой площадки. А IPO подразумевает, что компания превращается в публичную и ее ценные бумаги стают доступны инвесторам не только через , но и другие каналы, например, через свои отделения.

Этапы листинга

Процедура листинга предусматривает несколько этапов, которые необходимо пройти компании-эмитенту, прежде чем ее бумаги станут доступны инвесторам.

  1. Начинается все с подачи заявления. Сделать это может как сам эмитент, так и лицо, представляющее интересы компании.
  2. Далее наступает стадия экспертиз. Представители биржи анализируют как ценные бумаги, так и все доступные данные о компании. Исследуется рентабельность предприятия, ликвидность его активов. Компания обязана предоставить всю финансовую отчетность, собранную за последние несколько лет.
  3. Специальная комиссия рассматривает результаты экспертиз и решает добавлять ценные бумаги в свой листинг или отклонить заявку.
  4. Если решение положительное, обе стороны – компания и биржа, заключают соглашение.

Процедура, в среднем, занимает около 1-2 месяцев. Чтобы оставаться в списке, эмитенту потребуется, как правило, один раз в квартал, подавать нужные данные бирже.

Правила листинга, предъявляемые торговыми площадками к компаниям, разнятся. Одни могут допускать к листингу только предприятия, капитализация которых составляет не менее 50 миллионов долларов, а время присутствия на рынке – от 3 лет. Другие могут как повышать, так и понижать планку этих и других требований.

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

Уровни листинга

Преимущественно на биржах представлено несколько уровней листинга. В первый премиальный попадают наиболее ликвидные бумаги с высоким уровнем надежности.

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

К примеру, на действует Основная и Альтернативная площадки. Первая делится на два уровня: «Стандарт» и «Премиум». Альтернативный рынок предназначен для мелких и средних развивающихся предприятий, которые допускаются сюда по упрощенной процедуре.

Периодически площадки могут повышать или наоборот понижать уровни листинга облигаций, акций, а то и вовсе проводить их делистинг.

Виды листинга

Различают первичный и вторичный листинг.

Первичный листинг подразумевает, что акции доступны инвесторам на биржевой площадке внутри страны, где зарегистрирована компания.

При вторичном листинг бумаги выводятся на международные рынки и попадание в списки зарубежных платформ. Сделать это можно только если пройден этап первичного листинга.

Существует еще двойной листинг, при котором компания последовательно стремится попасть в котировальные списки нескольких торговых площадок родной страны.

А также кросс-листинг – в данном случае предприятие отправляет заявки на добавление в списки нескольких биржевых платформ в разных странах. При этом если одна из них одобряет добавление ценных бумаг, на других компания получает возможность завершить процедуру листинга по упрощенной схеме. Это сокращает не только материальные расходы, но и время рассмотрения заявки.

В чем преимущества эмитента

Компании недаром прилагают усилия, чтобы попасть в биржевые листинги, поскольку это сулит им ряд выгод. Во-первых, повышается их инвестиционная привлекательность, а в результате легче привлекать средства для дальнейшего развития. К плюсам также отнесем:

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

Однако не стоит забывать, что отныне к деятельности компании будет предъявляться повышенное внимание, а любые действия будут моментально сказываться на стоимости акций. Кроме того, процедура листинга не бесплатная. Все проводимые экспертизы стоят денег.

Что это дает инвесторам

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

Что такое делистинг

Если ценные бумаги и попали в котировальный лист биржи, нет гарантии, что они там останутся навсегда. При определенных условиях площадка может вычеркнуть их из него. Происходит это в случае, например, если эмитент перестает соответствовать условиям биржи, не выполнил взятые обязательства, объявляет себя банкротом и т.д.

Также привести к делистингу может и стоимость акций, которая не растет со временем, что свидетельствует о низком спросе. Случается, что инициатором делистинга выступает сама компания, например, при слиянии предприятий.

Листинг криптовалют

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

Криптовалютные проекты стремятся попасть в листинги популярных бирж

Требованию к листингу на криптобиржах разнятся. Попасть на крупные известные площадки намного сложнее, чем на мелкие. А потому большинство проектов начинают с небольших торговых платформ.

Цена вопроса

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

Биржа Binance, к примеру, сообщила этой осенью, что комиссии, взимаемые за листинг, пойдут на финансирование благотворительных проектов. При этом фиксированных расценок не существует – разработчики сами определяют сколько желают заплатить за листинг. Руководство Poloniex утверждает, что денег за листинг вовсе не берет.

В начале года журналисты Business Insider опубликовали статью, согласно которой минимальный порог для вхождения в листинг криптобирж для ICO-проектов составляет 50 тысяч долларов, а в отдельных случаях может достигать и 1 миллиона долларов.

Также были случаи, когда руководство бирж попадалось на взятках за включение монет в листинг. В качестве примера можно привести биржу Coinnest – ее операционному и техническому директорам заплатили около 890 тысяч долларов за добавление в торговый список криптовалюты S-coin.

Как это работает

Чтобы токен попал в листинг, чаще всего на выбранной площадке необходимо подать заявку и заполнить анкету. Однако, популярные монеты биржи могут включать в листинг и самостоятельно, не дожидаясь пока команда проекта предложит сделать это. К примеру, на каждой бирже в обязательном порядке присутствует биткоин (BTC), и как правило, Ethereum (ETH).

Какие вопросы чаще всего встречаются в анкете:

  • название и описание монеты;
  • дата запуска основной сети, а также самой платформы;
  • ссылка на Github;
  • ссылка на Белую книгу проекта;
  • ссылки на социальные сети;
  • присутствует ли майнинг в сети и был ли премайнинг;
  • максимальная эмиссия монет и т.д.

Нередко биржи проводят также конкурсы среди своих пользователей – те голосуют за предложенные криптовалюты, и победившую монету добавляют с котировальный список.

Huobi Global в конце лета 2018 года запустила площадку для автоматического листинга криптовалют. С ее помощью биржа намерена ускорить процесс добавления токенов в торговый список и сделать его прозрачным.

Важные нюансы

Первое на что смотрят биржи – это ценность монеты, ее полезность для сообщества. На втором месте – безопасность проекта, поскольку если криптосеть будет взломана, пострадает также и биржа. Обязательно интересуются профессионализмом, а также репутацией команды.

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

Монеты, которые могут быть признаны ценными бумагами, биржи стараются не добавлять . Например, Poloniex сразу предлагает разработчикам ознакомиться с тестом Хоуи, чтобы определиться может токен подпасть под эти критерии или нет.

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

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

«Эффект бирж»

После добавления в листинги популярных криптобирж, стоимость монет, как правило резко вырастает – в среднем на 25-30%. Эта закономерность даже получила название «эффект бирж». Происходит это благодаря тому, что о монете узнает большее количество пользователей, она стает узнаваемой, повышает на нее спрос. Однако чаще всего этот взлет кратковременный и вскоре стоимость начинает снижаться.

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

Делистинг криптомонет производят по ряду причин:

  • низкий интерес со стороны трейдеров;
  • изменения в законодательстве;
  • взлом блокчейна криптосети;
  • отказ разработчиков от дальнейшей поддержки монеты;
  • жалобы пользователей.

Удаляются токены, как правило, не сразу – биржа дает несколько недель трейдерам на закрытие позиций и вывод средств на собственные кошельки.

Листинг в торговле

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

Если товар не пользуется спросом у покупателей, он также может пройти процедуру делистинга, и в этом случае исчезает с прилавков магазина.

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

Назначение

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

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

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

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

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

Организация

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

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

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

Качество

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

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

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

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

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

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

См. также

При компиляции программы можно задать параметр "l" (listing):

Тогда кроме файла с объектным кодом sum. objбудет создан файл с листингомsum. lst:

  • 1 ;sum. asm – программа, вычисляющая S=A+B
  • 2 0000 data segment
  • 3 0000 0001 a dw 01h
  • 4 0002 0002 b dw 02h
  • 5 0004 ???? s dw ?
  • 6 0006 data ends
  • 7 0000 code segment
  • 8 assume ds:data
  • 9 0000 BA 0000s begin: mov dx, data
  • 10 0003 8E DA mov ds, dx
  • 11 0005 A1 0000r mov ax, a
  • 12 0008 03 06 0002r add ax, b
  • 13 000C A3 0004r mov s, ax
  • 14 000F B8 4C00 mov ax, 4C00h
  • 15 0012 CD 21 int 21h
  • 16 0014 codeends
  • 17 endbegin

Листинг - это таблица, содержащая четыре столбца:

    Номер строки.

    Адрес внутри сегмента, т. е. от его начала (смещение).

    Содержимое памяти по данным адресам. В сегменте данных - это значения переменных, в сегменте кода - это машинные коды команд.

    Ассемблерный код.

Комментарии в листинге также сохраняются, просто здесь они для экономии места опущены.

Из листинга видно, что командам процессора соответствуют только строки 9-15. Остальные строки соответствуют т. н. директивам ассемблера.

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

    команды - информация для процессора;

    директивы - информация для самого ассемблера, как скомпилировать программу: как перевести команды на машинный язык и как разместить данные.

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

В рассматриваемой программе имеются следующие директивы:

    segment - директива объявления начала сегмента;

    dw (define word) - директива определения данных (выделения и инициализации области памяти) размером 16 бит;

    ends (end segment) - директива объявления конца сегмента;

    assume - директива назначения сегменту сегментного регистра;

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

Есть также следующие директивы определения данных:

    db (define byte) - директива определения области памяти в 8 бит;

    dd (define double word) - директива определения области памяти в 32 бита.

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

    386 - используются несистемные команды процессора i80386;

    386p- используются все команды процессораi80386, в том числе системные.

Строки 3-5 содержат директивы определения переменных A, BиS. В совокупности строки 3-5 и 9-15 содержат информацию для процессора - программу, включающую команды и данные. Они непосредственно отображаются на память компьютера.

Назначение

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

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

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

Программисты часто переносят исходный код из одного проекта в другой, что носит название повторного использования кода (Software reusability ).

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

Организация

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

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

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

Качество

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

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