В соответствии с действующим законодательством программа для ЭВМ является результатом интеллектуальной деятельности (п. 2 ч. 1 ст. 1225 ГК РФ) и объектом авторских прав (ст. 1259 ГК РФ).
Авторские права на все виды программ для ЭВМ (в том числе на операционные системы и программные комплексы), которые могут быть выражены на любом языке и в любой форме, включая исходный текст и объектный код, охраняются так же, как авторские права на произведения литературы (ст. 1261 ГК РФ).
Согласно п. 1 ст. 1266 ГК РФ не допускается без согласия автора внесение в его произведение изменений, сокращений и дополнений. В пп. 9 п. 2 ст. 1270 ГК РФ закреплено право автора или иного правообладателя на переработку произведения, под которой понимается создание нового, производного произведения.
В отношении программы для ЭВМ законодатель в данной норме употребляет наряду с переработкой понятие модификации.
Модификация программы для ЭВМ – это любые ее изменения, в том числе перевод такой программы с одного языка на другой язык, за исключением ее адаптации.
Основы программирования: Исходный код
Адаптация программы для ЭВМ – это внесение изменений исключительно в целях функционирования программы для ЭВМ или базы данных на конкретных технических средствах пользователя или под управлением конкретных программ пользователя.
Как следует из системного анализа пп. 9 п. 2 ст. 1270 и пп. 1 п. 1 ст. 1280 ГК РФ, адаптация программы для ЭВМ является частным случаем изменения программы для ЭВМ, но при этом изменения, не требующего разрешения правообладателя (то есть легального).
В соответствии с пп. 1 п. 1 ст. 1280 ГК РФ лицо, правомерно владеющее экземпляром программы для ЭВМ или экземпляром базы данных (пользователь), вправе без разрешения автора или иного правообладателя и без выплаты дополнительного вознаграждения осуществлять действия, необходимые для функционирования программы для ЭВМ или базы данных (в том числе в ходе использования в соответствии с их назначением), включая запись и хранение в памяти ЭВМ (одной ЭВМ или одного пользователя сети), внесение в программу для ЭВМ или базу данных изменений исключительно в целях их функционирования на технических средствах пользователя, исправление явных ошибок, если иное не предусмотрено договором с правообладателем.
Кроме того, п. 3 ст. 1280 ГК РФ предоставляет пользователю право без согласия правообладателя и без выплаты дополнительного вознаграждения воспроизвести и преобразовать объектный код в исходный текст (декомпилировать программу для ЭВМ) или поручить иным лицам осуществить эти действия, если они необходимы для достижения способности к взаимодействию независимо разработанной этим лицом программы для ЭВМ с другими программами, которые могут взаимодействовать с декомпилируемой программой, при соблюдении определенных условий.
Таким образом, из содержания ст. 1261 ГК РФ следует, что правовая охрана предоставляется как самой программе для ЭВМ, так и средствам ее выражения — исходному тексту и объектному коду.
КАК ЧИТАТЬ ИСХОДНЫЕ КОДЫ | СОВЕТЫ ОТ СОЕРА
Для определения правомерности действий лица, не являющегося правообладателем, при использовании программы для ЭВМ интересным представляется вопрос о том, что признается изменением программы для ЭВМ: изменение только исходного кода или также изменение объектного кода.
Чтобы ответить на этот вопрос, необходимо дать определение указанных понятий.
2. Исходный текст программы для ЭВМ
Гражданский кодекс РФ использует понятие «исходный текст», однако определения данного понятия не содержит.
При этом в ГОСТах можно встретить определение понятия «исходный код». Исходный код — это код, написанный на исходном языке программирования, таком как язык ассемблера и/или язык высокого уровня, в машиночитаемой форме, пригодной для ввода в ассемблер или компилятор (п. 3.19 ГОСТ Р 51904-2002 «Государственный стандарт Российской Федерации. Программное обеспечение встроенных систем. Общие требования к разработке и документированию», утв. и введен в действие Постановлением Госстандарта России от 25.06.2002 N 247-ст, далее — ГОСТ Р 51904-2002).
В другом ГОСТе дано более простое определение исходного кода – это компьютерная программа в текстовом виде на каком-либо языке программирования (п. 3.4 ГОСТ Р 54593-2011 «Национальный стандарт Российской Федерации. Информационные технологии. Свободное программное обеспечение. Общие положения», утв. и введен в действие Приказом Росстандарта от 06.12.2011 N 718-ст, далее — ГОСТ Р 54593-2011).
Из анализа указанных определений следует вывод о том, что, поскольку исходный код представляет собой текстовый вид программы для ЭВМ, понятия «исходный код» и «исходный текст» являются равнозначными.
В юридической литературе высказывалась точка зрения, согласно которой именно тот факт, что исходный код программы сохраняется в текстовом файле, доступном для прочтения человеком, послужил основанием для законодателя приравнять компьютерную программу к литературным произведениям [1].
Запись исходного кода представляет собой оригинал произведения. Код в виде текста может отображаться на экране монитора, а может быть написан от руки. Однако исходный код доступен для понимания людьми, но недоступен для понимания компьютером. Для того чтобы программа для ЭВМ заработала, исходный код необходимо превратить в исполняемый файл (объектный код) [2].
3. Объектный код программы для ЭВМ
Объектный код – это представление компьютерной программы на низком уровне, обычно не в форме, непосредственно пригодной для объектного компьютера, а в форме, включающей в себя, помимо информации о процессорных командах, информацию о размещении программы (п. 3.31 ГОСТ Р 51904-2002).
Есть и иное определение объектного кода – это код, который является непосредственно пригодным для использования центральным процессором объектного компьютера, и является, следовательно, загружаемым в аппаратные средства или систему ПО (п. 12.20 ГОСТ Р 51904-2002).
Таким образом, для того чтобы исходный код стал доступен для понимания конкретным устройством, он компилируется специальными программами (компиляторами), вследствие чего происходит его преобразование в форму, понятную компьютеру. Следовательно, объектный код — это результат компиляции исходного текста программы [3].
Объектный код также называют исполняемым кодом, так как в результате компиляции исходного кода получается файл, при запуске которого на компьютере начнут исполняться команды, заложенные в исходном коде, программа будет решать задачи, для которых она разработана. Так, при запуске исполняемого exe-файла для конкретной программы на экране компьютера появляется окно с этой программой, после чего пользователь может с ней работать: например, формулировать поисковые запросы в карточке поиска, просматривать результаты поиска, открывать документы, экспортировать файлы и так далее.
4. Этапы создания и изменения программы для ЭВМ
При анализе практики современного программирования выделяют несколько этапов создания и изменения программы для ЭВМ:
- Написание исходного кода с делением его файлов на закрытую часть исходного кода – это файлы, которые в дальнейшем не могут быть декомпилированы и изменены кем бы то ни было, кроме самого разработчика, — и будущие открытые файлы — которые по сути являются открытой/изменяемой и при этом неотъемлемой частью исходного кода для дальнейшей адаптации и модификации.
- Обработка (компиляция) исходного кода, в результате которой получается исполняемый (объектный) код, который также представляет собой комплекс файлов двух вышеописанных групп – закрытой и открытой.
- По сути, настройка возможности внесения изменений в программу. В дальнейшем изменения может вносить как сам разработчик программы или обладатель исключительных прав на данный программный продукт, так и иные лица, производящие модификацию (переработку) программы с разрешения разработчика (правообладателя) либо адаптацию для работы на своем устройстве, для которой разрешение не требуется. [4].
Вопрос о том, в какую часть программы для ЭВМ могут вноситься изменения для правильной квалификации их правомерности – только в исходный код, или также в исполняемый/объектный код, — обсуждается в юридической литературе.
5. Изменение исходного и объектного кодов программы для ЭВМ в свете правовой охраны авторских прав
К вопросу об изменении исходного и объектного кодов можно встретить два подхода.
Первый подход основывается на утверждении, что специфика программ для ЭВМ такова, что изменение программы — это изменение именно исходного кода. Если встроенными в программу инструментами, предусмотренными разработчиком для применения пользователем, изменяются только результирующие данные, которые выдает программа, то такие изменения нельзя назвать изменением самой программы.
Когда создан объектный код (исполняемый файл), его нельзя изменить, декомпилировать и превратить обратно в исходный код. В теории и практике это возможно, но является хакерством (кроме случаев, перечисленных в п. 3 ст. 1280 ГК РФ). В обычной практике это невозможно. Когда речь идет об изменении программы, человек может изменять только исходный код. [5].
Второй подход основывается на мнениях о том, что изменения в программу для ЭВМ следует квалифицировать независимо от того, куда были внесены изменения: в исходный код/текст программы или в исполняемый/объектный код программы для ЭВМ [6].
Некоторые авторы отмечают, что в современном программировании одни и те же изменения в программу могут вноситься различными способами, на разных этапах и разными инструментами как в исходный код/текст, так и в исполняемый/объектный код программы для ЭВМ. И именно этот критерий — внесение изменений как в исходный код/текст, так и в исполняемый/объектный код — предлагается авторами брать за основу определения изменений в программу для ЭВМ [7].
Такая логика вполне закономерна: поскольку изменение исходного кода программы неизбежно ведет к изменению исполняемого/объектного кода, следовательно, с точки зрения правовой охраны изменением программы для ЭВМ признаются как изменения исходного кода, так и изменения исполняемого/объектного кода. Здесь представляет особый интерес квалификация изменений исполняемого/объектного кода пользователем, эксплуатирующим программный продукт на своем устройстве. Обычный пользователь не видит исходный код, но видит результат его преобразования в исполняемом коде – благодаря данному преобразованию или внесенным изменениям могут появиться новые возможности работы с программой.
В юридической литературе приводятся критерии разграничения оригинального и производного произведений на основании судебной практики зарубежных стран. Например, в США для сравнения компьютерных программ и объектов, от них образованных, на предмет выявления факта переработки используют специальный тест Abstraction-Filtration-Comparison test (AFC).
При применении данного теста сравниваются основные элементы программы: основное назначение, структура или архитектура программы, модули, алгоритмы и структуры данных, исходный код и объектный код. Затем происходит выделение неохраняемых элементов, которые есть в программе из-за использования открытой лицензии, и сравнение уже основных охраняемых элементов. Таким образом, не только исходный, но и объектный коды сравниваются на предмет внесения изменений в программу для ЭВМ [8].
Обратимся к российским нормативным документам и судебной практике
В соответствии с п. 3.11 ГОСТ Р 51904-2002 под изменением программного обеспечения понимаются модификация исходного кода, исполняемого объектного кода или сопутствующих документов относительно их базовой линии.
В соответствии с другим ГОСТом определенные языки программирования формально не проводят различия между исходным текстом программ и исполняемыми файлами, поскольку исполняемые файлы создаются в то время, когда они активированы (п. 12.4 ГОСТ Р ИСО/МЭК 27002-2012 «Национальный стандарт Российской Федерации. Информационная технология. Методы и средства обеспечения безопасности. Свод норм и правил менеджмента информационной безопасности», утв. и введен в действие Приказом Росстандарта от 24.09.2012 N 423-ст).
Признание в качестве объектов авторских прав исходного текста/кода и объектного/исполняемого кода и предоставление им правовой охраны (ст. 1261 ГК РФ) также свидетельствуют о том, что изменения могут вноситься как в исходный, так и в объектный код.
Кроме того, в п. 3 ст. 1280 ГК РФ закреплено право пользователя на декомпиляцию программы ЭВМ, если она необходима для достижения способности к взаимодействию независимо разработанной этим лицом программы для ЭВМ с другими программами, которые могут взаимодействовать с декомпилируемой программой, при соблюдении определенных условий.
Декомпиляция, как следует из п. 3 ст. 1280 ГК РФ, представляет собой воспроизведение и преобразование объектного кода в исходный текст.
В практике отечественных судов для определения, имела ли место переработка программы для ЭВМ, а значит – нарушение исключительных прав, также сравнивают не только исходные, но и объектные коды. Для этого обычно назначается компьютерно-техническая экспертиза, и на разрешение эксперта ставятся вопросы о том, является ли исходный текст и/или объектный код одной программы производным (созданным на основе) исходного текста и/или объектного кода другой программы, являются ли данные программы идентичными (см., например, Постановление Суда по интеллектуальным правам от 21.11.2016 N С01-328/2016 по делу N А56-21040/2015, Решение Арбитражного суда Архангельской области от 27.05.2020 по делу N А05-12896/2018 (Постановлением Четырнадцатого арбитражного апелляционного суда от 04.09.2020 N 14АП-5315/2020, 14АП-5658/2020 по делу N А05-12896/2018 данное решение оставлено без изменения)).
В случае если суд установит, что ни в исходный, ни в объектный код изменения не вносились, будет сделан вывод о том, что программа для ЭВМ не подверглась изменению.
Напротив, если в результате исследования установят изменение исходного и объектного кода, будет сделан вывод о переработке программы. Так, Суд по интеллектуальным правам удовлетворил исковые требования о признании исключительных прав на программы для ЭВМ, поскольку истцом было доказано, что в результате переработки исходный и объектные коды первоначальной программы существенным образом изменились, в результате чего у пользователя появилась возможность решать дополнительные задачи (Постановление Суда по интеллектуальным правам от 21.03.2017 N С01-1269/2016 по делу N А40-154016/2014).
Изложенное подтверждает высказанное в литературе мнение, согласно которому различия между изменениями в исходный код/текст и в исполняемый/объектный код программы для ЭВМ в настоящее время весьма условны и изменения в программу следует квалифицировать независимо от того, куда были внесены изменения: в исходный код/текст программы или в исполняемый/объектный код программы для ЭВМ [9].
Следовательно, и при разрешенной правообладателем (разработчиком) модификации либо легальной адаптации программы для ЭВМ, и при ее незаконной переработке оба ее элемента – исходный код/текст и исполняемый/объектный код — могут быть подвергнуты изменению.
Исходный код — что это?
Инструкции программы написаны на специальном языке — так называемом языке программирования. Следовательно, говорится не «создавать программу», а «писать программу». Программы написаны. А весь текст программы, написанный на том или ином языке программирования, называется исходным кодом.
В обыденном языке не говорится «программные инструкции», хотя, с научной точки зрения, это наиболее правильное слово, только «программный код». Исходный код программы — это последовательность компьютерных инструкций, организованная таким образом, чтобы достичь определённой цели путём выполнения этих инструкций в определённом порядке. Они пишут эти инструкции на специальном техническом языке, понятном компьютеру, который называется языком программирования.
Исходный код программы представляет собой последовательность непонятных для непрограммиста слов, чисел и других знаков, написанных определённым образом — с использованием того или иного языка программирования (а их много).
Самая простая программа может содержать несколько строк кода. И самое сложное — сотни миллионов. Вы можете найти примеры плохого кода на сайте https://badcodes.ru.
Исходный код содержит инструкции и может содержать данные, к которым нужно применить эти конкретные инструкции. Таким образом, описывается, что компьютер должен делать с данными. Код также может содержать инструкции, указывающие, где и как загрузить данные для обработки (загрузить файл с диска, загрузить из интернета, прочитать с датчика и т. д.).
Как устроена компьютерная программа
Если человек покупает шкаф или стол в IKEA, у него есть всё в одной упаковке — доски, ножки, винты и т. д. Кроме того, ему понадобится всего несколько инструментов, например, молоток и отвёртка. Если это что-то посложнее (например, набор кухонной мебели), то инструментов потребуется больше, в наборе будет несколько упаковок вместо одной, а инструкция будет намного толще. Можно наблюдать такое же явление в компьютерной программе. Самая простая программа может быть написана за несколько минут, потому что она содержит несколько строк кода, а самые сложные программы написаны тысячами людей в течение нескольких или нескольких лет. Компьютерная программа также может состоять из отдельных частей — так называемых модулей или библиотек.
Современные компьютеры очень быстры, потому что они могут выполнять до миллиардов очень простых инструкций в секунду. Но в то же время компьютер не может судить, правильно ли размещены инструкции в той или иной программе и есть ли смысл в их выполнении — он просто делает именно то, что было написано в исходном коде.
Источник: gidprog.ru
Для чего нужен исходный код программы
Опубликованно 24.02.2018 02:55

Любого программного обеспечения или онлайн-сервисов, например, Word, для Windows, whatsapp или браузера, которые ежедневно работают сотни миллионов людей, так или иначе, включают специальные инструкции. Или специальный программный код, который понятен машине, рассказывает ему, что делать или не делать. Или как правильно реагировать на действия пользователя. Какой код программы будет рассмотрен в этой статье.Описание
Программа программный код-это текст выполняется на специальном языке, понятном машине. Она может быть выполнена непосредственно в тексте переводчика или передача в специальную форму компилятором.
Исходный код может состоять из нескольких файлов. Все они должны быть одинакового формата. Текст программы, содержащиеся в них, должны быть написаны на одном языке. Однако, там могут быть некоторые исключения. Например, в веб-разработке файла страницы может содержать несколько различных языков программирования и стандартов.
В зависимости от сложности проекта, можно представить, таких языков и технологий как PHP, HTML и javascript, Java и других.
Сложных программных систем в сборе может потребоваться большое количество файлов, которые могут быть как целые сотни. Для совместной работы над такими крупными проектами, программисты очень часто используют системы контроля версий. Они позволяют одновременно работать с несколькими экземплярами исходный код, который на определенном этапе развития могут быть объединены в один общий.
Компьютер не способен понять, как ваш код написан для него, хорошо или плохо. Если он здоров и не содержит ошибок, машина будет в любом случае запустить его. Плохой код может усложнить задачи сопровождения программного обеспечения. Это особенно актуально для крупных проектов. Как правило, качественный код характеризуется несколькими параметрами:Читаемость кода.
Одного взгляда на него должно быть достаточно, чтобы вообще понять, что реализуется фрагмент кода.Присутствие четкие и емкие комментарии. Этот параметр значительно влияет на удобочитаемость, простота отладки, тестирования, поддержки и устранения неполадок программного кода.Низкая сложность.Оптимизация кода. Организовать это так, что использовать программу меньше системных ресурсов, таких как память, процессорное время и дисковое пространство.Отсутствие мусора. То есть, не используемых переменных или блоки кода, которые никогда не доходит до программы управления.Вредоносного кода
Помимо полезных программ, которые могут навредить системе или даже оборудования. Как правило, такой код пишется людьми, которые заинтересованы в каких-либо преимуществ от текущего процесса. Например, программы, которые могут похищать личную информацию от пользователей компьютера. Они могут быть номер карты, паспортные данные или любую другую конфиденциальную информацию. Другие же могут просто влиять на систему, тем самым вызывая сбои и предотвращая полную функциональность. Рекомендации по написанию хорошего кода
Джефф Вогель — программист с большим опытом работы, поделился несколькими советами для того, чтобы научить начинающих правила хорошего кода.
В частности, он предлагает всегда комментировать свой код. Что такое обзор? Это четкое и краткое описание того, что происходит в этой строке кода или функции. Тот факт, что разработка конкретной программы может быть отложено на месяц или даже приостановили на некоторое время.
Возвращаясь к работе над проектом пару месяцев, даже опытный программист будет трудно разобраться в программе. Но подробные комментарии смогут восстановить цепь событий и поведения.
Далее он рекомендует как можно чаще использовать глобальные переменные. Это происходит потому, что при изменении кода программы, необходимо скорректировать значение переменной только в одном месте. С использованием значения функции или процедуры сразу об этом узнают и будет работать с новыми данными.Имена переменных и выявления ошибок
Правильное название переменных также поможет значительно сократить время на изучение исходного кода программы, даже если код написан своими руками. То есть, хороший код-это текст, где переменные и функции имеют имена, можно понять, что они делают или хранят. При этом необходимо стараться не использовать длинные имена переменных.
Очень важно уделять большое внимание своевременному исправлению ошибок. Что такое программный код, который прекрасно выполнил? Этот код не имеет ошибки. То есть любая ветвь цикла или изменение переменной, или даже любых неожиданных действий пользователя, всегда приведет к ожидаемому результату. Это достигается путем тестирования программного продукта на нескольких случаев.
Обнаружения ошибок кода, а точнее, их прогноз возможен на этапе проектирования программы. Наличие в коде проверку различных условий и возможных исключений, поможет вести управление программой курса.
Оптимизация необходима для написания работоспособной программы, которые будут эффективно использовать компьютерные ресурсы и чтобы избежать ошибок выполнения кода программы. Какова оптимальная программа? Это продукт, который может выполнять все заявленные функции, ведет себя в этом «тихом» и экономичный.
Почти всегда оптимизация для стабильной работы программы может быть достигнута лишь путем проведения нескольких тестов на разных платформах и в разных условиях. Если программа начинает вести себя непредсказуемо, нужно определить, чем она вызвана и устранить или захватить процесс.Заключение
Что такое код? Простыми словами, это набор инструкций и понятий для компьютера. Он содержит текст, который компилятор или интерпретатор может превратить в понятный машине язык. То есть, по сути, кодекс является посредником между человеком и компьютером, что упрощает их отношения.
Категория: Мобильная техника
Исходные коды программ и игр
Исходники Лучшая книга программиста — рабочий исходный код. Раздел включает исходные коды самого разнообразного направления: исходники игр, сетевых программ и небольшие исходные коды для ознакомления. Исходники сайта написаны на языках программирования C++ и C#.
Чтобы сделать небольшой, но алгоритмически важный шаг в разработке приложения, необходимо просмотреть очень много специализированной литературы, протестировать множество вариантов программных кодов. В таких случаях очень помогает рабочий исходник с готовым решением. Чаще всего нет необходимости полностью разбирать коды программ, достаточно выбрать только необходимые строки. Исходники настоящего сайта дополняют коллекцию исходных кодов размещенных на сайтах программисткой тематики. К каждой важной строчке кода прилагаются подробные комментарии.
Программы Раздел включает прикладные программы, помогающие в расчетах, инструменты для вебмастеров, полезные утилиты для пользователей компьютеров. Здесь же можно найти компьютерные мини игры, головоломки, карточные игры и другие. Большинство программ и игр сайта имеют исходники в разделе исходных кодов. После небольших доработок исходники можно применять в различных собственных проектах. Исходники подробно комментируются на страницах сайта или в самих файлах исходников.
Статьи Подбор статей о программировании — рассуждения профессиональных и начинающих программистов о программировании, языках программирования и о выборе инструментов программирования. Рассказывается о возникновении науки программирования, о создании языков программирования, их различиях. В статьях можно найти интересные рассуждения студентов технических вузов и начинающих программистов.
Лицензионное программное обеспечение Занимаясь разработкой программ или увлекаясь программированием невозможно обойтись без специализированного программного обеспечения. На некотором уровне программистского стажа определяется свое специализированное направление, свой джентльменский набор программного обеспечения.
Используя для своих разработок взломанные, пиратские программы рано или поздно осознаешь, что без лицензионного софта, гарантирующего безотказную полноценную функциональность и комфортность программирования, невозможно обойтись. В настоящее время для частных разработчиков и небольших программирующих организаций предлагается много профессионального программного обеспечения по приемлемым ценам. В данном разделе предлагается множество полезных программ. Ассортимент предложения лицензионного программного обеспечения включает огромное количество софта для разработчиков прикладных программ, сетевых программ, веб-программистов, графические программы для художников-дизайнеров и множество других. Раздел также содержит программы, созданные чтобы обеспечить безопасность вашей работы на персональной вычислительной технике: антивирусы, брандмауэры, фаерволы, сетевые экраны.
Книги Теоретическая подготовка должна обязательно сочетаться с практической работой и даже опережать ее. Занимаясь только одной практикой программирования, рано или поздно осознаешь, как низок потолок своих знаний. Именно здесь помогают книги от авторов с большим стажем программирования, от авторов которые из разряда обычных программистов перешли в разряд настоящих мастеров, просто и доступно объясняющих сложные алгоритмы программирования. Причем книгу на бумаге полноценно не может заменить электронная книга.
Понятие программного кода
Исходный код (обычно просто текст программы, англ. source code ) — любой набор инструкций или объявлений, написанных в компьютерном языке программирования и в форме, которую может прочитать человек. Исходный код позволяет программисту общаться с компьютером с помощью ограниченного набора инструкций.
![]()
Исходный код, написанный на HTML, с использованием JavaScript
Исходный код, представляющий собой программу, как правило, содержится в одном или более текстовых файлах, иногда сохраняется в базах данных, как хранимые процедуры, а также может появиться, как фрагменты кода, напечатанные в книгах или других средствах печати. Большая коллекция файлов исходноко кода может быть организована в дерево каталогов, и, в этом случае, оно может быть также известно как дерево исходных кодов ( англ. source tree ) или дерево кода дерево исходного кода и т.д.
Исходный код программы — это набор файлов, необходимых для преобразования из формы, доступной для чтения человеку, на некоторые виды компьютерного исполняемого кода.
12.3.2. Пример программного кода
Возможны два направления выполнения кода: транслируется в машинный код с помощью компилятора, предназначенного для определенной компьютерной архитектуры, или выполняется непосредственно по тексту с помощью интерпретатора.
Цели
Исходный код в основном используется в качестве входных данных для процесса, который производит исполняемые программы (то есть, его компилируют или интерпретируют). Его также используют в качестве средства передачи алгоритмов между людьми (например, фрагменты кода в книжках). Портирование программы на другие компьютерные платформы без сырцового кода, как правило, является достаточно сложным. Хотя возможны варианты портирование и без исходных кодов, напр., двоичная трансляция илиэмуляция оригинальной платформы.
Лицензирование
Программные средства, и исходный код, что их сопровождает, как правило, относятся к одной из двух парадигм лицензий: открытое программное обеспечение и несвободное программное обеспечение (или проприетарное). В целом, программное обеспечение является открытым, если исходный код может свободно использоваться, распространяться, модифицироваться и анализироваться, и проприетарным, если исходный код держится в секрете, или находится в частной собственности и доступ к нему ограничен.
Для обеспечения закрытости используются преимущественно положения различных законов об авторском праве, но часто используются также коммерческая тайна и патенты. Кроме того, дистрибутив программы, как правило, приходит с лицензионным соглашением (EULA), которое, главным образом, запрещает декомпиляцию, реинжениринг, анализ, редактирование, или обход защиты от копирования. Виды защиты исходного кода (кроме традиционного компилирования в объектный код включают шифрование кода, запутывания кода ( англ. code obfuscation ) или морфинг кода.
Качество
То, как написано программу, может иметь очень важные последствия для ее сопровождения. Многие учебники по стилю программирования настаивают на важности читабельности, и многие рекомендации направлены на поддержку исходного кода программы, которое включает в себя отладочную и обновления. Другие приоритеты, как например, скорость выполнения программы и возможности компилирования программы для нескольких архитектур, часто делают читабельность кода менее важным фактором, поскольку качество кода полностью зависит от его назначения.
Поскольку программирование уже десятки лет существует в промышленных масштабах, были разработаны соответствующие стандарт оформления кода. Некоторые стандарты оформлены официально, а некоторые являются негласными правилами. Например, Венгерская нотация регламентирует наименование идентификаторов в программе (часто это решается выпуском конвенции по именованию в масштабах предприятия), другие стандарты определяют правила расстановки элементов синтаксиса.
Исхо́дный код (также исхо́дный текст, либо просто исхо́дник, код, англ.Code) — компьютерная программа в текстовом виде на каком-либо языке программирования. Исходный код либо транслируется в исполняемый код при помощи компилятора, предназначенного для определенной компьютерной архитектуры, либо исполняется непосредственно по тексту при помощи интерпретатора.
Назначение
Исходный код либо используется для получения объектного кода, либо выполняется интерпретатором. Изменения никогда не выполняются над объектным кодом, только над исходным, с последующим повторным преобразованием в объектный.
Другое важное назначение исходного кода — в качестве описания программы. По тексту программы можно восстановить логику её поведения. Для облегчения понимания исходного кода используются комментарии. Существуют также инструментальные средства, позволяющие автоматически получать документацию по исходному коду — т. н. генераторы документации.
Кроме того, исходный код имеет много других применений.
HTML Программный код
Он может использоваться как инструмент обучения; начинающим программистам бывает полезно исследовать существующий исходный код для изучения техники и методологии программирования. Он также используется как инструмент общения между опытными программистами, благодаря своей (идеально) лаконичной и недвусмысленной природе. Совместное использование кода разработчиками часто упоминается как фактор, способствующий улучшению опыта программистов.
Программисты часто переносят исходный код из одного проекта в другой, что носит название повторного использования кода (Software reusability).
Исходный код — важнейший компонент для процесса портирования программного обеспечения на другие платформы. Без исходного кода какой-либо части ПО, портирование либо слишком сложно, либо вообще невозможно…
Организация
Исходный код некоторой части ПО (модуля, компонента) может состоять из одного или нескольких файлов. Код программы не обязательно пишется только на одном языке программирования. Например, часто программы, написанные на языке Си, с целью оптимизации, содержат вставки кода на языке ассемблера. Также возможны ситуации, когда некоторые компоненты или части программы пишутся на различных языках, с последующей сборкой в единый исполняемый модуль при помощи технологии известной как линковка библиотек (library linking).
Сложное программное обеспечение при сборке требует использования десятков, или даже сотен файлов с исходным кодом.
В таких случаях для упрощения сборки обычно используются файлы Makefile, содержащие описание зависимостей между файлами с исходным кодом и описывающие процесс сборки.
Для облегчения работы с исходным кодом, для совместной работы над кодом командой программистов, используются системы управления версиями.
Качество
В отличие от человека, для компьютера нет «хорошо написанного» или «плохо написанного» кода. Но то как написан код может сильно влиять на процесс сопровождения ПО. О качестве исходного кода можно говорить в контексте следующих параметров:
- читаемость кода
- лёгкость в поддержке, тестировании, отладке и устранении ошибок, модификации и портировании
- низкая сложность
- низкое использование ресурсов — памяти, процессора, дискового пространства
- отсутствие замечаний при компиляции программы
Источник: steptosleep.ru