~~~~~~~~~~~~~~~~~~~~ Arc.Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~ 
Номер скриншота №:
✰ 537D0B85329A59946B9588B8D4D2A8BB__1717196040 ✰
Заголовок документа оригинал.:
✰ Source code - Wikipedia ✰
Заголовок документа перевод.:
✰ Исходный код — Википедия ✰
Снимок документа находящегося по адресу (URL):
✰ https://en.wikipedia.org/wiki/Source_code ✰
Адрес хранения снимка оригинал (URL):
✰ https://arc.ask3.ru/arc/aa/53/bb/537d0b85329a59946b9588b8d4d2a8bb.html ✰
Адрес хранения снимка перевод (URL):
✰ https://arc.ask3.ru/arc/aa/53/bb/537d0b85329a59946b9588b8d4d2a8bb__translat.html ✰
Дата и время сохранения документа:
✰ 21.06.2024 06:36:47 (GMT+3, MSK) ✰
Дата и время изменения документа (по данным источника):
✰ 1 June 2024, at 01:54 (UTC). ✰ 

~~~~~~~~~~~~~~~~~~~~~~ Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~~ 
Сервисы Ask3.ru: 
 Архив документов (Снимки документов, в формате HTML, PDF, PNG - подписанные ЭЦП, доказывающие существование документа в момент подписи. Перевод сохраненных документов на русский язык.)https://arc.ask3.ruОтветы на вопросы (Сервис ответов на вопросы, в основном, научной направленности)https://ask3.ru/answer2questionТоварный сопоставитель (Сервис сравнения и выбора товаров) ✰✰
✰ https://ask3.ru/product2collationПартнерыhttps://comrades.ask3.ru


Совет. Чтобы искать на странице, нажмите Ctrl+F или ⌘-F (для MacOS) и введите запрос в поле поиска.
Arc.Ask3.ru: далее начало оригинального документа

Исходный код — Википедия Jump to content

Исходный код

Из Википедии, бесплатной энциклопедии
Простой на языке C пример исходного кода , процедурном языке программирования . Полученная программа печатает на экране компьютера «привет, мир». Этот первый известный « Привет, мир » отрывок из основополагающей книги «Язык программирования C» принадлежит Брайану Кернигану из Bell Laboratories в 1974 году. [1]

В вычислительной технике исходный код или просто код или источник — это текст (обычно простой текст ), который соответствует удобочитаемому языку программирования и определяет поведение компьютера . Программист , пишет код для создания программы которая работает на компьютере.

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

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

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

Предыстория [ править ]

Первые программируемые компьютеры, появившиеся в конце 1940-х годов, [2] были запрограммированы на машинном языке (простые инструкции, которые могли быть непосредственно выполнены процессором). Машинный язык было трудно отлаживать, и его нельзя было переносить между различными компьютерными системами. [3] Первоначально аппаратные ресурсы были скудными и дорогими, а человеческие ресурсы были дешевле. [4] По мере усложнения программ производительность программистов стала узким местом. Это привело к появлению языков программирования высокого уровня, таких как Фортран, в середине 1950-х годов. Эти языки абстрагировали детали аппаратного обеспечения и вместо этого были разработаны для выражения алгоритмов, которые людям было бы легче понять. [5] [6] Поскольку инструкции отличаются от базового компьютерного оборудования высокого уровня, , программное обеспечение появилось относительно недавно и восходит к таким ранним языкам программирования как Fortran , Lisp и Cobol . [6] Изобретение языков программирования высокого уровня произошло одновременно с появлением компиляторов , которые должны были автоматически транслировать исходный код в машинный код, который можно было напрямую выполнять на аппаратном обеспечении компьютера . [7]

Исходный код — это форма кода, которая модифицируется непосредственно людьми, обычно на языке программирования высокого уровня. Объектный код может выполняться непосредственно машиной и генерируется автоматически из исходного кода, часто с помощью промежуточного этапа — языка ассемблера . Хотя объектный код будет работать только на определенной платформе, исходный код можно перенести на другую машину и перекомпилировать там. Для одного и того же исходного кода объектный код может существенно различаться — не только в зависимости от машины, для которой он скомпилирован, но и в зависимости от оптимизации производительности компилятора. [8] [9]

Организация [ править ]

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

Более сложный пример исходного кода Java . Написанный в стиле объектно-ориентированного программирования , он демонстрирует шаблонный код . Комментарии пролога обозначены красным, встроенные комментарии — зеленым, а операторы программы — синим.

Разработчики программного обеспечения часто используют управление конфигурацией для отслеживания изменений в файлах исходного кода ( контроль версий ). Система управления конфигурацией также отслеживает, какой файл объектного кода соответствует какой версии файла исходного кода. [11]

Цели [ править ]

Оценка [ править ]

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

Общение [ править ]

Исходный код также используется для передачи алгоритмов между людьми – например, фрагменты кода в Интернете или в книгах. [13]

Программистам может оказаться полезным просмотреть существующий исходный код, чтобы узнать о методах программирования. [13] Совместное использование исходного кода между разработчиками часто упоминается как фактор, способствующий развитию их навыков программирования. [13] Некоторые люди считают исходный код выразительным художественным средством . [14]

Исходный код часто содержит комментарии — блоки текста, помеченные для игнорирования компилятором. Это содержимое не является частью логики программы, а предназначено для того, чтобы помочь читателям понять программу. [15]

Компании часто сохраняют конфиденциальность исходного кода, чтобы скрыть алгоритмы, считающиеся коммерческой тайной . Собственный секретный исходный код и алгоритмы широко используются в секретных государственных приложениях, таких как уголовное правосудие , что приводит к поведению «черного ящика» с отсутствием прозрачности методологии алгоритма. Результатом является избегание общественного внимания к таким вопросам, как предвзятость. [16]

Модификация [ править ]

Доступ к исходному коду (а не только к объектному коду) необходим для его изменения. [17] Понимание существующего кода необходимо, чтобы понять, как он работает. [17] и перед его изменением. [18] Скорость понимания зависит как от базы кода, так и от навыков программиста. [19] Опытным программистам легче понять, что делает код на высоком уровне. [20] Программная визуализация иногда используется для ускорения этого процесса. [21]

Многие программисты используют интегрированную среду разработки (IDE) для повышения своей производительности. IDE обычно имеют несколько встроенных функций, включая редактор исходного кода , который может предупреждать программиста о распространенных ошибках. [22] Модификация часто включает в себя рефакторинг кода (улучшение структуры без изменения функциональности) и реструктуризацию (одновременное улучшение структуры и функциональности). [23] Почти каждое изменение в коде приведет к появлению новых ошибок или неожиданных побочных эффектов , которые требуют еще одного раунда исправлений. [18]

Обзоры кода , проводимые другими разработчиками, часто используются для тщательного изучения нового кода, добавленного в проект. [24] Целью этого этапа часто является проверка того, что код соответствует стандартам стиля и удобства сопровождения и что он является правильной реализацией проекта программного обеспечения . [25] По некоторым оценкам, проверка кода значительно снижает количество ошибок, сохраняющихся после тестирования программного обеспечения . завершения [24] Наряду с тестированием программного обеспечения, которое осуществляется путем выполнения кода, статический анализ программы использует автоматизированные инструменты для обнаружения проблем с исходным кодом. Многие IDE поддерживают инструменты анализа кода, которые могут предоставить показатели ясности и удобства сопровождения кода. [26] Отладчики — это инструменты, которые часто позволяют программистам пошагово выполнять выполнение, отслеживая, какой исходный код соответствует каждому изменению состояния. [27]

Компиляция и исполнение [ править ]

Файлы исходного кода на языке программирования высокого уровня должны пройти этап предварительной обработки в машинный код, прежде чем инструкции смогут быть выполнены. [7] После компиляции программу можно сохранить в виде объектного файла , а загрузчик (часть операционной системы) может взять этот сохраненный файл и выполнить его как процесс на аппаратном обеспечении компьютера. [10] Некоторые языки программирования используют интерпретатор вместо компилятора. Интерпретатор преобразует программу в машинный код во время выполнения , что делает их в 10–100 раз медленнее, чем скомпилированные языки программирования. [22] [28]

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

Качество программного обеспечения — это всеобъемлющий термин, который может относиться к правильному и эффективному поведению кода, его возможности повторного использования и переносимости или простоте модификации. [29] Обычно более рентабельно заложить качество в продукт с самого начала, чем пытаться добавить его позже в процессе разработки. [30] Код более высокого качества снизит затраты в течение всего срока службы как для поставщиков, так и для клиентов, поскольку он более надежен и его легче поддерживать . [31] [32]

Ремонтопригодность — это качество программного обеспечения, позволяющее легко модифицировать его, не нарушая существующие функциональные возможности. [33] Соблюдение соглашений по кодированию, таких как использование понятных имен функций и переменных, соответствующих их назначению, упрощает обслуживание. [34] Использование операторов условного цикла только в том случае, если код может выполняться более одного раза, а также исключение кода, который никогда не будет выполняться, также может повысить понятность. [35] Многие организации, занимающиеся разработкой программного обеспечения, пренебрегают удобством сопровождения на этапе разработки, даже несмотря на то, что это приведет к увеличению долгосрочных затрат. [32] Технический долг возникает, когда программисты, часто из-за лени или необходимости уложиться в сроки, выбирают быстрые и грязные решения вместо того, чтобы встроить в свой код удобство сопровождения. [36] Распространенной причиной является недооценка усилий по разработке программного обеспечения , что приводит к недостаточности ресурсов, выделяемых на разработку. [37] Проблема с удобством сопровождения заключается в том, что многие курсы по разработке программного обеспечения не уделяют этому особого внимания. [38] Инженеры-разработчики, которые знают, что они не будут нести ответственность за поддержку программного обеспечения, не имеют стимула повышать удобство сопровождения. [18]

Авторские права и лицензирование [ править ]

Ситуация варьируется во всем мире, но в Соединенных Штатах до 1974 года программное обеспечение и его исходный код не охранялись авторским правом и, следовательно, всегда являлись общественным достоянием . [39] В 1974 году Комиссия США по новым технологическим использованию произведений, защищенных авторским правом (CONTU), решила, что «компьютерные программы, в той степени, в которой они воплощают оригинальное творение автора, являются надлежащим объектом авторского права». [40] [41]

Несвободное программное обеспечение редко распространяется в виде исходного кода. [42] Хотя термин « программное обеспечение с открытым исходным кодом» буквально означает публичный доступ к исходному коду , [43] К программному обеспечению с открытым исходным кодом предъявляются дополнительные требования: свободное распространение, разрешение на изменение исходного кода и выпуск производных работ под одной и той же лицензией, а также отсутствие дискриминации между различными видами использования, включая коммерческое использование. [44] [45] Бесплатное повторное использование программного обеспечения с открытым исходным кодом может ускорить разработку. [46]

См. также [ править ]

Ссылки [ править ]

  1. ^ Керниган, Брайан В. «Программирование на C: Учебное пособие» (PDF) . Bell Laboratories, Мюррей-Хилл, Нью-Джерси. Архивировано из оригинала (PDF) 23 февраля 2015 года.
  2. ^ Габбриелли и Мартини 2023 , с. 519.
  3. ^ Габбриелли и Мартини, 2023 , стр. 520–521.
  4. ^ Габбриелли и Мартини 2023 , с. 522.
  5. ^ Габбриелли и Мартини 2023 , с. 521.
  6. ^ Перейти обратно: а б Трейси 2021 , с. 1.
  7. ^ Перейти обратно: а б Трейси 2021 , с. 121.
  8. ^ Лин и др. 2001 , стр. 238–239.
  9. ^ Катьял 2019 , с. 1194.
  10. ^ Перейти обратно: а б Трейси, 2021 г. , стр. 122–123.
  11. ^ О'Риган 2022 , стр. 230–231, 233, 377.
  12. ^ Фостер 2014 , стр. 249, 274, 280, 305.
  13. ^ Перейти обратно: а б с Спинеллис, Д.: Чтение кода: взгляд на открытый исходный код . Аддисон-Уэсли Профессионал, 2003. ISBN   0-201-79940-5
  14. ^ « Искусство и компьютерное программирование » ONLamp.com. Архивировано 20 февраля 2018 г. в Wayback Machine (2005).
  15. ^ Качмарек и др. 2018 , стр. 68.
  16. ^ Катьял 2019 , стр. 1186–1187.
  17. ^ Перейти обратно: а б Катьял 2019 , с. 1195.
  18. ^ Перейти обратно: а б с Оффатт, Джефф (январь 2018 г.). «Обзор сопровождения и развития программного обеспечения» . Университета Джорджа Мейсона Факультет компьютерных наук . Проверено 5 мая 2024 г.
  19. ^ Трипатия и Найк 2014 , с. 296.
  20. ^ Трипатия и Найк 2014 , с. 297.
  21. ^ Трипати и Найк 2014 , стр. 318–319.
  22. ^ Перейти обратно: а б О'Риган 2022 , с. 375.
  23. ^ Трипатия и Найк 2014 , с. 94.
  24. ^ Перейти обратно: а б Дули 2017 , с. 272.
  25. ^ О'Риган, 2022 , стр. 18, 21.
  26. ^ О'Риган 2022 , с. 133.
  27. ^ Качмарек и др. 2018 , стр. 348–349.
  28. ^ Sebesta 2012 , p. 28.
  29. ^ Галин 2018 , с. 26.
  30. ^ О'Риган, 2022 , стр. 68, 117.
  31. ^ О'Риган 2022 , стр. 3, 268.
  32. ^ Перейти обратно: а б Варга 2018 , с. 12.
  33. ^ Варга 2018 , с. 5.
  34. ^ Трипати и Найк 2014 , стр. 296–297.
  35. ^ Трипатия и Найк 2014 , с. 309.
  36. ^ Варга 2018 , стр. 6–7.
  37. ^ Варга 2018 , с. 7.
  38. ^ Варга 2018 , стр. 7–8.
  39. ^ Лю, Джозеф П.; Доган, Стейси Л. (2005). «Закон об авторском праве и специфика предмета: случай компьютерного программного обеспечения» . Ежегодный обзор американского права Нью-Йоркского университета . 61 (2). Архивировано из оригинала 25 июня 2021 года.
  40. ^ Apple Computer, Inc. против Franklin Computer Corporation возвращает байт под защиту авторских прав для компьютерных программ. Архивировано 7 мая 2017 года в Wayback Machine в Обзоре права Университета Голден Гейт, том 14, выпуск 2, статья 3, Ян Л. Нуссбаум (январь). 1984)
  41. ^ Лемли, Менелл, Мерджес и Самуэльсон. Программное обеспечение и интернет-право , с. 34.
  42. ^ Бойл 2003 , с. 45.
  43. ^ Морин и др. 2012 , Открытый исходный код против закрытого исходного кода.
  44. ^ Сен и др. 2008 , с. 209.
  45. ^ Морин и др. 2012 г. , Лицензирование свободного и открытого программного обеспечения (FOSS).
  46. ^ О'Риган 2022 , с. 106.

Источники [ править ]

Внешние ссылки [ править ]

Arc.Ask3.Ru: конец оригинального документа.
Arc.Ask3.Ru
Номер скриншота №: 537D0B85329A59946B9588B8D4D2A8BB__1717196040
URL1:https://en.wikipedia.org/wiki/Source_code
Заголовок, (Title) документа по адресу, URL1:
Source code - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть, любые претензии не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, денежную единицу можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)