Терминология - это исходный код программы? [закрыто]

10

Я новичок в программировании и плохо разбираюсь в терминологии. Я хотел бы знать, если исходный код, написанный на скомпилированном языке, таком как C или C ++, считается программой? Если нет, может кто-нибудь объяснить, почему?

Отман
источник
1
Да, исходный код считается программой. Программы можно отличить по типу кода, который они содержат, например, «исходный код», «объектный код», «машинный код» и «исполняемый код».
Роберт Харви
6
Этот вопрос мне кажется почти таким же: «Говядина - это корова?» будет, в значительной степени по тем же причинам.
RM
1
Мука и сахар - это торт?
Брайан Окли

Ответы:

16

Смотрите запись в Википедии для Программы : (Я добавил жирный шрифт )

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

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

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

Дэн Пичельман
источник
1
Спасибо за ваш ответ. Если я правильно понимаю, исходный код - это программа, потому что он определяет набор инструкций, которые выполняют задачу, когда они выполняются компьютером. Но даже если эти инструкции не выполняются ЦП в конце, ЦП выполняет инструкции, которые являются переводами инструкций, определенных на языке высокого уровня?
Отман
7

Я хотел бы знать, если исходный код, написанный на скомпилированном языке, таком как C или CPP, считается программой?

Да, это так.

НО

Опасность такого подхода заключается в том, что «компьютер выполняет мою программу, я пишу свою программу на [например] C, следовательно, исходный код является инструкцией для компьютера».

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

Дэвид Арно
источник
1

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

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

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

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

tl; dr: Иногда то, что есть, и то, что оно представляет, считается одним и тем же, но в других случаях это не так.

как зовут
источник
0

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

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

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

Эта полнота иногда означает наличие main, которое используется операционной системой в качестве точки входа для программы

Вообще говоря, когда программа запущена, это называется процессом.

Эрик Эйдт
источник
1
Пожалуйста, не упоминайте «интеллектуальную собственность», так как этот термин намеренно вводит людей в заблуждение.
whatsisname
0

Исходный код является предпочтительной формой программного обеспечения , на котором человек являются разработчики программного обеспечения рабочими . Понимание того, что разработка программного обеспечения - это социальный процесс, поэтому исходный код - это социальное понятие. Вы пишете исходный код в основном для людей (ваших коллег-разработчиков или даже сами работаете в течение нескольких месяцев над одной и той же программой), а не для компьютеров. Для программы, написанной на C, это часто (но не всегда) .cфайлы C и .hзаголовочные файлы, но Makefile также является исходным кодом. Но иногда используются методы метапрограммирования : какая-то программа генерирует код на C, а затем вводитк этому генератору относится исходный код (даже если на выходе этого генератора находится C-код). Два примера: вы можете использовать генератор парсера (например, GNU bison ) для разбора проблем, тогда входным .yфайлом этого генератора является исходный код. Или вы можете написать крошечный скрипт на awk или gawk, чтобы извлечь из некоторой базы данных sqlite некоторые данные, которые будут преобразованы, например, в большое enum объявление в некотором сгенерированном заголовке; тогда эта база данных будет содержать исходный код!

Компьютерная программа , в отличие связано с компьютером запуска. Обычно его получают путем компиляции некоторого исходного кода (написанного на некотором языке программирования , и это спецификации, написанные на английском языке в технических документах - см. Черновик n1570 для C11 -, а не программные инструменты!) В двоичный исполняемый файл .

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

Василий Старынкевич
источник