Terminologie - Ist Quellcode ein Programm? [geschlossen]

10

Ich bin ein Anfänger in der Programmierung und habe kein gutes Verständnis für die Terminologie. Ich möchte wissen, ob Quellcode, der in einer kompilierten Sprache wie C oder C ++ geschrieben wurde, als Programm betrachtet wird. Wenn nicht, kann jemand erklären, warum?

Othman
quelle
1
Ja, der Quellcode wird als Programm betrachtet. Programme können durch die Art des Codes unterschieden werden, den sie enthalten, wie in "Quellcode", "Objektcode", "Maschinencode" und "ausführbarem Code".
Robert Harvey
6
Diese Frage kommt mir genauso vor: "Ist Rindfleisch eine Kuh?" würde aus so ziemlich allen gleichen Gründen.
RM
1
Ist Mehl und Zucker ein Kuchen?
Bryan Oakley

Antworten:

16

Siehe den Wikipedia-Eintrag für Programm : (Ich habe die Fettschrift hinzugefügt )

Ein Computerprogramm ist eine Sammlung von Anweisungen, die eine bestimmte Aufgabe ausführen, wenn sie von einem Computer ausgeführt werden. Ein Computer benötigt Programme, um zu funktionieren, und führt normalerweise die Programmanweisungen in einer Zentraleinheit aus.

Ein Computerprogramm wird normalerweise von einem Computerprogrammierer in einer Programmiersprache geschrieben. Aus dem Programm in seiner für Menschen lesbaren Form des Quellcodes kann ein Compiler Maschinencode ableiten - eine Form, die aus Anweisungen besteht, die der Computer direkt ausführen kann

Das "Programm" ist also der Befehlssatz, den der Computer ausführt, und der "Quellcode" ist die für Menschen lesbare Version dieser Anweisungen.

Dan Pichelman
quelle
1
Vielen Dank für Ihre Antwort. Wenn ich das richtig verstehe, ist der Quellcode ein Programm, da er eine Reihe von Anweisungen definiert, die eine Aufgabe ausführen, wenn sie von einem Computer ausgeführt werden. Aber selbst wenn diese Anweisungen nicht diejenigen sind, die am Ende von der CPU ausgeführt werden, führt die CPU Anweisungen aus, die die Übersetzungen der in einer Hochsprache definierten Anweisungen sind?
Othman
7

Ich möchte wissen, ob Quellcode, der in einer kompilierten Sprache wie C oder CPP geschrieben wurde, als Programm betrachtet wird.

Ja ist es.

ABER

Die Gefahr bei dieser Denkweise besteht darin, dass "der Computer mein Programm ausführt, ich mein Programm in [z. B.] C schreibe, also dass der Quellcode Anweisungen an den Computer sind".

Und das haben zu viele von uns im 20. Jahrhundert zu viele Jahrzehnte lang gedacht. Was wir in den letzten zehn Jahren gelernt haben, ist, dass andere Programmierer das Hauptpublikum des Quellcodes sind . Also ja, diese Quelle ist das Programm, genauso wie Sie ein Programm im Theater bekommen würden, das anderen Leuten erzählt, was passiert. Das Schöne am Quellcode ist, dass es nicht nur das Programm ist, sondern auch eine Reihe von Anweisungen für den Computer ...

David Arno
quelle
1

Ob es ist oder nicht, hängt vom Kontext ab. Denken Sie so darüber nach. Ich vergesse, wie der formale Name für das Konzept lautet, aber es gibt eine Sprachtheorie, die besagt, dass Wörter eine Bedeutung haben, die nicht beschreibt, was etwas ist, sondern was es nicht ist . Ein roter Apfel ist nicht rot, weil er rot ist, sondern weil er nicht blau, nicht grün usw. ist. Ignorieren Sie, ob das stimmt oder nicht, sondern nehmen Sie für eine Sekunde an und denken Sie in diesem Zusammenhang über die Frage nach.

Wenn wir also an dieses Konzept denken, können wir unseren Quellcode mit einer Blaupause eines Hauses vergleichen. Wenn Sie sich die Blaupause aus einem Stapel anderer Blaupausen ansehen und fragen, ob dies ein Haus ist, und die anderen Blaupausen für gewerbliche Gebäude, Brücken usw. gelten, lautet die Antwort Ja. Weil die Blaupause nicht all das andere Zeug darstellt und der Hausaspekt sie von den anderen Blaupausen unterscheidet.

Offensichtlich ist eine Blaupause eines Hauses jedoch nicht dasselbe wie ein tatsächliches Haus aus Holz und Trockenbau, in dem Sie stehen können. Es gibt Kontexte, in denen der Unterschied zwischen der Blaupause und dem tatsächlichen Haus von Bedeutung ist. Es gibt einen Unterschied zwischen dem Plan und dem Ergebnis.

So wie der Quellcode eines Programms in einer kompilierten Sprache dem Entwurf ähnelt, wenn Sie ihn mit Bibliotheken, Kernelmodulen usw. vergleichen, sind der Quellcode und das Programm konzeptionell ein und dasselbe. Wenn Sie sich jedoch ansehen, wie Software kompiliert, entworfen und bereitgestellt wird, sind die beiden nicht identisch. Auch hier gibt es einen Unterschied zwischen dem Plan und dem Ergebnis.

tl; dr: Manchmal wird das, was etwas ist und was es darstellt, als dasselbe angesehen, aber manchmal nicht.

Whatsisname
quelle
0

Quellcode ist ein allgemeiner Begriff für ursprüngliche Codezeilen (von Menschen verfasst). Andere Arten von Code, die keine Quelle sind, können durch Übersetzung oder durch ein anderes Programm erstellt werden.

Das geistige Eigentum ist noch umfassender und kann sowohl Quellcode als auch anderen Code oder Daten enthalten.

Ein Programm unterscheidet sich in seiner Vollständigkeit von anderem Code (Quelle oder anderem). Ein Programm ist ein Code, der so vollständig ist, dass er ausgeführt werden kann (oder ausgeführt werden soll). Nicht jeder Code (Quelle oder anderweitig) stellt eine ausreichende Vollständigkeit für die Ausführung dar. Bibliotheken zum Beispiel sollen mit anderem Code kombiniert und von diesem verwendet werden und werden daher im Allgemeinen nicht als Programm betrachtet, da sie nicht ausgeführt werden können (sollen).

Diese Vollständigkeit bedeutet manchmal, ein zu haben main, das von einem Betriebssystem als Einstiegspunkt für das Programm verwendet wird

Wenn ein Programm ausgeführt wird, wird dies im Allgemeinen als Prozess bezeichnet.

Erik Eidt
quelle
1
Bitte erwähnen Sie nicht "geistiges Eigentum", da dies ein Begriff ist, der absichtlich dazu gedacht ist, Menschen zu verwirren.
Whatsisname
0

Der Quellcode ist die bevorzugte Form der Software, an der menschliche Softwareentwickler arbeiten . Die Erkenntnis ist, dass Softwareentwicklung ein sozialer Prozess ist. Quellcode ist also ein sozialer Begriff. Sie schreiben Quellcode hauptsächlich für Menschen (Ihre Kollegen oder sogar Sie selbst, die in wenigen Monaten an demselben Programm arbeiten), nicht für Computer. Bei einem in C codierten Programm handelt es sich häufig (aber nicht immer) um .cC-Dateien und .hHeader-Dateien, aber das Makefile ist auch Quellcode. Manchmal werden jedoch Metaprogrammiertechniken verwendet: Einige Programme generieren C-Code und dann die EingabeDieser Generator wird als Quellcode betrachtet (selbst wenn die Ausgabe dieses Generators C-Code ist). Zwei Beispiele: Sie können einen Parser-Generator (wie GNU Bison ) zum Parsen von Problemen verwenden, dann ist die Eingabedatei .ydieses Generators Quellcode. Oder Sie schreiben ein winziges awk- oder gawk- Skript, um aus einer SQLite- Datenbank einige Daten zu extrahieren, die beispielsweise in eine große enum Deklaration in einem generierten Header umgewandelt werden. dann würde diese Datenbank Quellcode enthalten!

Ein Computerprogramm ist im Gegensatz zu computerbezogenen es läuft. Es wird in der Regel erhalten Kompilieren einige Quellcode (geschrieben in irgendeiner Programmiersprache , und diese sind Spezifikationen in englischer Sprache geschrieben in technischen Unterlagen -siehe n1570 Entwurf für C11 in ein binäres -, keine Software - Tools) ausführbar .

Lesen Sie auch über freie Software . Tauchen Sie ein in den Quellcode bestehender freier Softwareprojekte ( einige finden Sie unter github oder sourceforge ).

Basile Starynkevitch
quelle