Я новичок в программировании и плохо разбираюсь в терминологии. Я хотел бы знать, если исходный код, написанный на скомпилированном языке, таком как C или C ++, считается программой? Если нет, может кто-нибудь объяснить, почему?
Я новичок в программировании и плохо разбираюсь в терминологии. Я хотел бы знать, если исходный код, написанный на скомпилированном языке, таком как C или C ++, считается программой? Если нет, может кто-нибудь объяснить, почему?
Ответы:
Смотрите запись в Википедии для Программы : (Я добавил жирный шрифт )
Компьютерная программа - это набор инструкций, которые выполняют определенную задачу при выполнении компьютером. Компьютер требует программ для работы и обычно выполняет инструкции программы в центральном процессоре.
Компьютерная программа обычно пишется программистом на языке программирования. Из программы в понятной человеку форме исходного кода компилятор может получить машинный код - форму, состоящую из инструкций, которые компьютер может выполнять непосредственно
Итак, «программа» - это набор инструкций, которые выполняет компьютер, а «исходный код» - это читаемая человеком версия этих инструкций.
Я хотел бы знать, если исходный код, написанный на скомпилированном языке, таком как C или CPP, считается программой?
Да, это так.
НО
Опасность такого подхода заключается в том, что «компьютер выполняет мою программу, я пишу свою программу на [например] C, следовательно, исходный код является инструкцией для компьютера».
И это то, что слишком многие из нас думали слишком много десятилетий в 20-м веке. Что мы узнали за последнее десятилетие или около того, так это то, что другие программисты являются основной аудиторией исходного кода . Так что да, этот источник - программа, точно так же, как вы получили бы программу в театре, которая рассказывает другим людям, что происходит. Прелесть исходного кода в том, что он не только программа, но и набор инструкций для компьютера ...
Является ли это или нет, зависит от контекста. Подумайте об этом таким образом. Я забыл, как называется формальное понятие, но есть теория языка, которая говорит, что слова имеют значение, которое описывает не то, что есть, а то, чем оно не является . Красное яблоко не красное, потому что оно, ну, в общем, красное, а потому, что оно не голубое, не зеленое и т. Д. Не обращайте внимания на то, правда это или нет, но просто на секунду подумайте и подумайте над вопросом в этом контексте.
Поэтому, когда мы думаем об этой концепции, мы можем сравнить наш исходный код с планом дома. Если вы смотрите на проект из стопки других чертежей и спрашиваете «это дом», а другие чертежи предназначены для коммерческих зданий, мостов и т. Д., Ответ будет положительным. Потому что проект представляет не все эти другие вещи, а домашний аспект - это то, что отличает его от других проектов.
Тем не менее, очевидно, что план дома - это не то же самое, что реальный дом из дерева и гипсокартона, в котором вы можете стоять. Существуют ситуации, когда различие между планом и реальным домом имеет смысл. Есть разница между планом и результатом.
Точно так же, как исходный код программы на скомпилированном языке похож на план, если вы сравниваете его с библиотеками, модулями ядра и т. Д., То исходный код и программа концептуально совпадают. Но если вы посмотрите на то, как программное обеспечение компилируется, проектируется и разворачивается, то это не одно и то же. Просто опять есть разница между планом и результатом.
tl; dr: Иногда то, что есть, и то, что оно представляет, считается одним и тем же, но в других случаях это не так.
Исходный код - это общий термин для оригинальных строк кода (созданный людьми). Другие виды кода, которые не являются исходными, могут быть созданы переводом или другой программой.
Интеллектуальная собственность еще шире и может включать как исходный код, так и другой код или данные.
Программа отличается от другого кода (исходного или другого) по своей полноте. Программа - это достаточно полный код, чтобы ее можно было запустить (или она предназначена для запуска). Не весь код (исходный или иной) представляет достаточную полноту для запуска. Библиотеки, например, предназначены для объединения и использования другим кодом, и поэтому обычно не считаются программами, поскольку они не могут (не предназначены) быть запущенными.
Эта полнота иногда означает наличие main
, которое используется операционной системой в качестве точки входа для программы
Вообще говоря, когда программа запущена, это называется процессом.
Исходный код является предпочтительной формой программного обеспечения , на котором человек являются разработчики программного обеспечения рабочими . Понимание того, что разработка программного обеспечения - это социальный процесс, поэтому исходный код - это социальное понятие. Вы пишете исходный код в основном для людей (ваших коллег-разработчиков или даже сами работаете в течение нескольких месяцев над одной и той же программой), а не для компьютеров. Для программы, написанной на C, это часто (но не всегда) .c
файлы C и .h
заголовочные файлы, но Makefile также является исходным кодом. Но иногда используются методы метапрограммирования : какая-то программа генерирует код на C, а затем вводитк этому генератору относится исходный код (даже если на выходе этого генератора находится C-код). Два примера: вы можете использовать генератор парсера (например, GNU bison ) для разбора проблем, тогда входным .y
файлом этого генератора является исходный код. Или вы можете написать крошечный скрипт на awk или gawk, чтобы извлечь из некоторой базы данных sqlite некоторые данные, которые будут преобразованы, например, в большое enum
объявление в некотором сгенерированном заголовке; тогда эта база данных будет содержать исходный код!
Компьютерная программа , в отличие связано с компьютером запуска. Обычно его получают путем компиляции некоторого исходного кода (написанного на некотором языке программирования , и это спецификации, написанные на английском языке в технических документах - см. Черновик n1570 для C11 -, а не программные инструменты!) В двоичный исполняемый файл .
Читайте также о свободном программном обеспечении . Погрузитесь в исходный код существующих проектов свободного программного обеспечения (см. Github или sourceforge, чтобы найти некоторые).