Что такое source code

Что такое source code

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

Содержание

Назначение [ править | править код ]

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

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

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

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

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

Организация [ править | править код ]

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

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

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

Качество [ править | править код ]

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

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

Неисполняемый исходный код [ править | править код ]

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

Читайте также:  20 Бесплатных цифровых телеканалов

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

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

Персональные инструменты

Содержание

История

Самые первые программы для компьютеров, которые могли хранить системные инструкции, были написаны двоичным кодом [Источник 2] с помощью передней панели ЭВМ [Источник 3] . Так как через переднюю панель [Источник 4] можно было ввести только машинный код, который по сути являлся исходным. Совместно с появлением первых компьютеров появился и первый исходный код- перфокарты [Источник 5] . Эти перфокарты вначале программировались на ассемблере [Источник 6] , а в дальнейшем перешли на более совершенный язык Fortran. Когда исходный код был дематериализованы в текстовые файлы, появились текстовые редакторы. Ограниченные возможности компьютеров того времени часто требовали печати исходного кода на непрерывной бумаге.

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

Назначение

Исходный код может быть написан на любом из сотен языков программирования , которые были разработаны. Некоторые из наиболее популярных из них являются C , C ++, COBOL [Источник 7] , Fortran, Java, Perl, PHP , Python и Tcl / Tk [Источник 8] . Исходный код необходим для получения машинного кода. При выполнении инструкций программ, написанных на различных языках программирования, компьютеру необходимо преобразовать удобные для человеческого восприятия операторы в форму, понятную для компьютера. Системное программное обеспечение включает специальную программу, транслирующую текст программ, написанных на различных языках программирования, в машинные коды, которые и выполняются компьютером. Этот вид программного обеспечения называется компилятором или интерпретатором.

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

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

Качество

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

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

Документирование кода

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

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

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

Есть целый ряд специализированных инструментов для создания документов непосредственно из существующего исходного кода, например. Doxygen [Источник 11] . Со знанием грамматики программирования может автоматически определить несколько связей между отдельными элементами. Дополнительная информация и описание импортируются из специальных комментариев , отправленных по каждому пункту.

Юридическая защита

Программные средства, и исходный код, что их сопровождает, как правило, относятся к одной из двух парадигм лицензий: открытое программное обеспечение и несвободное программное обеспечение (или проприетарное). В целом, программное обеспечение является открытым, исходный код свободно используется, распространяется, анализируется и модифицируется, или же проприетарным, если исходный код держится в секрете, или находится в частной собственности и доступ к нему ограничен. Для обеспечения закрытости используются преимущественно положения различных законов об авторском праве, но часто используются также коммерческая тайна и патенты. Кроме того, дистрибутив программы, как правило, приходит с лицензионным соглашением (EULA) [Источник 12] , которое, главным образом, запрещает декомпиляцию [Источник 13] , реинжениринг [Источник 14] , анализ, редактирование, или обход защиты от копирования [Источник 15] . Виды защиты исходного кода (кроме традиционного компилирования в объектный код включают шифрование кода, запутывания кода ( англ. code obfuscation ) [Источник 16] или морфинг кода [Источник 17] . Есть несколько причин , по которым разработчики проприетарного программного обеспечения предпринимают большие усилия , чтобы держать в секрете исходные коды, в том числе опасения , что:

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

Ната­лья Бара­но­ва

Всего материалов: 602

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

FOSS (Free and Open Source Software) – эту аббре­ви­а­ту­ру исполь­зу­ют, когда гово­рят про сво­бод­ное и откры­тое про­грамм­ное обес­пе­че­ние с откры­тым исход­ным кодом.

Откры­тое про­грамм­ное обес­пе­че­ние (open-source software) – это про­грамм­ное обес­пе­че­ние с откры­тым исход­ным кодом, кото­рый досту­пен для про­смот­ра, изу­че­ния и изме­не­ния. Поль­зо­ва­тель может сам дора­бо­тать откры­тую про­грам­му с помо­щью кода. Откры­тое ПО поль­зо­ва­тель может исполь­зо­вать и изме­нять под свои тре­бо­ва­ния.

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

Читайте также:  Где бомбить в москве

Извест­ные откры­тые про­грам­мы: веб-сер­вер Apache, опе­ра­ци­он­ная систе­ма Linux и бра­у­зер Netscape Navigator.

Исход­ный код – текст ком­пью­тер­ной про­грам­мы на каком-либо язы­ке про­грам­ми­ро­ва­ния или язы­ке раз­мет­ки, кото­рый может быть про­чтен чело­ве­ком. Наи­бо­лее попу­ляр­ные язы­ки про­грам­ми­ро­ва­ния: C, C ++, Fortran, Java, Perl, PHP , Python. Откры­тый исход­ный код рас­про­стра­ня­ет­ся под откры­той лицен­зи­ей.

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

Таким обра­зом, что­бы счи­тать лицен­зию откры­той, дол­жен быть доступ к исход­ни­кам и воз­мож­ность вно­сить в них изме­не­ния. Откры­тая лицен­зия под­ра­зу­ме­ва­ет, что ПО мож­но сво­бод­но исполь­зо­вать, изме­нять и делить­ся им. На сай­те Open Source Initiative есть спи­сок одоб­рен­ных лицен­зий для сво­бод­но­го ПО.

Donationware (от англий­ско­го donation «пожерт­во­ва­ние» и software «про­грамм­ное обес­пе­че­ние», сокра­щен­но donateware) – один из вари­ан­тов моне­ти­за­ции про­ек­тов с откры­тым кодом. Дело в том, что откры­тое ПО не все­гда рас­про­стра­ня­ет­ся бес­плат­но. Раз­ра­бот­чи­ки внед­ря­ют раз­лич­ные схе­мы под­держ­ки про­ек­та.

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

Впер­вые такой спо­соб был опро­бо­ван в 1987 году для игры Ballerburg. Про­грам­мист рас­про­стра­нял игру бес­плат­но, но про­сил о пожерт­во­ва­нии, пред­ла­гая вза­мен исход­ный код игры.

LAMP – груп­па откры­тых про­грамм с откры­тым исход­ным кодом для созда­ния и запус­ка веб-сер­ве­ров. Аббре­ви­а­ту­ра обра­зо­ва­на от пер­вых букв вхо­дя­щих в груп­пу ком­по­нен­тов: опе­ра­ци­он­ная систе­ма Linux, веб-сер­вис Apache, сво­бод­ная систе­ма управ­ле­ния базой дан­ных MySQL, язык про­грам­ми­ро­ва­ния PHP. В широ­ком смыс­ле под тер­ми­ном пони­ма­ют неза­ви­си­мый и гиб­кий под­ход к созда­нию сер­вер­но­го при­ло­же­ния.

Github – круп­ней­шая плат­фор­ма для раз­ра­бот­ки про­грамм­но­го обес­пе­че­ния и его хостин­га на облач­ном сер­ве­ре. Сооб­ще­ство объ­еди­ни­ло более 24 мил­ли­о­нов чело­век. На сай­те раз­ра­бот­чи­ки пуб­ли­ку­ют свои про­ек­ты с откры­тым исход­ным кодом, про­смат­ри­ва­ют код друг дру­га, остав­ля­ют ком­мен­та­рии и помо­га­ют в раз­ра­бот­ке. Исход­ный код про­ек­та хра­нит­ся в репо­зи­то­рии, так назы­ва­ют хра­ни­ли­ще исход­но­го кода ваше­го про­грамм­но­го про­ек­та.

Напри­мер, такие ком­па­нии как Microsoft, Google, Facebook исполь­зу­ют дан­ный ресурс для раз­ме­ще­ния исход­ных кодов сво­их раз­ра­бо­ток. Теп­ли­ца соци­аль­ных тех­но­ло­гий так­же все­гда пуб­ли­ку­ет исход­ный код про­ек­тов на Github.

Ключевые организации

Про­ект GNU – опе­ра­ци­он­ная систе­ма типа Unix, состо­ит из мно­же­ства сво­бод­ных про­грамм: при­ло­же­ний, биб­лио­тек, средств раз­ра­бот­ки, игр. Назва­ние про­ек­та про­изо­шло от фра­зы GNU’s Not Unix.

Про­ект осно­вал про­грам­мист Ричард Столл­ман в 1984 году, имен­но с его запус­ка нача­лось дви­же­ние в под­держ­ку сво­бод­но­го про­грамм­но­го обес­пе­че­ния. У про­ек­та есть соб­ствен­ная лицен­зия GNU General Public License (GNU GPL) для ПО.

Фонд сво­бод­но­го про­грамм­но­го обес­пе­че­ния (Free Software Foundation, FSF) – неком­мер­че­ская орга­ни­за­ция, кото­рую осно­вал Ричард Столл­ман в 1985 году. Сей­час сотруд­ни­ки и доб­ро­воль­цы фон­да рабо­та­ют над юри­ди­че­ски­ми и орга­ни­за­ци­он­ны­ми вопро­са­ми в обла­сти сво­бод­но­го ПО.

При под­держ­ке ЮНЕСКО фонд раз­ра­бо­тал ката­лог сво­бод­но­го ПО Free Software Directory. Так­же фонд учре­дил две пре­мии: за про­дви­же­ние сво­бод­но­го про­грамм­но­го обес­пе­че­ния и сво­бод­но­го ПО за соци­аль­но зна­чи­мые про­ек­ты.

Open Source Initiative – неком­мер­че­ская орга­ни­за­ция, кото­рая зани­ма­ет­ся защи­той и про­дви­же­ни­ем про­грамм­но­го обес­пе­че­ния с откры­тым исход­ным кодом. Ее созда­ли хаке­ры, про­грам­ми­сты-хаке­ры Эрик Рей­монд и Брюс Перенс в 1998 году. Дея­тель­ность орга­ни­за­ции под­дер­жи­ва­ют и спон­си­ру­ют круп­ные ком­па­нии: Facebook, GitHub, Google, Heptio, Hewlett Packard Enterprise, IBM и Percona.

Ссылка на основную публикацию
Что можно достать из старого монитора
Ребята, мы вкладываем душу в AdMe.ru. Cпасибо за то,что открываете эту красоту. Спасибо за вдохновение и мурашки.Присоединяйтесь к нам в...
Что делать если экран компьютера уменьшился
В этом уроке я покажу, как уменьшить масштаб экрана на компьютере. Мы научимся изменять шрифт в Windows разными способами: через...
Что делать когда dns сервер не отвечает
Как настроить роутер, как настроить модем, как настроить оптический терминал. Настройка роутера по http://192.168.1.1 или http://192.168.0.1 DNS сервер не отвечает...
Что можно писать на javascript
Аспирант Нетологии Максим Пименов рассказывает про JavaScript — невероятно популярный язык программирования, который учит сайты реагировать на поведение посетителей. JavaScript...
Adblock detector