Diskussion:Programmcode

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen

Diese Diskussionsseite dient dazu, Verbesserungen am Artikel „Programmcode“ zu besprechen.

Persönliche Betrachtungen zum Thema gehören nicht hierher. Für allgemeine Wissensfragen gibt es die Auskunft.

Füge neue Diskussionsthemen unten an:

Klicke auf Abschnitt hinzufügen, um ein neues Diskussionsthema zu beginnen, und unterschreibe deinen Beitrag bitte mit Signatur und Zeitstempel oder --~~~~.

Hinweise

Erweiterung[Quelltext bearbeiten]

Nach diversen Diskussionen (zuletzt Löschdiskussion für 'Übersetzer (Programmierung)') wurde jene Seite gelöscht - was i.W. mit einer unpassenden Lemmabezeichnung begründet wurde. Ich habe den dortigen Inhalt in meinem BNR überarbeitet und beabsichtige, ihn HIER im Artikel einzustellen, d.h. diesen zu erweitern. Von der Zielsetzung her gibt er einen Überblick über "Werkzeuge," die i.Z. mit Programmcode zum Einsatz kommen können - immer mit Links auf die Hauptartikel. Möglicherweise gibt es weitere Tools, die man dort noch ergänzen könnte/sollte.

Ursprünglich war dieser Inhalt entstanden, weil Benutzer nach Beispielen gefragt hatten - und Werkzeuge wie Compiler etc. durch heutzutage sehr heterogene Entwicklungsumgebungen sehr unterschiedlich zum Einsatz kommen.

Vor der Übernahme bitte ich um Hinweise zu diesen Texten, zum Teil waren sie schon im LD-Lemma aktualisiert worden.--VÖRBY (Diskussion) 16:30, 26. Jul. 2013 (CEST)

Kein weiteres Feedback - außer 1 Disk-Beitrag in meinem BNR. Texte aus meinem BNR ergänzend übernommen. Ggf. Ergänzungen zweckmäßig/möglich (zB bei Beispielen). --VÖRBY (Diskussion) 12:46, 2. Aug. 2013 (CEST)

Mal wieder: Textlöschungen[Quelltext bearbeiten]

Zu den von Ox mehrfach gelöschten Textabschnitten [6] und [7]:

  1. Hinweis auf Synonyme
  2. unterschiedliche Bedeutungen des Ausdrucks 'Code' (PgmCode, Quellcode, Maschinencode ...)
  3. Programmcode aus deklarativer/grafischer Entwicklung ist eine andere Art von Programmcode / Quelltext

Die mehrfach gelöschten Aussagen sind RICHTIG und können an vielen Stellen so oder sinngemäß gefunden werden. Obwohl das bei derartig 'etabliertem Wissen' (siehe Belegpflicht nicht nötig ist, kann ich Belege gerne noch nachtragen.
Sie sind auch WICHTIG, weil sie zum Verständnis des Begriffs 'Programmcode' beitragen, insbesondere bei Laien.
Diese Aspekte zu erwähnen ist auch deshalb SINNVOLL, weil sich in diesem Lemma entwicklungsbedingt sehr viele unterschiedliche Varianten herausgebildet haben, die hier durch entsprechende Hinweise erläutert werden.

Um einem Ausufern dieser Diskussion vorzubeugen (Erfahrung), bitte ich auf diesem Weg vor Allem um Dritte Meinungen - möglichst auch von anderen Autoren als dem Ox-Compagnion.
--VÖRBY (Diskussion) 10:01, 7. Aug. 2013 (CEST)
+Links auf gelöschte Abschnitte: ---VÖRBY (Diskussion) 12:03, 7. Aug. 2013 (CEST)

Disk zu 1. Synonyme[Quelltext bearbeiten]

Dass es in diesem Lemma zahlreiche Synonme gibt, ist Tatsache. Solche werden z.B. in der Grafik gezeigt.
Fazit: Hinweise MÜSSEN erhalten bleiben. --VÖRBY (Diskussion) 13:42, 7. Aug. 2013 (CEST)

Disk zu 2. Unterschiedliche Bedeutungen von 'PgmCode' ...[Quelltext bearbeiten]

Der Ausdruck 'Programmcode' und auch seine einzelnen Ausprägungen werden in zwei unterschiedlichen Bedeutungen verwendet. Beispiel: Der Primärcode für Pgm A und für Pgm B sind zwei verschiedene Entitäten von 'Quellprogrammen' (Quellcodes). Dagegen steht, dass der Code dieser beiden Programme in derselben Sprache (Syntax ..) geschrieben sein kann; das ist dann nur eine Entität von Code i.S. von Typ/Syntax.

Dieser Konflikt (die unterschiedliche Bedeutung/Benennung) wurde auch schon hier diskutiert und festgestellt, dass "der codierte Text (oder was auch immer) nicht der Code" ist.

Auch in der Literatur wird der Ausdruck 'Code' "quer Beet" mit unterschiedlichen Bedeutungen verwendet. Beispiele:

  • ...arbeitet dabei den Quellcode zeilenweise ab und übersetzt die aktuelle Zeile in Maschinensprache.
hier 'Quellcode' i.S. von Textmenge, Quelltext, Quellprogramm; 'Maschinensprache' i.S. von Code.
  • Die Menge der Maschinenbefehle eines Programms bildet den Maschinencode und das Programmstück nennt man 'Maschinencode'.
Hier 'Maschinencode' i.S. von Maschinenprogramm, Textmenge
  • Maschinenprogramm = Lauffähiges Programm im Binärcode
hier 'Binärcode' als Sprach-/Format-/Syntaxbegriff
  • Da Maschinenprogramme im Maschinencode geschrieben sind, wird auch für sie häufig die Bezeichnung Maschinencode ... verwendet."
Hier wird klar zum Auseruck gebracht, dass 'Maschinencode' sowohl für den Code als auch für die Textmenge verwendet wird.

Fazit: Auf diese Unterschiedlichkeit MUSS hingewiesen werden, im Interesse der Klarheit und zur Vermeidung von Missverständnissen bei den Lesern. Statt Text zu entfernen könnte/sollte man das evtl. noch stärker hervorheben. --VÖRBY (Diskussion) 13:42, 7. Aug. 2013 (CEST)

Disk zu 3. Programmcode deklarativ[Quelltext bearbeiten]

Der 'Code' von so entwickelten 'Programmen' ... unterscheidet sich grundsätzlich von textuellem Quellcode (lt. Artikel "für Menschen lesbarer ... geschriebener Text"), nicht nur weil er in anderen Sprachen verfasst ist. Trotzdem wird er u.a. auch 'Programmcode' genannt. Dies soll der Leser hier finden - um die Nebenaussage aus dem Artikel "Jede Software (urspr. 'Programmcode') wird letztlich als Maschinenbefehl (-Code) ausgeführt" (und umgekehrt) auch für diese Art von Software einordnen zu können.
Fazit: Der Hinweis ist wichtig, evtl. kann der Text gekürzt werden. --VÖRBY (Diskussion) 13:42, 7. Aug. 2013 (CEST)

Hallo! Nein, es besteht keinerlei grundsätzlicher, konzeptioneller Unterschied zwischen Programmcode, den man sich großteils zusammenklickt, oder nur in geringerem Maße zusammenklickt, solchem, den man mit einem modernen Texteditor schreibt, oder solchem, denn man mit einem zeilenbasierten Editor schreibt. Das was ein Editor anzeigt sind quasi nie direkt die Bytes, die in irgendeiner Datei stehen, sondern wird irgendwie auf besondere Weise dargestellt. Irgendwelche Formate sind hier auch vollkommen egal. Zudem ist das Konzept visueller Programmierung vollkommen orthogonal zu proprietären Dateiformaten – auch die bei visueller Programmierung verwendeten Formate müssen nicht proprietär sein, ebenso wie bei nicht-visueller diese es sein können – und vollkommen orthogonal zum Konzept der deklarativen Programmierung. Hier werden Dinge zusammengeworfen, die nichts miteinander und schon gar nichts mit einer allgemeinen Erläuterung von Programmcode zu tun haben. Schöne Grüße --Chricho ¹ ² ³ 20:42, 7. Aug. 2013 (CEST) PS: Im von mir soeben entfernten Abschnitt wurden diese Verwechslungen wiederum aufgegriffen und fortgeführt: „Die zur Ausführung durch den Prozessor erforderlichen Maschinenbefehle werden dabei nicht durch eine Konvertierung sprachlich formulierter Anweisungen erzeugt, sondern die Festlegungen des Programmierers werden von der ausführenden Software nur als ‚Daten‘ verarbeitet.“ – ist mehr oder minder das Konzept eines Interpreters, das hier auch noch reingewürfelt wird, hat mit visueller oder deklarativer Programmierung jeweils nichts zu tun. Die anschließende Aufführung etwa von IDEs und Tabellenkalkulation suggeriert, dass man unter der Verwendung solcher Werkzeuge stets visuelle Programmierung verstehen würde.
Die Diskussion hier lässt mich nun auch zu einem etwas anderen Schluss kommen - der aber nicht zur Löschung der entsprechenden Texte führen sollte, sondern nur zu anderen Formulierungen:
  • In der Einleitung: Die für 'deklarativ ...' angführten Besonderheiten ('andere Art') sollte man so beschreiben, dass "sich die verschiedenen Varianten von Programmcode abhängig von der verwendeten Entwicklungstechnologie in zahlreichen Details erheblich voneinander unterscheiden". Deklarative Anweisungen wären da nur ein Beispiel; weiteres wäre: Programmierer kennt das Codeformat (oder nicht), Codevarianten sind klar voneinander abgegrenzt und werden gezielt von P'er erzeugt (oder nicht) usw.
  • Den Teilabschnitt 'Ausführung durch Parameter interpretierende Tools' nur als Variante von 'Interpreter' zu sehen, halte ich für nicht ganz passend. Denn bisher ist für Interpreter immer nur gesagt, sie übersetzen 'Befehle'. Da hier etwas ganz anderes geschieht, denke ich, diese Variante von Werkzeug und 'Programmcode-Verarbeitung' muss/soll hier der Vollständigkeit halber beschrieben werden. Denn was diese verarbeiten, ist ja schließelich auch 'Software'! Wie würdest Du diese Kategorie von Werkzeugen bezeichnen? 'Deklarativ/visuell ...' trifft ja wohl für die Art der Codeformulierung zu, ist aber als Bezeichnung für diese Tools nicht präzise genug.
Zu beiden Teilen möchte ich noch nochmal eine Überarbeitung vornehmen und bitte dann nochmal um 'Prüfung'; schließlich sollte unsere Disk hier zu besseren Artikeln führen.--VÖRBY (Diskussion) 09:03, 8. Aug. 2013 (CEST); Ergänzungen: --VÖRBY (Diskussion) 10:27, 8. Aug. 2013 (CEST)
Hm, man spricht doch durchaus auch bei deklarativen Programmiersprachen von Interpretern, z. B. von Prolog-Interpretern? --Chricho ¹ ² ³ 11:31, 8. Aug. 2013 (CEST)
Ja, im erweiterten Sinn ist das ja auch 'Interpretation'; vielleicht trifft dieser Ausdruck diese Art von Verarbeitung sogar besser als die 'normalen Interpreter' - die eigentlich Befehlsübersetzer sind. Jedenfalls sind das zwei total unterschiedliche Verfahren, was im Artikel auch dargestellt werden sollte. Lass mich deshalb nochmal meine Argumentationskette aufbauen:
  • Wenn diese Art von Anwendungen (siehe Texte) als Software (= 'Programme') gelten, dann ist 'das Programmierte' wohl der 'Programmcode' - egal wie er aussieht. So ist das auch belegt.
  • Dann sollte man das hier auch inkludieren. Was ich versuchen möchte neu zu texten - wie o.g.
  • Ist dies nicht der Fall oder will man diese Art von Anwendungen dem Begriff 'Programmcode' nicht zuordnen (das hieße, Programmcode gibt es nur im klassischen Sinn), dann sollte man das zumindest abgrenzend aufzeigen.
Wenn man dem zustimmen kann, würde ich die Texte nochmal entsprechend umgestalten. 'Interpreter' würde z.B. Datenbankanwendungen, Rep-Generatoren etc. nicht korrekt beschreiben, da sollte es einen anderen Ausdruck geben. --VÖRBY (Diskussion) 18:39, 8. Aug. 2013 (CEST)
Ich machs kurz, hat ja erfahrungsgemäß keinen Sinn:
  • Interpreter sind keine Befehlsübersetzer, sondern "Befehlsausführer". Eine Übersetzung findet bei reinen Interpretern nicht statt. In manchen Fällen wird zwar auch von Interpretern gesprochen, wenn vor der Ausführung eine Übersetzung (z.B. in Bytecode) stattfindet, jedoch ist diese Sprechweise lediglich umgangssprachlich und streng genommen falsch. Es ist außerdem darauf zu achten, dass zunächst nicht definiert ist, was ein "Befehl" überhaupt ist (diese Definition kommt erst durch den Interpreter), hierüber dürfen also keine Annahmen gemacht werden.
  • "Software" ist NICHT gleich "Programm". Sollen wir jetzt jemanden engagieren, der eine Erstsemester-Grundlagenvorlesung hält, oder können wir anfangen, was für die WP zu tun?
  • "Programmcode im klassischen Sinn"? Ich kenne klassische Teilchen, klassische Zeit, klassische Musik und was weiß ich sonst noch. Aber klassischer Programmcode ist mir noch nicht untergekommen.
  • Dass der Begriff "Interpreter" Datenbankanwendungen nicht korrekt beschreibt, ist nicht verwunderlich, das eine hat mit dem anderen nichts zu tun.
Überlass das Umgestalten doch bitte denjenigen, die was vom Thema und den involvierten Begriffen verstehen. Offenbar herrscht bei dir völlige Verwirrung bzgl. der Begriffe "deklarative Programmiersprache", "IDE", "visuelle Programmierung", "UI-Designer". ʘχ (Diskussion) 08:23, 9. Aug. 2013 (CEST)

Leider gleitest du wiedere in überhebliche, schulmeisterliche und beleidigende Darstellungen ab.

  • Mit den zuletzt von mir vorgebrachten Argumenten willst du dich einfach nicht befassen: Ist nun eine (z.B.) in Access erstellte Anwendung (z.B. für das Projektmanagement, die Depotverwaltung oder für eine Schulbibliothek) ein 'Programm' oder nicht? Und heißt das, was dort entwickelt wurde, 'Programmcode' oder nicht? Weiter siehe bei <18:39, 8. Aug. 2013>. Da gäbe es klare Antworten ohne Polemik.
  • Deine Spitzfindigkeiten zu 'klassisch' und 'Befehl' und 'Software' führen hier auch nicht weiter: Du weißt genau was gemeint ist - zumal hier in der Disk; im Artikel könnte man sowas ja 'präzisieren' - wenn man guten Willens ist.
  • Wo soll denn "das eine mit dem anderen nichts zu tun haben"? Das Arbeitsprinzip z.B. eines Bytecode-Interpreters ist ein total anderes als das eines Reportgenerators (...), ja. In beiden Fällen führt aber ein Rechner Maschinenbefehle aus - die auf der Strecke vom Quellcode bis dahin durch irgendwelche Werkzeuge 'laufen'. Diese sollen hier kurz (aber eben vollständig) beschrieben werden. Und dazu gehört der hier [8] gelöschte Textabschnitt.

Die schon früheren Diskussionen hierzu hatten nur dieses eine zum Ziel: Die Unterschiedlichkeit des Prozesses 'Vom Programmierer zur Ausführung' möglichst vollständig zu zeigen. Dass du das anscheinend nicht willst (es wurde so schon x-mal zum Ausdruck gebracht), sei deine Sache. Interessanter fände ich andere Meinungen.--VÖRBY (Diskussion) 09:29, 9. Aug. 2013 (CEST)

Neuentwürfe zu 3. (jetzt ~'Generatoren')[Quelltext bearbeiten]

ENTWURF: Neuer Einleitungstext statt 'Deklarativ = andere Art von Programmcode':

Abhängig von der verwendeten Entwicklungsumgebung weisen die Varianten von Programmcode erhebliche Unterschiede auf, die in erster Linie die verwendete Sprache betreffen. Weitere Unterschiede können zum Beispiel sein, ob sie aus imperativen Befehlstexten oder deklarativen Anweisungen bestehen, ob sie von den Werkzeugen automatisch erzeugt/verwaltet oder vom Entwickler gezielt hergestellt werden, ob sie typbezogen als getrennte Datenobjekte (als Dateien oder in Programmbibliotheken) oder in einem gemeinsamen Datenbestand verwaltet werden, ob sie überhaupt auftreten (z. B. bei Zwischencode) oder wie sie bezeichnet werden (etwa „Pseudocode“ oder „Bytecode“). Zusammenfassend lässt sich feststellen: Die Entwicklung auf dem Gebiet der Programmiersprachen und Programmierparadigmen führte zu vielen unterschiedlichen Formen von Programmcode – die in der Praxis weitgehend parallel angewendet werden.

--VÖRBY (Diskussion) 09:42, 9. Aug. 2013 (CEST)

Leider gleitest du wiedere in überhebliche, schulmeisterliche und beleidigende Darstellungen ab.
In diesem Fall hier ist die Sachlage so klar, dass ich mir eine so deutliche Ansprache leisten kann und muss. Ich lehne mich weiß Gott nicht zu weit aus dem Fenster. Letztlich ist es die Wahrheit, die dich beleidigt, weil du sie nicht wahrhaben willst: Du hast keine Ahnung von diesen Dingen. So einfach ist das. Deine Edits und Äußerungen zeigen immer wieder, dass du alles mögliche durcheinander wirfst und auch von den Grundlagen noch nichts gehört hast. Dasselbe gilt übrigens für mich in anderen Gebieten, beispielsweise Chemie oder Physik. Ich wäre niemals beleidigt, wenn ein Physiker mir sagen würde, ich hätte keine Ahnung davon und solle doch bitte die Finger davon lassen. Ich hab keine Ahnung davon und mache deswegen in dem Bereich auch nichts. Bei dir ist das leider anders: keine Ahnung, nichts verstanden, lernresistent, Endlosdebatten anzettelnd, die nur darauf sind, deine falschen Ansichten durchzuprügeln. Andere Meinungen werden von dir nicht offen abgelehnt, sondern solange debattiert, bis niemand mehr Lust hat und das Weite sucht. Man sollte wissen, was man kann, aber auch, was man NICHT kann. Aussagen über deine informatische Qualifikation sind keine Beleidigungen, sofern sie angemessen formuliert sind. Bei dir helfen nur sehr deutliche Worte, das ist mittlerweile bekannt. ʘχ (Diskussion) 15:20, 9. Aug. 2013 (CEST)
Wovon soll ich keine Ahnung haben? Es geht um das Lemma 'Programmcode'. Den gibt es lt. Artikel in den drei beschriebenen Formen, im Details unterscheiden sie sich aber erheblich - was bisher kaum zum Ausdruck kommt. Jeglicher Programmcode dient dazu, letztlich ausgeführt zu werden (und umgekehrt). Egal wie er entwickelt wurde. Einen Überblick darüber zu vermitteln, welche Kategorie Werkzeug auf diesem Weg (von Programmierer zum Maschinenbefehl) zum Einsatz kommen kann, ist das Ziel meiner Texte hier. Sonst nichts. Das wurde aber schon x-mal geschrieben.
Mit Wahrheit und Grundlagen und Detailwissen hat das alles nichts zu tun, das ist nur der Versuch, diesen Überblick zu geben. Das willst du aber nicht begreifen oder akzeptieren, warum auch immer. Mit meinen konkreten Fragen beschäftigst du dich überhaupt nicht, die beleidigen wahrscheinlich dein überragendes Fachwissen und Selbstbewusstsein. Manchmal braucht man aber eine etwas breitere Sicht der Dinge, Details verstellen oft die Sicht auf das Ganze. Und Arroganz auch.--VÖRBY (Diskussion) 17:38, 9. Aug. 2013 (CEST)
Mit IDEs hat das wenig bis nichts zu tun. Die umständliche Formulierung „Sprache ‥, in der sie codiert sind“ ist meines Erachtens nur verwirrend, man kann einfach „in der sie geschrieben sind“ schreiben oder dergleichen. Beim Rest weiß ich nicht, wie es hilft, den Begriff des Programmcodes zu beschreiben. Es gibt dieses und jenes in allen möglichen Richtungen – man könnte genauso gut auch noch funktionale Programmierung, variierende Codequalität, verschiedene Texteditoren, verschiedene Formate von Dateisystemen aufzählen. Hat alles was damit zu tun, wie der Programcode aussieht, oder wie mit ihm umgegangen wird, ist aber nicht wirklich erhellend. --Chricho ¹ ² ³ 15:29, 9. Aug. 2013 (CEST)
Kurze Statements:
  • IDE: Nochmal: Jede, auch mit IDE entwickelte Software hat 'Programmcode' - der irgendwie zur Ausführung kommt. Was soll also dann die Aussage 'hat damit nichts zu tun'? Im Textentwurf kommt IDE auch nicht vor.
  • "weiß ich nicht, wie es hilft": Die bisherige Einleitung suggeriert, dass es einfach diese drei genannten Varianten von Programmcode gibt. Dass es dabei aber erhebliche Unterschiede gibt, kommt nirgends zum Ausdruck. Das halte ich aber für bedeutend.
  • "Codiert sind" schließt auch die Zwischen- und Maschinencodes ein, und meint nicht nur die "Sprache, in der sie geschrieben sind". Klar kann man immer irgendwie anders formulieren, aber präzise soll es schon sein. Weitere wichtige Unterschiede kann man gerne ergänzen, wobei sich Details auch aus den Hauptartikeln ergeben sollten.
--VÖRBY (Diskussion) 17:38, 9. Aug. 2013 (CEST)

ENTWURF: Neuer Text für den gelöschten Abschnitt "Deklarativ programmieren und ausführen"

(=== Formular- und Reportgeneratoren etc. ===) (gäbe es eine besser passende Überschrift?)
Bei der Entwicklung von Programmen mit Werkzeugen wie Formular- oder Reportgeneratoren oder Endbenutzerdatenbanken, die oft als Integrierte Entwicklungsumgebungen (IDE) oder Grafische Programmiersprachen verfügbar sind, werden Angaben zum Inhalt des Programms (die gelegentlich auch als Programmcode bezeichnet werden) mit diesen Werkzeugen erzeugt, verwaltet und meist auch ausgeführt. Bei der Ausführung ist das eigentliche ‚Programm‘ – als Beispiel – ein Reportgenerator, der die Angaben des Programmierers über Berichtsfelder mit ihren Formaten, über Gruppenwechsel und die Sortierfolge des Berichts, die SQL-Kommandos etc. (die als Programmcode/Quellcode für jeden einzelnen Report festgelegt sind) verarbeitet, und der so die spezifizierten Ergebnisse (den Bericht) erzeugt; im Gegensatz zur Ausführung eines kompilierten und/oder interpretierten Programmcodes. Unabhängig hiervon können solche Werkzeuge zum Teil zusätzlich interne Compiler oder/und Interpreter oder Codegeneratoren verwenden.

Dies ist eine eigene Kategorie von 'Werkzeugen zur Verarbeitung von Programmcode': Diese Art der Verarbeitung ist funktional etwas ganz anderes als das Umwandeln von Quell- oder Zwischencode durch einen Interpreter. --VÖRBY (Diskussion) 13:11, 10. Aug. 2013 (CEST)

Text geändert: Das konkrete Beispiel 'RepGenerator' bringt deutlicher als bisher zum Ausdruck, dass bei dieser Art von Werkzeug zwei unterschiedliche 'Programme' beteiligt sind: Der Generator selbst und das vom Programmierer erstellte "Programm" (d.h. die Angaben dazu, die jedoch ebenfalls als 'Programmcode' gelten). Ein derartiges Ineinandergreifen von Programmfunktionalität findet ja eigentlich fast immer statt - zB wenn ein Maschinenbefehl Systemfunktionen aufruft. Aber das wäre wohl zuviel an Detail.--VÖRBY (Diskussion) 09:30, 11. Aug. 2013 (CEST)

Ich habe die beiden Abschnitte in ihrer neuen und vorher hier ohne weiteres Feedback vorgestellten Form im Artikel eingestellt. Zu Synonymen siehe Kommentartext in der Einleitung. --VÖRBY (Diskussion) 17:22, 14. Aug. 2013 (CEST)

Den Abschnitt über Generatoren etc. habe ich nochmal gelöscht. Die dortigen Aussagen halte ich zwar für richtig, doch scheinen derartige 'Anweisungen' nur in seltenen Fällen mit 'Programmcode, Quellcode' etc. bezeichnet zu werden. Eine andere Bezeichnung für diese Anweisungen (die ja auch Code sind) konnte ich leider noch nicht finden. Ggf. sollte man deshalb diese Art von 'Angaben' in der Einleitung erwähnen, sie aber als "i.e.S. nicht zum Begriff 'Programmcode' gehörend" abgrenzen.
Allerdings trifft diese Art von Code-Ausführung (kein Compiler, kein Befehlsinterpreter!) aber zB auch auf SQL-Kommandos zu - die (im Gegensatz dazu) als 'Programmcode' (deklarativ) gelten. Diese 'Art von Werkzeugen', die derartigen Code ausführen, sollten deshalb eigentlich in die Aufzählung genannt werden.
Chricho und Ox: Ich vermute, das waren auch Eure Bedenken. Wäre dieses Abgrenzen (hatte ich schon mal nachgefragt) und das Ergänzen um 'Laufzeitkomponenten' ein Kompromiss? --VÖRBY (Diskussion) 18:15, 15. Aug. 2013 (CEST)
aktualisiert: --VÖRBY (Diskussion) 08:41, 16. Aug. 2013 (CEST)

Ich habe zum Aspekt 'Programmcode i.Z. mit Generatoren' einen Abschnitt in der Einleitung eingestellt - wonach diese Art von Code nicht als Programmcode gilt. Das würde also dann den o.g. Aussagen "hat nichts miteinander zu tun" entsprechen. Wenn jemand gegenteilige Belege fände, sollte diese Abgrenzung wieder entfernt werden - und diese ~Generatoren bei den Werkzeugen wieder ergänzt werden. --VÖRBY (Diskussion) 14:19, 17. Aug. 2013 (CEST)

Übersichtsartikel? BKS?[Quelltext bearbeiten]

Uff, was für ein Artikel. Wie ich sehe, ist das aus dem inzwischen gelöschten Artikel "Übersetzer (Programmierung)" von Benutzer:VÖRBY hierher verfrachtet worden.
Das ist ja alles gut und schön, aber mir erscheint das wie ein Übersichtsartikel zu allem was so mit (Programm-)Übersetzung/Kompilierung zu tun hat. Allerdings haben wir zu jedem aufgeführten (und verlinkten) Thema bereits recht gute eigenständige Artikel.
Macht sowas hier dann wirklich Sinn? Oder würde es nicht auch die BKS tun, so wie sie hier vorher [9] war?--Plankton314 (Diskussion) 13:29, 4. Feb. 2015 (CET)

Hm. Sollte der Artikel (in jetzt-ähnlicher Form) bleiben sollen, muss sofort ein Bausteil "Redundanz" zu Programmierung sowie Computerprogramm rein.
Soweit ich das beim Überfliegen verstehe, ist das eher ein "genereller Begriffsklärungs-allumfassend-Wurf" als eine Beschreibung "Was versteht man unter 'Programmcode'?". Und so beschreibt es Vörby ja auch (siehe oben, Abschnitt "Erweiterung"). In der Schule hieß das früher "Thema verfehlt, 5, setzen." In diesem Artikel wird alles mögliche behandelt - aber "Was versteht man unter 'Programmcode'?" ist nur ein (kleinerer) Teil davon.
Auch ist der Begriff "Programmcode" schon ziemlich scheußlich; da muss ich erst mal ernsthaft drüber nachdenken, was es denn sonst noch für Code (im Rahmen der Programmierung) gibt, der kein Programm beschreibt? (à la "weißer Schimmel"...) Selbst "allgemein" fällt mir eigentlich nur noch "Zugangs-/Verschlüsselungs-Code" ein; der meiste "Rest" fällt wohl unter "Datenformat".
In meinem Umfeld spricht eigentlich nie jemand von "Programmcode", weil das einfach zu unspezifisch ist. Wenn, dann ist die Rede von "Sourcecode", "Bytecode", "Quellcode", "Maschinencode" ~ aber "Programmcode"? Sagt das tatsächlich jemand? Um es wovon abzugrenzen?
Fazit: ca. 75% des Artikels gehört gelöscht. Tut mir zwar sehr Leid für Vörby, aber eine "Übersicht über Programmierung, Werkzeuge und Ausführungsumgebung, mit Beispielen" gehört in eine Abhandlung oder ein Buch; in einer Enzyklopädie kann sich das allenfalls ergeben, wenn man mehrerer Artikel liest und in Kombination dann versteht.
--arilou (Diskussion) 14:27, 4. Feb. 2015 (CET)
Beim weiteren Nachdenken finde ich Plankton314s Vorschlag "zurück zur BKS" besser und besser. Was/wie man mit Quellcode umgeht, was mit Byte-/Zwischencode geschieht, was es mit Maschinencode auf sich hat - ist in den Detailartikeln doch schon ziemlich gut beschrieben. Was genau soll denn hier noch groß ausgeführt werden?
--arilou (Diskussion) 14:35, 4. Feb. 2015 (CET)
Ich habe es mal gewagt, und auch wenn es sehr schade um die viele geleistete Arbeit ist, halte ich eine BKS ebenfalls für ausreichend. --Domi (Diskussion) 20:15, 8. Feb. 2015 (CET)
Ich denke nicht dass das Lemma als BKS taugt. Derzeit besagt die Seite ja, dass Programmcode die Gesamtheit ist, die man in die Arten Quelltext, Zwischencode und Bytecode unterteilt.
Wenn dem so ist (dass Programmcode für alle drei steht und nicht nur ein Synonym für Quelltext, Zwischencode, Maschinencode und Bytecode ist), dann ist BKS nicht das Richtige.
Es gibt ca. 50 Seiten, die auf Programmcode verlinken - einige davon vielleicht auf den Begriff als Gesamtheit von Quelltext, Zwischencode, Bytecode, Maschinencode. Dann geht auch keine BKS
Aus meiner Sicht sollte also a) geklärt werden, ob man mit Programmcode wirklich die Gesamtheit meint und b) (wenn ja) daraus einen Rumpfartikel machen, der die Dinge enthält, die für Programmcode (also für Quelltext, Zwischencode, Maschinencode _und_ Bytecode) enthält. --Sebastian.Dietrich 21:20, 8. Feb. 2015 (CET)
In deinem Diskussionsbeitrag ist der Unterschied zwischen Programmcode als Synonym oder als Sammelbegriff irgendwie nicht erkennbar. Es gibt den Programmcode, der in die Arten Quellcode, Zwischencode und Maschinencode unterschieden wird, weil alle drei Formen ein Computerprogramm darstellen. Da der Programmcode nur in einer der genannten Formen existieren muss, um von Computern oder anderen Computerprogrammen verstanden zu werden, ist es für die Funktion auch unerheblich, ob einem Nutzer alle vier Formen des gleichen Programms vorliegen. Im Falle von VM-Plattformen und Skripten wäre dies auch kaum möglich. --Domi (Diskussion) 21:55, 8. Feb. 2015 (CET)
Dann bist du also der Meinung, dass es "den Programmcode gibt, der in die Arten Quellcode, Zwischencode und Maschinencode unterschieden wird". Somit ist BKS falsch und es ist zwingend ein Sammelartikel zu schreiben, der die Gemeinsamkeiten der 3 Varianten enthält (was du ja auch neben den Redundanzen gelöscht hast). Machst du jetzt deine Löschungen wieder rückgängig, oder soll ichs machen? --Sebastian.Dietrich 09:05, 9. Feb. 2015 (CET)
Meine Meinung hat bei dir offenbar zu einer falschen Schlussfolgerung geführt. Ich finde es merkwürdig, dass die Durchführung eines QS-Vorschlags jetzt auf einmal meine Löschungen geworden sind. Der Sammelartikel würde sich nur mit den drei Einzelartikeln thematisch überschneiden - das ist in der Wikipedia nicht erwünscht. --Domi (Diskussion) 00:51, 11. Feb. 2015 (CET)
Naja "ich hab ja nur gemacht, was andere vorgeschlagen haben" ist vielleicht eine Ausrede, aber keine Begründung für eine Löschung, wenn die Diskussion noch andauert. 4 Tage mit 2 Diskussionsteilnehmern ist in der WP einfach zu kurz um sagen zu können, die Diskussion wäre ausreichend geführt worden & es wäre ein eindeutiges Ergebnis bzw. sowas wie ein "Auftrag" entstanden. --Sebastian.Dietrich 20:20, 12. Feb. 2015 (CET)
Ich persönlich hätte aber gerne einen Beleg, dass mit Programmcode nicht nur Sourcecode gemeint ist. Ich denke auch, dass damit alle 3 gemeint sind, aber sicher bi ich nicht (und der Duden sagt z.B. was anderes [10]). --Sebastian.Dietrich 09:14, 9. Feb. 2015 (CET)
Ich habe auch meine Zweifel. Unter Programmcode wird bei Nicht-Informatikern meistens der Quellcode verstanden. Informatiker wie wir wissen jedoch, dass nur die dritte Form, der Maschinencode, für Computer letztendlich verständlich ist. Trotzdem kann man Programme auch in Maschinencode schreiben - in so einem Projekt wäre Maschinencode zum Programmcode geworden. Ich halte die präsentierte Unterteilung für enzyklopädisch vollständig. Ach, was weiß denn ich. Ich habe nur den Vorschlag der QS durchgeführt. --Domi (Diskussion) 00:51, 11. Feb. 2015 (CET)
Danke, dass dann doch noch ein paar Beiträge dazu kamen.
Ich sehe es ebenso wie auch treffend in arilous Fazit dargestellt, werde morgen aber mal über die Links hierher drüberschauen und sehen welche Bedeutung dort gemeint ist. Vllt. findet hier ja jemand noch etwas dazu, am besten in irgendeinem Standardwerk.--Plankton314 (Diskussion) 22:36, 8. Feb. 2015 (CET)

So, ich habe jetzt mal stichprobenartig bei Google-Books nachgeschaut und folgendes vorgefunden: Der Ausdruck "Programmcode" wird meistens für Quelltext verwendet, aber auch immer wieder für Maschinencode, dagegen für Zwischencode eher weniger bzw. überhaupt nicht.
Der vorherige Artikel [11] bietet mMn. hier leider keinen Mehrwert ggü. den bereits bestehenden und verlinkten Artikeln. Insbesondere stiftet die Einleitung bei mir mehr Verwirrung über den Begriff, als sie erklärt.
Ich werde daher die wieder entstandene BKS sichten. Falls noch Zweifel über die Verlinkung von Zwischen- und Maschinencode existieren, können das gerne hier weiter besprechen.--Plankton314 (Diskussion) 14:42, 12. Feb. 2015 (CET)

Ich denke wir sind uns einig, dass Programmcode als Synonym für Sourcecode, Maschinencode und vermutlich auch Zwischencode/Bytecode etc. verwendet wird.
Wir sind uns auch einig, dass der vorige Artikel zumindest ab dem Abschnitt "Werkzeuge zur Programmcode-Verarbeitung (Überblick)" redundant zu den verlinkten Artikeln war & besser (nicht zwingend) dort stehen sollte.
Folgende Punkte möchte ich aber zur Diskussion stellen:
  • Ist Programmcode _nur_ ein Synonym für Sourcecode, Maschinencode und vermutlich auch Zwischencode/Bytecode etc., oder ist Programmcode _zusätzlich_ ein eigenständiger Begriff, der die Gesamtheit einer Software beschreibt (Sourcecode _und_ Maschinencode)? Der Artikel davor und auch der Einleitungssatz sagen zweiteres aus. Wenn dem so ist, dann ist BKL nicht das richtige, da BKL nur für Synonyme geeignet ist.
Ich persönlich halte Programmcode für einen Überbegriff, der _auch_ als Synonym für Sourcecode, Maschinencode etc. verwendet wird -> eigenständiger Artikel und keine BKS.
  • Ist der gelöschte Abschnitt _vor_ "Werkzeuge zur Programmcode-Verarbeitung (Überblick)" wirklich so schlecht, dass er nicht verbessert werden könnte? Insbesondere das gelöschte Bild halte ich für sinnvoll.
Ich persönlich halte den Abschnitt für verbesserungswürdig und ausbaufähig. Insbesondere "Unterschiedliche Bedeutungen und Synonyme" und "Abgrenzung", sowie Nennung von "Pseudocode" halte ich für enzyklopädisch wertvoll und hier am richtigen Platz -> Revert der Löschung dieses Abschnittes und Verbesserung/Stutzung etc.
  • Ist der Rest _ab_ "Werkzeuge zur Programmcode-Verarbeitung (Überblick)" wirklich so schlecht, dass er nicht in die Hauptartikel eingebaut werden könnte?
Ich persönlich halte den Rest (zumindest den Abschnitt zu den Werkzeugen) für teilweise gut & einbaufähig in die Hauptartikel bzw. in Compiler, Assembler etc. --> Rettung was zu retten ist und Einbau/Umformulierung wo es besser hinpasst (fallst dort nicht schon vorhanden)
--Sebastian.Dietrich 20:20, 12. Feb. 2015 (CET)
Sofern dich meine Meinung interessiert, möchte ich wie folgt darauf antworten, ohne den Anspruch zu haben, dass das für den Artikel oder die Allgemeinheit Gültigkeit haben muss.
  • Programmcode ist aus meiner Sicht jede Form der Instruktion, die ein Computer für sich übersetzen und ausführen kann - entweder direkt oder mittels eines anderen Programms. Programmcode ist allerdings nur solcher Code, für den es bereits Übersetzungsprogramme gibt. Instruktionen, die ein Computer wegen universell nirgendwo verfügbarer Übersetzungsmöglichkeiten nicht versteht, sind aus meiner Sicht kein Programmcode. Darunter fällt leider auch Pseudocode, der nicht an eine geschlossene Syntax (und auch nicht an Terminiertheit) gebunden ist - die Möglichkeit zur Terminiertheit ist für mich das wesentlichste an einer Programmiersprache überhaupt, neben einer geschlossenen Syntax. Mir ist keine Form von Programmcode bekannt, deren Syntax ein Mensch nicht erlernen könnte, sodass ein Mensch theoretisch in jeder vorliegenden Form eines Programms den Programmcode verändern kann, selbst wenn er keinen Zugang zum Originalcode hat. Wenn man es jedoch ganz streng und genau betrachtet, ist Programmcode ausschließlich der Code, den der Verfasser eines Programms auch sieht und programmiert. (Quellcode.)
  • Es ist mir nicht leichtgefallen, all die Arbeitszeit durch einen Stub zu ersetzen. Aber viel mehr Formulierungsbedarf, außer bei einem deutlichen Hinweis auf das gängige Falschverständnis, es wäre allein Quellcode ein Programmcode, sehe ich ohne Überschneidung mit den Artikeln über Programmieren oder Softwareentwicklung nicht. Vielleicht möchte man die Darstellungen und Texte in die passenden Artikel hinüberretten, wie du es auch vorgeschlagen hast, damit die Mühe nicht umsonst war. --Domi (Diskussion) 22:13, 12. Feb. 2015 (CET)


Ich möchte Benutzer:Sebastian.Dietrich (teilweise) widersprechen.
Im hiesigen Artikel sollten keine Abschnitte wiederhergestellt werden, die nicht zum hiesigen Lemma passen, "weil sie in anderen Artikeln evtl. sinnvoll eingearbeitet werden könnten".
Sofern dieser Wunsch/Absicht besteht, kann der Durchführende die Abschnitte aus einer älteren Version hiesiger Seite entnehmen. Ein Versions-konformes Übernehmen in einen anderen Artikel geht sowieso nur mit Admin-Hilfe, setzt also sowieso fortgeschrittene WP-Autorenkenntnisse voraus; da stellt dieses Zusatzproblem kein unüberwindbares Hindernis dar.
Was aber auf jeden Fall vermieden werden sollte, ist eine "General-Abhandlung" über alle möglichen Programmierthemen in diesem Artikel - und auch in Bildern.
Das "Übersichtsbild" aus gekilltem Artikel finde ich unübersichtlich und überfrachtet - bzgl. des Aspekts zu erklären "Was versteht man unter 'Programmcode'?"
Soweit ich das sehe, haben wir einige (gute) Belege, in denen "Programmcode" synonym zu "Quellcode" verwendet wird.
Benutzer:Plankton314 kennt wohl (vernünftige) Belege, in denen "Programmcode" für "Maschinenprogramm/code" verwendet wird.
Ich habe bisher (auch in meiner Google-Books-Suche) noch keinen gesehen, in dem "Programmcode" „übergreifend für die Gesamtheit einer Software“ verwendet wäre. Wenn es daran hängt, ob eine BKS ausreicht oder ein Artikel sein muss, sollten wir imo wenigstens eine solche Verwendung in einer halbwegs vernünftigen Quelle dafür haben.
--arilou (Diskussion) 11:34, 13. Feb. 2015 (CET)
Leider nein, arilou, ich habe keine solide Recherche durchgeführt, sondern habe mich nur jeweils eine Viertelstunde durch Google-Web und Google-Books durchgeklickt und geschaut, in welchem Kontext das Wort "Programmcode" auftaucht.
Ich denke, dass es sich hier (wieder einmal) um einen fachlich nicht eindeutig besetzen Ausdruck handelt, den jeder Autor so verwendet, wie er ihn gerade braucht. Es scheint oft "Quelltext" damit gemeint zu sein, aber nicht ausschließlich.--Plankton314 (Diskussion) 11:39, 13. Feb. 2015 (CET)
Ich bin nicht für eine Widerherstellung von Dingen, die nicht in den Artikel passen - die Schöpfungshöhe dieser Dinge ist denke ich nicht groß genug, um ein Widerherstellen und Verschieben samt Historie der Autoren notwendig machen würde.
2 Abschnitte allerdings passen sehr gut zum Artikel - ich habe sie daher wieder hergestellt.
Falls wir bei der BKS bleiben, dann müssten sie natürlich wieder raus. Ebenso aber auch der Einleitungssatz "Als Programmcode bezeichnet man die Menge der Anweisungen eines Computerprogramms. In folgenden Arten von Programmcode wird unterschieden:"
Denke auch, dass es nicht leicht sein wird zu belegen, dass mit Programmcode alle 3 Arten gleichzeitig & zusammengenommen gemeint sein könnten. Hier aber ein Beispiel, dass belegt, dass mit Programmcode sowohl Sourcecode, als auch Bytecode als auch Maschinensprache gemeint ist: [12]. --Sebastian.Dietrich 12:50, 13. Feb. 2015 (CET)
Ich fand den wiederhergestellten Abschnitt unverständlich und habe ihn deshalb umgeschrieben. Da der sehr kurze Abschnitt "Synonyme" gleichbedeutend mit dem Einleitungssatz war, habe ich den wesentlichen Teil von Syntax und formale Sprache als Code noch ergänzt und ansonsten den Absatz wieder entfernt. Hier muss aber noch jemand drüberlesen, weil ich keine Quellen über die Ergänzungssprachen gefunden habe, als die mein AS-Dozent solche wie HTML oder SQL bezeichnete. --Domi (Diskussion) 21:45, 13. Feb. 2015 (CET)
Sorry, aber eure beiden Versionen geben mMn. nicht mehr her, als eine BKS.
Ich glaube nicht, dass es eine Meta-Bedeutungsebene gibt, sprich dass "Programmcode" mehr ist als ein Synonym für Quell- bzw. Maschinencode. Darum ist eine Erläuterung und Abgrenzung (wie derzeit im Artikel) hier mMn. nicht angebracht, sondern sollte (wenn überhaupt) in einem der Zielartikel erfolgen.
Überhaupt sollte eine Abgrenzung erst stattfinden, wenn dargestellt ist (am besten belegt) was der Begriff "Programmcode" überhaupt darstellt (d.h. inwiefern er über ein bloßes Synonym hinausgeht).--Plankton314 (Diskussion) 11:02, 14. Feb. 2015 (CET)
Da bin ich anderer Ansicht. Gerade weil Quellcode landläufig als Programmcode bezeichnet wird, und Laien zwischen Ergänzungssprachen und Programmiersprachen nicht unterscheiden, halte ich eine Abgrenzung in der Form für wichtig und im Artikel über Programmcode auch durchaus am rechten Platz. Denn für den Laien werden Computer auch durch SQL oder HTML instruiert. Darzustellen, dass es nicht das gleiche ist, finde ich deshalb wichtig. Wir könnten noch auf den Hauptartikel Programmiersprache verlinken. --Domi (Diskussion) 13:23, 14. Feb. 2015 (CET)
Es gibt nur zwei Möglichkeiten:
  1. Man definiert "Programmcode" als eigenständigen Begriff, den man dann versuchen kann abzugrenzen.
  2. Es ist ein mehrdeutiger Ausdruck für Quell-/Maschinencode, dann ist hier eine BKS angebracht.
Die derzeitige Form ist irgendwas zwischen BKS und Artikel und daher nicht zulässig. Es erschließt sich mir auch nicht, warum man Programmcode gegen Markup-Sprachen abgrenzen müsste. Da ist keine thematische Überlappung und wir müssen nicht jeder möglichen Verwechslung vorausgreifen.--Plankton314 (Diskussion) 14:22, 14. Feb. 2015 (CET)

Fehlendes[Quelltext bearbeiten]

Das war mal wieder eine typische Wikipedia-Orgie: Da machten einige "Spezialisten" wieder "tabula-rasa". Viele der gelöschten Textteile beschrieben den 'Begriff' ganzheitlich, während die Einzelartikel nur die jeweilige Ausprägung beschreiben; es lag also nur bedingt Redundanz vor - zumal auf 'Hauptartikel' verwiesen war. Wo zB sind die Aussagen der gelöschten Texte/Grafiken jetzt enthalten? S.a. die Fragen von Sebastian Dietrich.

Meine Meinung: Im aktuellen Zustand ist das Lemma unvollständig und nur oberflächlich beschrieben. Vor Allem Laien finden so Wesentliches zu diesem Begriff nicht mehr. Was ich im Artikel vermisse:

  • Dass damit nicht 'Code' im Sinn von Sprache/Syntax gemeint ist, sondern i.S. von 'Programmstück'.
  • Dass der Ausdruck 'Programmcode' meist nur dann verwendet wird, wenn derartige Codeteile im Allgemeinen, also nicht als spezielle Variante davon gemeint sind. Sie auch WP-Links. Oder direkt als Synonym für eine dieser Unterarten.
  • Die Beschreibung als Synonym für Quelltext ist höchstens eine umgangssprachliche Gewohnheit, keinesfalls korrekt.
  • Dass die Untervarianten i.d.R. identische Funktionen/Funktionsteile 'beschreiben', die in unterschiedlichen Stufen des Entwicklungsprozesses - mit unterschiedlichen Werkzeugen - hergestellt werden. Siehe auch die gelöschte Grafik.
  • Dass das Format und die Syntax von Programmcode-Komponenten je nach der verwendeten Entwicklungsumgebung hochgradig unterschiedlich sind.
  • Dass damit nicht nur ganze Programme, sondern auch beliebige Teile davon gemeint sein können.
  • Dass dies nicht nur 'Befehle' sein müssen, sondern zum Beispiel auch Datendeklarationen ("Copybook") oder andere Varianten von 'Anweisungen'.

Die Abhandlung, dass 'Programmcode' den Definitionen von 'Turingmaschine' entsprechen muss, halte ich für unpassend und für nicht bewiesen; bitte Belege dafür einstellen. Im Gegenteil: Warum soll zB SQL-Code kein 'Programmcode' sein? Er ist in einer bestimmten Syntax gehalten und legt fest, was bei der Ausführung eines "Programms" (i.w.S.) zu tun ist. Ob dabei ein Compiler, Interpreter oder sonst was benutzt wird, ist vollkommen nebensächlich, "wesentlich" ist nur, dass der Code automatisch verarbeitet werden kann. Gleiches gilt m.E. für Anweisungen, die mit grafischen Sprachen formuliert sind. Zu Letzterem gilt möglicherweise, dass derartige Konstrukte meist nicht als 'Programmcode' BEZEICHNET werden, nach der Einleitungsdefinition SIND sie aber Programmcode. Auch diesbezüglich wäre die Beschreibung zu ergänzen. --VÖRBY (Diskussion) 13:24, 3. Mär. 2015 (CET) Ergänzt: --VÖRBY (Diskussion) 11:23, 4. Mär. 2015 (CET)

Die o,.g. Stichworte beziehen sich IMMER auf mehr als eine Untervariante von Programmcode. Wer sich über PC informieren möchte, sollte insofern auf derartige Infos stoßen. Da die bisherige Diskussion i.W. darauf abstellte, dass derartige Aussagen bei den Unterartikeln zu finden seien oder dort besser hinpassten, will ich zwei Anmerkungen machen:

  • Gehören sie wirklich in nur einen dieser Unterartikel? Nur dann gehören sie nicht in PC behandelt.
  • Wo finden sich solche Aussagen in den vorhandenen Unterartikeln?

Fazit: 'Programmcode' ist ein übergreifender Begriff, der den Aspekt umfassend beschreibt, dass Software im Entwicklungsprozess in unterschiedlichen Varianten auftritt und sich dabei vieles unterscheiden kann.--VÖRBY (Diskussion) 19:33, 9. Mär. 2015 (CET)

Erg.[Quelltext bearbeiten]

Hi. Mir ist egal, was hier an dem Unfug herumgedoktert wird. Zum gegenwärtigen Zustand: Die momentane "Abgrenzung" ist TF-Quark (Turingmächtigkeit ist kein Kriterium für Programmiersprachen oder Programmcode, siehe Coq, Agda, Idris für Beispiele, wo echte Informatiker Dinge als Programmiersprachen bezeichnen) und "wobei der Code in der Syntax einer formalen Sprache besteht." bedeutet nichts. "X besteht in Y" macht schon grammatikalisch keinen mir bekannten Sinn. --217.186.153.139 00:55, 5. Mär. 2015 (CET)

Habe den Revert von Sebastian Dietrich nicht richtig interpretiert. Nun steht im "Abgrenzung"s-Abschnitt ja wieder 'was anderes. Zwar auch grottenschlecht, aber meine obige etwas konkretere Kritik ist nicht anwendbar. --Daniel5Ko (Diskussion) 01:15, 5. Mär. 2015 (CET)
(Kurze Klarstellung zwecks Zweifelbeseitgung: die 217.* war ich offenbar auch.) --Daniel5Ko (Diskussion) 01:34, 5. Mär. 2015 (CET)
@Revert - da gings mal nur darum die Löschung wieder rückgängig zu machen, da einige der Punkte von VÖRBY damit "gelöst" wurden. Damit sind noch immer viele Fragen offen und der Artikel ist immer noch grottenschlecht. --Sebastian.Dietrich 10:17, 5. Mär. 2015 (CET)

(BK) Sorry, ich möchte hier niemandem auf die Füße treten, aber das ist umseitig nicht tragbar bis peinlich:

  1. Der Abschnitt "Unterschiedliche Bedeutungen" ist mit enzyklo.de belegt, was nur ein automatischer Aggregator von anderen Enzyklopädien und ähnlichen Tertiärquellen (inklusive uns selber) ist --> keine zulässige Q.
  2. In "Abgrenzung" zu schreiben wofür man keine Belege gefunden hat und wo es eventuell eine vermutete Schnittstelle zum Überbegriff "Code" geben könnte...

Liebe Leute, können wir uns nicht ein bißchen ernsthaft mit der Thematik beschäftigen?
Wenn sich keine vernünftige Sekundärliteratur findet (und das hat es in den vergangenen Wochen offensichtlich nicht), sind diese beiden Abschnitte als TF anzusehen und zu entfernen.--Plankton314 (Diskussion) 10:20, 5. Mär. 2015 (CET)

Zu Daniel5Ko|Diskussion]]) 01:15: Ich weiß nicht, was da 'grottenschlecht' sein soll. Die dort beschriebenen Konstrukte SIND nach der Definition ebenfalls Programmcode, sie werden aber kaum oder nur selten so GENANNT. Nach der dort angegebenen Quelle wird 'Code' wohl - in einem engeren Sinn - nur als textliche Anweisung verstanden; noch so ein Detail, das zum Verständnis von 'Programmcode' nützlich wäre. Passt übrigens alles nicht zu "Programmcode" = BKS.

Zu Syntax: Bedeutet nicht "nichts", sondern ist die Grundlage dafür, dass Programmcode automatisch verarbeitet werden kann; dadurch unterscheidet er sich zB von (textlichen, nur wenig präzisen) Pseudocodebeschreibungen - die man ja sonst auch 'Programmcode' nennen könnte.

Dass PC und Quellcode zT (auch!) synonym benutzt wird, ist ebenfalls unbestritten. Dann sollte man es auch so im Artikel bescchreibeen. --VÖRBY (Diskussion) 10:32, 5. Mär. 2015 (CET)

  • Wie ein Artefakt entsteht, ist herzlich irrelevant für die Eigenschaften des Artefakts. Der Großteil des Abschnitts spricht in wirrer Weise von der Entstehung.
  • " lassen sich keine Belege dafür finden, dass diese Angaben als „Programmcode“ bezeichnet werden" ist TF.
  • Einen Abschnitt "Triffer" findet man in der angegebenen Quelle im Übrigen nicht.
  • Zum Teilsatz "wobei der Code in der Syntax einer formalen Sprache besteht.": hier geht's mir nicht um den Inhalt, da ich gar nicht anfangen kann, die Bedeutung zu entschlüsseln. Man müsste hier die Deutsche Sprache verwenden, wenn man 'was wichtiges erzählen will. Es reicht vermutlich aus, ein anderes Verb zu verwenden. Aber auch dann steht da wahrscheinlich nichts nützliches. Wenn z.B. gemeint ist, dass Code-Fragmente anhand der Syntax einer formalen Sprache analysiert werden können müssen, dann ist das eine Nullaussage, da sich etwa für jeden beliebigen Unicode-String immer eine Syntax für eine Sprache angeben lässt, die den String enthält, und natürlich gibt es auch die formale Sprache, die einfach alle Unicode-Strings enthält. Es kommt auf die Reihenfolge an. Hat man eine Sprache L festgelegt, kann man fragen: "Ist dies oder jenes L-Code?" (mit einer gegebenen Syntax kann man dann auch noch nach einem AST fragen). Die Frage "Ist dies Code?" ist dagegen recht sinnfrei. Zur Verdeutlichung: Das Unix-Kommando cat lässt sich als Interpreter für eine sehr simple Programmiersprache interpretieren. Jede Textdatei stellt dann ein Programm in dieser Programmiersprache dar (in der man ausschließlich Quines programmieren kann).
--Daniel5Ko (Diskussion) 12:08, 5. Mär. 2015 (CET)
Will kurz antworten:
  • Artefakte: Bin anderer Meinung: Relevant für ein Lemma ist alles, was zu seinem Verständnis von Bedeutung ist. Und dazu gehört bei 'Programmcode', wie er entsteht, d.h. dass die unterscchiedlichen Artefakte' aufeinander aufbauen.
  • Belege: Hab den Textteeil abgeändert und einen Beleg eingefügt. Bei derartigen (deklarativen) Programmkonstrukten gibt es in den Quellen hinsichtlich der Frage, ob sie PC SIND, unterschiedliche Aussagen.
  • Triffer: Hat sich erledigt.
  • Syntax: Es geht hier nicht um liguistische Spezialitäten, sondern schlicht darum, dass PC in einer bestimmten Syntax vorliegen muss - damit er, ggf. mehrstufig, automatisch zu einem Programm(-teil) umgeformt werden kann.
--VÖRBY (Diskussion) 15:18, 5. Mär. 2015 (CET)
  • Okay, dann füge doch bitte noch hinzu, wie Reportgeneratoren entstehen etc. etc. Das kann ja nur zum Verständnis beitragen. -.-
  • Die Aussagen sind mit der Belegung immer noch TF. Das lässt sich auch nicht reparieren. Wirrheit ist immer noch da. Warum gerade die Abgrenzung (die m.M.n. ungefähr analog zu einer Abgrenzung von zu ist) erwähnt wird, ist völlig schleierhaft.
  • Triffer hat sich gar nicht erledigt.
  • Die Benutzung verstehbarer deutscher Sätze ist keine linguistische Spezialität. Der jetzt vorhandene Ersatz ist okay.
--Daniel5Ko (Diskussion) 22:56, 5. Mär. 2015 (CET)
Es braucht hier keinen Zynismus: Es geht direkt um 'Programmcode', und dessen Entstehung ist (wäre) für das Verständnis von Bedeutung - nicht aber die Entstehung etwa von Reportgeneratoren. Vgl. Gesetz von Demeter.
In der Abgrenzung soll festgestellt werden, dass Entwurfskonstrukte aus grafischen/deklarativen Entwicklungsumgebungen nicht als 'Programmcode' bezeichnet werden. Da es aber auch hier unterschiedliche Quellen gibt, die den Begriff unterschiedlich interpretieren, ist wahrscheinlich "Abgrenzung" eine unpassende Überschrift. Der Text wurde wieder revertiert.
Triffer war ein Schreibfehler und sollte Trigger lauten. Habs erledigt.
Linguistische Spezialität: Dein Text oben las sich aber so. Wenns jetzt ok ist, ist es gut.--VÖRBY (Diskussion) 10:18, 6. Mär. 2015 (CET)
Die Abgrenzung ist schlecht motiviert. Unabhängig davon bleiben die Behauptungen nicht belegbar, wenn man strenge Maßstäbe ansetzt. Die linguistische Veränderung wurde übrigens wieder herausrevertiert, wozu auch immer. (Vielleicht, weil's mehr als nur linguistisch war; kann man nicht wissen, wenn sich Sebastian Dietrich nicht äußert; wobei sich dann die Frage stellt, warum er mich zur Diskussion eingeladen hat; rigoroses Löschen von Unfug ohne große Diskussion halte ich für effektiver -- wer etwas drin unbedingt im Artikel haben wollte, schreibt es dann halt in hoffentlich besserer Form wieder rein. Fertig. Zuendegeführte Diskussionen gibt es eh nicht.) --Daniel5Ko (Diskussion) 02:23, 7. Mär. 2015 (CET)
Opps - sorry - hab wohl unabsichtlich den Revert Knopf gedrückt und es nichtmal mitbekommen. War nicht meine Absicht
Mein Anliegen ist nur, dass in dem Artikel was steht :-) - dass er keine BKS sein sollte ist denke ich klar, dass er keine Zusammenfassung von Dingen in den Unter-Bezeichnungen sein soll denke ich auch. Löschen, weils X als Unfug sieht, Y aber nicht, damits Y so neu schreibt, damits für X kein Unfug mehr ist, halte ich für nicht zielführend... --Sebastian.Dietrich 09:01, 7. Mär. 2015 (CET)
Tut mir leid, aber warum der Artikel keine BKS sein sollte ist mir bis jetzt immer noch nicht klar.
Es ist bis heute nicht eine einzige reputable Quelle (und damit meine ich ein Standardwerk oder zumindest ein Fachbuch) aufgeführt worden die darstellt, dass Programmcode eine eigenständige Bedeutung hätte.
Ich habe den Abschnitt "Abgrenzung" jetzt entfernt, weil es nicht tragbar ist, aus vereinzelten Verwendung des Ausdrucks in irgendwelchen Uni-Skripten eine Bedeutung des Begriffs abzuleiten.
Darum nochmals die Bitte, hier vernünftige Quellen für den Begriff aufzuführen und nicht bloß aufzeigen, dass der Ausdruck lose und implizit irgendwo verwendet wird.--Plankton314 (Diskussion) 11:45, 7. Mär. 2015 (CET)
Siehe dazu WP:BKS - Programmcode ist - so wie es jetzt im Artikel steht - der Überbegriff für Quelltext, Zwischencode und Maschinencode. Das ist somit eindeutig keine Begriffsklärung die nur Synonyme zulässt. D.h. so wie jetzt der Artikel ist, gehört er ausgebaut, damit es nicht nur ein Stub ist. Die Abgrenzung ist eine valide Ergänzung dazu - egal ob bequellt oder nicht. Der erste Abschnitt ist ja auch nicht bequellt. --Sebastian.Dietrich 12:02, 7. Mär. 2015 (CET)
Ein Überbegriff hat eine Bedeutung, die über einfache Mehrdeutigkeit hinausgeht. D.h. Programmcode wäre mehr, als eine mehrdeutige Bezeichnung für Maschinen-/Quellcode usw. Dafür fehlt aber bis jetzt ein Beleg.--Plankton314 (Diskussion) 12:06, 7. Mär. 2015 (CET)

@VÖRBY: Ich habe mich in dieser Diskussion jetzt mehrfach zu Wort gemeldet und die katastrophale Quellenlage und die damit verbundene TF angesprochen. Sollen wir jetzt ernsthaft eine EW führen, weil du aus der impliziten Verwendung in einem Uni-Skript und einem Programmierbuch eine eigenständige Bedeutung ableiten möchtest??--Plankton314 (Diskussion) 12:04, 7. Mär. 2015 (CET)

Ich hab jetzt mal um Sperre des Artikels gebeten - wir sollten das gemeinsam hier mal diskutieren und auf einen Konsens kommen. --Sebastian.Dietrich 12:08, 7. Mär. 2015 (CET)

So geht das jedenfalls auch nicht: Ich stimme den Aussagen zu "X und Y" von Sebastian Dietrich 09:01h voll zu, deshalb kann ein X oder ein Y nicht einfach seine Meinung durchtexten. Ich hatte deshalb Deine Korrekturen wieder revertiert:

  • Die Aussage zur Syntax und zur automatischen Weiterverarbeitung erscheint dir 'trivial', das sind aber wesentliche Merkmale für Programmcode - sonst wäre jeder funktionsbezogene Text 'Programmcode'.
  • Du bezweifelst, dass Programmcode ein gängiger Ausdruck ist. Dann google den Ausdruck - und du findest 397.000 Ergebnisse. Was willst du noch?
  • Auch die Aussage zu den deklarativen Entwicklungs-Artefakten gehört in den Artikel, weil er sonst genau diese Frage offen lässt. Ich werde noch versuchen, validere Belege zu ergänzen.
  • BKS: Neben der Tatssache, dass 'Programmcode' (u.a.!!!) ein Überbegriff für die genannten Einzelbegriffe ist, gibt es derart viele Eigenschaften/Merkmale (Bsp siehe oben bei #Fehlendes), die auf diesen Sammelbegriff zutreffen (oder für mehrere seiner Teilbegriffe), dass das einfach keine BKS ist - bei der ein Ausdruck auf (begrifflich) unterschiedliche Lemmas verweist (siehe Beispiel 'Schloss').

--VÖRBY (Diskussion) 12:25, 7. Mär. 2015 (CET)

Zu schreiben "ist in der Syntax einer Programmiersprache formuliert" ist einfach umständlich für "ist in einer Programmiersprache formuliert". Und ich sehe nicht, wie man ein Computerprogramm anders als automatisch ausführen könnte.
An keiner Stelle wurde bezweifelt, dass "Programmcode" ein gängiger Ausdruck ist, sondern nur welche Bedeutung er hat.
Die Unterscheidungen, die du im Abschnitt "Fehlendes" aufzählst, kann ich so leider nicht nachvollziehen oder erkennen, inwiefern eine Abgrenzung nötig wäre. Zum Beispiel: Warum ist es nötig, darauf hinzuweisen, dass Programmcode nur ein Teil eines Programms sein kann? Nirgendwo wird entweder auf das eine oder das andere eingeschränkt. Es ist gleichfalls unnötig darauf hinzuweisen, dass ein Glas Wasser nur ein Teil der globalen Wasservorräte sein kann. Oder welche Rolle spielt die Entwicklungsumgebung und die Syntax von Programm-Komponenten für den Begriff Programmcode? Sorry, aber das ist einfach nicht nachvollziehbar.--Plankton314 (Diskussion) 12:55, 7. Mär. 2015 (CET)
"Syntax einer Programmiersprache" ist aus meiner Sicht nicht umständlich, du kannst es aber gerne auch anders formulieren. Aber bitte: Diese Aussage gehört in die Definition. Ohne "... Syntax" könnte man sonst jede schriftliche Form von Anweisungen (Texte sind auch 'Code') meinen (etwa Pseudocode).
Die anderen Aussageen sind ebenso deshalb wichtig, weil sie erklären, was Programmcode ist oder sein kann. Zu 'Teil von Programm': Auch hier könnte ein Leser der Einfachheit halber meinen, der Programmcode würde das (ganze) Programm repräsentieren - was zwar sein kann, aber dem Wesen nach nicht so ist. Ebenso ist es für die OMA nicht klar, dass das Zeug je nach Entwicklungsumgebung total anders aussieht (auch dnders genannt wird); und auch das möchte ICH ihr vemitteln. Warum Du nicht? Weil du WEISST, was Programmcode ist und viele dieser Aussagen kennst und sie deshalb für überflüssig hältst. Die WP ist aber nicht nur für uns da. --VÖRBY (Diskussion) 09:43, 8. Mär. 2015 (CET)
All diese Unterscheidungen stehen bereits in den verlinkten Artikeln. Es würde nur Redundanz aufbauen, wenn wir hier eine Zusammenfassung erstellen.
Wenn zB. "Programmcode" i.S.v. "Quelltext" verwendet wird, braucht der Leser nur in den entsprechenden Artikel zu schauen und wird feststellen, dass Quelltext nicht zwingend nur der Quelltext/Programmcode eines kompletten Programms ist. Und dass ein Quelltext je nach Programmiersprache (warum Entwicklungsumgebung?) unterschiedlich aussehen kann, ist ebenfalls dort beschrieben.--Plankton314 (Diskussion) 10:53, 8. Mär. 2015 (CET)
Die Beschreibungen in den verlinkten Artikeln zeigen aber keinen Zusammenhang zu den jeweils anderen Typen von Programmcode und deshalb nur ein isoliertes Bild, keine Gesamtsicht. Wo steht zum Beispiel, dass/wie ein Modul (= eine gegebene Funktionalität) über verschiedene Stufen hinweg als unterschiedliche Varianten von Programmcode existieren kann? Wesentliche Aussagen aus der Sicht des Programmodes, ggf. mit Hauptartikelverweisen, sind doch nicht wirklich Redundanz, geben aber einen Überblick.
Programmiersprache: Unterschiede resultieren nicht nur aus unterschiedlichen PrSprachen/Compilern. Im Abschnitt 'Werkzeuge' war dargestellt, dass viele andere Toos (sid bilden als Gesamtbegriff die 'Entwicklungsumgebung') auch eine Rolle spielen. Wo findet man diese Tools in den Einzelartikeln? Und gesamtheitlich als Übersicht? --VÖRBY (Diskussion) 12:28, 8. Mär. 2015 (CET)

Die WP ist nicht dafür da, "Gesamtsichten" anzubieten - dafür gibt's Bücher, Essays und Vorlesungen. Der Artikel ist (wenn er denn keine BKS sein soll) also darauf zu beschränken "was versteht man unter 'Programmcode'".

BTW: Warum Pseudocode von einem Computer grundsätzlich nicht verarbeitet werden können soll, erschließt sich mir nicht. Jede Beschreibung eines Algorithmus' ist Quellcode, ob "normale Programmiersprache", Pseudocode, Prosa/Kochrezept, grafisch, als Video oder sonstwie.

--arilou (Diskussion) 15:56, 11. Mär. 2015 (CET)

+1 Das ohnehin. Wer eine größere Übersicht verfassen möchte, die sich über mehr als einen Begriff erstreckt, müsste das in Wikibooks machen.--Plankton314 (Diskussion) 16:36, 11. Mär. 2015 (CET)
Warum ist dann z.B. der Artikel Software so breit angelegt? Antwort: Weil 'man' darin alles Wesentliche finden soll, was zu Software, einem Teillemma der Softwaretechnik, zu sagen ist. Das ist bei vielen Begriffen so - dass man sie 'aus ihrer Sicht' (Gesamtsicht?) mehrdimensional beschreibt - natürlich mit Links auf Detail-/Hauptartikel. Dadurch unterscheidet sich eine Enzyklopädie auch von einem Lexikon.
Wo steht, dass textlicher Pseudocode (wenn er nicht explizit zur maschinellen Verarbeitung vorgesehen ist) 'Quellcode' wäre? Wir bewegen uns da prozessual noch im Bereich von Beschreibungen/Spezifikationen - die nicht zum Programmcode zählen.
Wer nennt Kochrezepte "Quellcode"?
Ich erwarte aber keine Antwort mehr; es ist 'vergebliche Mühe'! --VÖRBY (Diskussion) 17:01, 11. Mär. 2015 (CET)
"Das ist bei vielen Begriffen so", richtig, sofern sie zentral für ein ganzes Themenfeld sind. "Programmcode" ist nunmal nicht (oder kaum) mehr als ein verwaschenes Synonym für Quellcode, Maschinencode und wohl gelegentlich Zwischen-/Bytecode. Einfach kein sehr "prominenter Begriff", und ein "weites Ausschweifen" einfach unnötig.
Außerdem driftet solch' eine "mehrdimensionale Gesamtsicht" leicht zur Essay-mäßigen "Gesamtübersicht des Themenfelds" ab, und das braucht und will tatsächlich niemand, und schon gar nicht in jedem Artikel des Themenfelds.
Also: Ja, (mit etwas Vorsicht und Bedacht) für zentrale Artikel eines Themenfelds. Für alle sonstigen Artikel sollte man sich beschränken auf die -hm- Kernbedeutung, ohne Zierat.
Eigentlich OT: [textlicher Pseudocode, Kochrezept] Jede Beschreibung eines Algorithmus, die ein menschliches Hirn verstehen kann, kann theoretisch auch ein anderes Informations-verarbeitendes System verstehen. Ich bin mir sicher, noch zu meinen Lebzeiten Haushaltsroboter zu erleben, die ein Gericht gemäß Back-/Kochrezept zubereiten können ~ also den beschriebenen Ablauf umsetzen. Ich sehe darin keinen prinzipiellen Unterschied mehr zu einem Programm.
--arilou (Diskussion) 10:19, 12. Mär. 2015 (CET)
Ich hoffe, du erkennst selbst, wie absurd diese Sicht ist: Ein Kochrezept kann genau so wenig 'Programmcode' sein wie heutzutage ein von einem Scannerprogramm verarbeiteter Text - weil solche Dinge keine "Programme" sind. Dein Roboter wird zwar Programme ENTHALTEN, aber das sind die, die das Rezept interpretieren und evtl. umsetzen. Für JENE Programme gibt es dann sicher auch 'Programmcode', ggf. mehrere Typen davon (Quelltext, ... Maschinenprogramm ... ??), nicht aber für das Rezept. Das Rezept ist nämlich kein Artefakt aus der Softwareentwicklung, sondern ein Medium, das man VERARBEITEN kann.
Ich stelle fest: Derartige Missverständnisse entstehen, wenn/weil man in der Definition von Programmtext nicht genau nachlesen kann, was darunter zu verstehen ist. Weil einige WP-Autoren meinen, derartiges wäre (zB) ein unwichtiges Detail, das nicht in ein Lemma gehört. --VÖRBY (Diskussion) 20:35, 12. Mär. 2015 (CET)
Ich denke VÖRBY hat recht - es macht Sinn Programmcode abzugrenzen. Aus meiner Sicht ist eine vage Idee, ein Analysedokument, ein Activity-Diagramm & auch Pseudocode kein Programmcode - eben weil daraus nur mit Hirn oder enorm viel AI eine Software entstehen kann. --Sebastian.Dietrich 21:55, 12. Mär. 2015 (CET)
Ja, ein Kochrezept ist gewissermaßen ein Algorithmus. Aber Quelltext/Maschinencode/usw. ist ja nicht direkt eine Handlungsanweisung, sondern eine Form der Notation derselben.--Plankton314 (Diskussion) 23:29, 12. Mär. 2015 (CET)
Der Punkt ist, dass der Begriff "Software" durch unzählige Fachliteratur und sogar Normen mehr als bloß gut belegt ist, der Begriff "Programmcode" aber keinesfalls.--Plankton314 (Diskussion) 23:29, 12. Mär. 2015 (CET)
Das ist uns eh klar. Nicht zu allem gibt es Fachliteratur und Normen. Darum müssen wir schreiben in welchem Sinne Programmcode verwendet wird. Genau dafür hatten wir ja den Abschnitt Abgrenzung inkl. Belege. --Sebastian.Dietrich 00:16, 13. Mär. 2015 (CET)
Vllt. dir, aber Vörby hat oben gefragt, warum im Gegensatz zu hier, der Artikel Software so umfangreich ist. Und das ist die Antwort.
Und sorry, aber Belege, die auch nur im entferntesten WP:Q entsprechen, habe ich hier bisher keine gesehen.--Plankton314 (Diskussion) 00:27, 13. Mär. 2015 (CET)

Quellen[Quelltext bearbeiten]

Verwendung "Programmcode" synonym zu "Quellcode"[Quelltext bearbeiten]

--arilou (Diskussion) 11:41, 11. Feb. 2015 (CET)

Programmcode = Synonym zu Sourcecode, Zwischencode, Maschinensprache oder hat es eine eigenständige Bedeutung als Überbegriff der drei?[Quelltext bearbeiten]

Das macht aus meiner Sicht den Unterschied zwischen einer BKS und einer eigenständigen Seite (so wie auch Zwischencode der Überbegriff zu Bytecode ist) aus.

Also ist "Programmcode sowohl Sourcecode, als auch Zwischencode als auch Maschinensprache" oder gilt "Programmcode meint entweder Sourcecode, oder Zwischencode oder Maschinensprache". Ich tendiere zu ersterem.

[13] verwendet Programmcode für alle drei Dinge. D.h. der Autor verwendet "Programmcode" als Überbegriff und nicht als Synonym. --Sebastian.Dietrich 12:20, 7. Mär. 2015 (CET)

Nur um die Frage auch korrekt zu verstehen... Als booleschen Ausdruck hingeschrieben würde das heißen:
"PC = Sourcecode OR Maschinencode" bzw. "PC = Sourcecode XOR Maschinencode"
Je nach dem in welchem Kontext man es sieht/schreibt (oder welcher Autor), ist beides richtig, wenn man es konsequent umsetzt.
Aber wie willst du das im Artikel herausarbeiten bzw. unterscheiden?--Plankton314 (Diskussion) 12:59, 7. Mär. 2015 (CET)
Synonym ist etwas, das in beide Richtungen die selbe Bedeutung ergibt. Das ist aber hier nicht der Fall.
QuellenDivVwd
Als Belege für die unterschiedliche Verwendung dieses allgemeinen Überbegriffs (ohne für Quellcode - die gibt es zuhauf), habe ich mal die folgenden gefunden:
  • [14]: Binder verbindet mit ext. Referenzen" - u.a. mit anderem "Programmcode", hier also Objectmodule gemeint
  • [15]: bezeichnet an mehreren Stellen den 'Bytecode' als Programmcode
  • [16]: "im Codesegment befindet sich der Programmcode" - hier also Maschinencode
  • [17]: "sodass Programmcode ohne Zertifizierung keine Möglichkeit finden, ausgeführt zu werden" - also Maschinencode
  • [18]: "nur dem Übersetzer (Compiler) bekannt sind, aber in dem übersetzten Programmcode, welcher der abstrakten Maschine als Eingabe gilt, nicht mehr zur Verfügung stehen." - Hier also Maschinencode.
  • [19]: "der Programmcode des Angreifers" -hier also Code im Speicher = Maschinencode
Dass der Begriff unterschiedlich verwendet wird, ist/war im Artikel bereits beschrieben. Was soll daran kompliziert sein? --VÖRBY (Diskussion) 13:14, 7. Mär. 2015 (CET)
Eine BKS ist nicht für Synonyme gedacht, sondern für Homonyme, d.h. ein Ausdruck der für unterschiedliche Begriffe steht. Und genau das ist hier der Fall. Das unterstreichen auch die von dir aufgeführten Beispiele.--Plankton314 (Diskussion) 14:28, 7. Mär. 2015 (CET)
Programmcode ist ein Homonym für Sourcecode, Zwischencode, Maschinencode, Bytecode, ... - das ist denke ich unbestritten. Ist es aber auch ein Oberbegriff für Sourcecode, Zwischencode, Maschinencode, Bytecode, ...? Aus meiner Sicht ist es das & es wird denke ich auch so verwendet.
Nur Homonym --> XOR --> BKS, auch Oberbegriff --> OR --> eigene Seite --Sebastian.Dietrich 21:43, 7. Mär. 2015 (CET)
'Schloss' war ein falsches Beispiel. Besser passt Möbel. Das ist auch keine BKS.
Im Übrigen stimme ich Sebastian zu: Weil PC auch ein Überbegriff ist, ist der Ausdruck nicht nur Synonym. --VÖRBY (Diskussion) 09:24, 8. Mär. 2015 (CET)
Programmcode wird aber (soweit wir bisher festgestellt haben) nur unscharf als Homonym verwendet, je nach Autor. Was sollte die Gemeinsamkeit der Begriffe in Form des Oberbegriffs "Programmcode" hier sein? Das wird mir leider bisher nicht klar. Und ohne die macht IMO auch eine Abgrenzung keinen Sinn.--Plankton314 (Diskussion) 11:04, 8. Mär. 2015 (CET)
Folgende Punkte aus den anderen Artikeln passen mMn besser hier her:
d.h. zumindest der Übergang zwischen den einzelnen Stadien und Lizenzierung sind Punkte die mMn hier besser passen. Ich bin mir aber sicher, dass es da noch mehr gibt- z.B. Entwicklungsumgebungen, Abgrenzungen von z.B. PostScript oder LaTeX (siehe Quelltext). --Sebastian.Dietrich 19:36, 8. Mär. 2015 (CET)
Aha. Verstehe ich es dann richtig, dass der Wunsch besteht, Teile (oder allgemein Aspekte) aus den jeweiligen Artikeln hier praktisch eine Ebene nach "oben" zu ziehen?--Plankton314 (Diskussion) 20:57, 8. Mär. 2015 (CET)
Von meiner Seite ja - wenn es eben nicht nur den Subbegriff, sondern alle Sub-Begriffe gemeinsam betrifft. Aber nicht nur das. Hier passt denke ich noch mehr hinein - Dinge, die in den Sub-Begriffen noch gar nicht erwähnt wurden. z.B. würde ich durch alle Links --> Programmcode durchgehen und schauen, ob nicht das eine oder andere aus den verlinkenden Seiten hier besser Platz hat (bzw. oder ob der Link nicht besser auf einen der Sub-Begriffe passt). --Sebastian.Dietrich 21:05, 8. Mär. 2015 (CET)
P.S. fyi: Bin jetzt ein paar Links -> Programmcode durchgegangen. Die meinen unter Programmcode in den meisten Fällen Maschinensprache oder Zwischencode oder überhaupt Software, nur ganz selten Sourcecode. --Sebastian.Dietrich 21:11, 8. Mär. 2015 (CET)
Gibt es Fachliteratur, die eine Definition/Beschreibung von "Programmcode" als Oberbegriff liefern? Ich befürchte nämlich, dass wir uns hier sonst auf einen Begriff wiki-intern einigen, den es so bisher noch nicht gab. Und das sind die bösen zwei Buchstaben.--Plankton314 (Diskussion) 10:08, 9. Mär. 2015 (CET)
Ich fürchte es gibt keine Fachliteratur, die eine Definition/Beschreibung von "Programmcode" liefert, weder als Oberbegriff, noch als Homonym. Es gibt aber Fachliteratur, die "Programmcode" im Sinne von Oberbegriff und andere Fachliteratur, die "Programmcode" im Sinne von Homonym für _einen_ der Subbegriffe verwendet. D.h. egal in welche Richtung wir gehen - sie ist _nicht_ durch eine Definition/Beschreibung, sondern durch die ihre Verwendung in Fachliteratur gedeckt. --Sebastian.Dietrich 11:56, 9. Mär. 2015 (CET)
Genau so denke ich auch. 397.000 Verweise müssen genügen. Ich habe die o.g. Beispiele aus den ca. ersten 30-40 ermittelt.
Zur 'Redundanz': Ja, die scheint es auch in sog. Einzelartikeln zu geben. Um aber keine Lawine loszutreten, schlage ich vor, diesen Aspekt vorläufig außen vor zu lassen. Stattdessen sollten wir hier im Artikel (wieder) das reinnehmen, was jemand (auch eine OMA!) erfahren sollte, der sich einfach über den Ausdruck/Begriff 'Programmcode' umfassend informieren möchte. Damit wäre ich wieder bei [[#Fehlendes)). Wie üblich kann man ja zusätzlich die gesetzten Links verfolgen. --VÖRBY (Diskussion) 19:21, 9. Mär. 2015 (CET)
Vörby, du bist doch inzwischen lange genug dabei, um zu wissen, dass die Google-Keule ("es gibt x Millionen Treffer zu diesem Begriff") keine Beleg- oder Aussagekraft hat.--Plankton314 (Diskussion) 10:19, 10. Mär. 2015 (CET)
Mag stimmen, aber die vielen Zitate dort müssten doch auch dich überzeugen, ich habe mir extra die Mühe gemacht, die o.g. , m.E. validen Quellen zu finden. Wie gesagt, nur aus den ersten Fundstellen!
@Sebastian.Dietrich: Du hast im Grunde recht. Ein Synonym zu belegen ist nur wesentlich leichter, denn dazu reicht seine Verwendung. Einen eigenständiger Begriff ist da wesentlich aufwendiger.
Aber egal, Fahrzeug oder Langfahrzeug sind auch Überbegriffe, bevor wir also im luftleeren Raum herrumrudern, können wir ja diskutieren, inwiefern das hier ausgebaut werden sollte.
Wenn schon eine Abgrenzung oder Zusammenfassung, dann etwas systematisch. Reportgeneratoren und Turingmaschinen sind mit Sicherheit nicht das primäre Unterscheidungsmerkmal (und auch nicht das sekundäre).--Plankton314 (Diskussion) 10:19, 10. Mär. 2015 (CET)
Lese ich das jetzt richtig? Du bist also auch für ein Behalten des Artikels als Artikel und nicht BKS? Wenn ja, dann können wir ja diesen Diskussionspunkt beenden, weil dann sind wir ja alle drei einer Meinung.
@Diskussion zu Zusammenfassung/Abgrenzung - ja gerne. War damit ohnedies nicht glücklich. --Sebastian.Dietrich 14:27, 10. Mär. 2015 (CET)
Ich denke es bringt mehr, mal zu probieren, ob und wie man den Artikel als Oberbegriff gestalten könnte.--Plankton314 (Diskussion) 18:26, 10. Mär. 2015 (CET)

Meine Zusammenfassung: Wir hätten damit also festgestellt, dass 'Programmcode' eine im Rahmen der Softwareeentwicklung auftretende Artefakt-Kategorie ist, zu der es Untertypen (Quellcode, Zwischencode ...) gibt, zu denen wiederum Einzelobjekte (für Programm A, für Modul B ...) auftreten. Viele der Eigenschaften gelten für die ganze Kategorie, mindestens für mehrere dieser Untertypen. Die vermutete Redundanz ist kaum gegeben - im Gegenteil: bei den Einzelartikeln stehen (auch) Aussagen, die für mehrere Arten von Programmcode zutreffen. Ich denke deshalb:

  • Das Lemma sollte wieder mit seinen relevanten Aussagen gefüllt werden.
  • Das wäre zunächst mal ein Revert des Reverts [20]
  • Dann sehe ich dort noch die bei #Fehlendes beschriebenen Aspekte.
  • Ob oder wie das unter 'Abgrenzung' Beschriebene reinkommt, wäre eine andere Frage; ich halte es schon für Wesentlich - trotz unterschiedlicher Belege.
  • Und auch die gelöschten Textteile (Werkzeuge etc.) und Bilder bitte ich nochmal in Augenschein zu nehmen - ob sie unter diesem Aspekt nicht doch sinnvoll sind/waren. Ggf. kann man sie ja kürzen.--VÖRBY (Diskussion) 17:05, 10. Mär. 2015 (CET)
Wie kommst du darauf? Was vorher da stand ist einfach nicht tragbar, weder fachlich noch quellenmäßig. Und die unter #Fehlendes beschrieben Aspekte sehe ich da auch nicht drin.--Plankton314 (Diskussion) 18:26, 10. Mär. 2015 (CET)
Ich denke auch, dass es mehr Sinn macht den Artikel wieder sukzessive mit Inhalt zu befüllen. Gerne auch mit Diskussion dazu, oder jeder von uns versucht sich an den Teilen die er am meisten im Artikel vermisst... --Sebastian.Dietrich 20:07, 10. Mär. 2015 (CET)
@Plankton314 / 18:26: Auch ich dachte, wir wären uns nun über den Begriff einig. Wenn das der Fall ist, solltest du bitte bei #Fehlendes jeweils erläutern, warum das nicht beim Begriff Programmcode (kurz) erwähnt werden sollte. Andernfalls ist wohl "Hopfen und Malz verloren". --VÖRBY (Diskussion) 17:05, 11. Mär. 2015 (CET)
Wir haben festgestellt, dass es keinen Bedeutungsinhalt über die Einzelbegriffe hinaus gibt. Wie man das nun erklärt oder abgrenzt, weiß ich auch noch nicht genau. Aber eine Abgrenzung sollte systematisch und von grob und zu fein geschehen.
Warum man also bei der Abgrenzung ausgerechnet mit Reportgeneratoren beginnt und wo da die Brücke zu irgendwelchem Code ist, ist bisher leider nicht klar geworden. Oder was heißt zB. "das Format und die Syntax von Programmcode-Komponenten je nach der verwendeten Entwicklungsumgebung hochgradig unterschiedlich sind." Sind da unterschiedliche Programmiersprachen gemeint (was hat das dann mit der Entwicklungsumgebung zu tun)? Und was sind Programmcode-Komponenten? Bibliotheken, einzelne Funktionen? Als Quelltext oder kompiliert als Zwischen- oder Maschinencode?
Das ist als Brainstorming ja ganz gut, aber noch nichts strukturiertes.--Plankton314 (Diskussion) 23:29, 12. Mär. 2015 (CET)
Bedeutungsinhalt: Das haben wir NICHT festgestellt, sondern in zig Quellen dort veerwendete Bedeutungen gefunden.
Ja, dieser Einstieg in 'Reportgeneratoren' ist ein wenig zu direkt - es gibt mehrere Aspekte, die nicht als Programmcode betrachtet werden oder wo dies fraglich ist. Es ist aber schon mal ein Erfolg, dass du sowas auch forderst - alles Aspekte, die zum Verständnis von 'P'C von Bedeutung sind.
Was soll an dem zitierten Satz ("das Format ....") unverständlich sein? Was mit 'Entwicklungsumgebung' gemeint ist, habe ich schon mal beschrieben - das ist alles, womit der Code entwickelt wurde, also mehr als nur Programmiersprachen. 'Komponenten' versteht man üblicherweise als 'Teile' - und sowas gibt es ja bekannterwweise bei Programmcode auch. In allen Varianten von Programmcode, deshalb HIER die Beschreibung und nicht bei den Einzeldokumenten. Dass man Texte aber anders formulieren kann, ist selbstverständlich, bisher ging es aber immer darum, dass/ob bestimmte Aussagen überhaupt im Artikel stehen sollen.
Insofern würde ich wieder auf Sebastian Dietrichs Vorschlag zurückkommen und ein Disk-Kapitel anlegen, in dem alle Texte vorbereitet und abgestimmt werden können. Vielleicht zunächst nur die wichtigen inhaltlichen Aussagen ohne Detailtext - um Erbsenzählereien vorläufig zu vermeiden. --VÖRBY (Diskussion) 11:15, 13. Mär. 2015 (CET)
Die schwammige Verwendung eines Begriffs, insbesondere in Diplomarbeiten, Homepages oder Wikis, und anstatt einer sauberen Definition ist nicht belegkräftig.
Aber ich stimme zu, dass man konkrete Punkte diskutieren sollte.--Plankton314 (Diskussion) 12:28, 13. Mär. 2015 (CET)

Entwurf[Quelltext bearbeiten]

Wie oben in der Diskussion bereits festgestellt, sollten Textteile/Aussagen, die für einen der Diskutanten von Bedeutung sind, hier zunächst eingestellt und erörtert werden.

Textfragmente[Quelltext bearbeiten]

Die nachfolgenden Texte enthalten wesentliche Aussagen zum Lemma, sie sind vorläufig nicht ausformuliert, auch Referenzen, Links und andere Details sind noch nachzutragen.

Einleitung:
Programmcode .. im Rahmen der Softwareentwicklung als Ergebnis oder Zwischenergebnis für ein bestimmtes Programm oder einen Teil davon entstehende Anweisungen, die dieses in einer bestimmten Programmiersprache beschreiben und repräsentieren.

Der Ausdruck wird einerseits als Synonym für folgende Unterarten von Programmcode benutzt:

  • Quelltext (in dieser Form wird 'Programmcode' am häufigsten benutzt): Beispiel: >>ref nachtragen
  • Zwischencode
  • Maschinencode Beispiel: >>ref nachtragen
  • oder andere Bezeichnungen für diese Codearten (Objectcode, Pseudocode, ...)

Andererseits wird er zum Teil auch als Sammelbegriff für diese Unterarten benutzt, besonders wenn sich eine Aussage nicht auf eine spezifische Unterart bezieht. Beispiel: >>ref nachtragen

Unterschiedliche Formate und Bezeichnungen:
Programmcode entsteht je nach Programmiersprache und den verwendeten Werkzeugen in sehr unterschiedlichen Varianten und Formaten - die zum Teil auch anders bezeichnet werden, z.B. Bytecode, Pseudocode oder Objectcode.

Aufeinander aufbauend:
Programmcode existiert für eindeutig bestimmte Programme/Programmteile, wobei sie mit unterschiedlichen Werkzeugen erstellt werden und aufeinander aufbauen, z.B. Quelltext > Zwischencode > Maschinencode für Modul X. Quelltext wird von Programmierern erzeugt, die anderen Arten von Programmcode werden in der Regel automatisch generiert, Die letzte Stufe, häufig der Maschinencode, wird i.d.R. zur Ausführung benutzt, frühere Stufen sind lediglich Zwischenergebnisse in der Softwareentwicklung.

Sollte aus meiner Sicht aus Quelltext#Übersetzung und Ausführung hierher verschoben (passt hier besser als dort) & gegebenenfalls ergänzt/angepasst werden. Hier sollte mMn auch der umgekehrte Weg beschrieben werden (aus Bytecode#Rückgewinnung von Quelltext aus Kompilaten hierher verschoben (passt hier besser als dort) & gegebenenfalls ergänzt/angepasst werden --Sebastian.Dietrich 21:00, 17. Mär. 2015 (CET)

Sich häufig ändernd:
Vornehmlich im Rahmen von [Softwaretest]]s (i.Z. mit der Behebung von Programmfehlern), wird der Programmcode einzelner Programm(-teile) u.U. häufig geändert/korrigiert (Quelltext) bzw. neu erzeugt (die anderen Arten) - bis das Programm fehlerfrei die Softwareentwicklung verlassen kann.

Speichermedien:
'Programmcode' wird in/auf unterschiedlichen Medien gespeichert: im Hauptspeicher, in Member einer Programmbibliothek oder als ausführbare Datei, er kann aber auch zB auf Papier vorliegen, zB als Quelltextliste.

Abgrenzung/Nicht eindeutige Begrifflichkeit:

  • Mit 'Programmcode' ist nicht 'Code' im Sinn von Sprache/Syntax gemeint, sondern i.S. von 'Programmstück'.
  • Alter Text, gekürzt: Ob Anweisungen, die für einen Listengenerator den die Struktur der List definieren, auch 'Programmcode' genannt wird, ist strittig; zum Teil werden derartige 'deklarative Anweisungen' auch als Gegenteil von Programmcode bezeichnet. >>ref für Beides....

Beispiele:
wurden aus dem Lemmatext entfernt; ich halte sie trotzdem für nützlich.

Lizenzierung:
Sollte mMn aus Quelltext#Lizenzierung hierher verschoben werden, da sie alle Stadien des Programmcodes und nicht nur den Quelltext betrifft.

Entwicklungsumgebungen:
Sollte mMn hier kurz beschrieben werden und auf Hauptartikel Integrierte Entwicklungsumgebung verwiesen werden.

Diskussion über Textftagmente[Quelltext bearbeiten]

Vorschlag: Wer eingestellte Textteile nicht im Artikel haben möchte, möge entweder beschreiben/beweisen, dass sie nicht korrekt sind oder - mit Link - darauf hinweisen, wo diese Aussagen bereits in WP zu finden sind - und wo sie auch redundanzfrei hingehören.

Habe noch Textteile ergänzt, die mMn hier hingehören. --Sebastian.Dietrich 21:01, 17. Mär. 2015 (CET)
Ich stimme deinen Ergänzungen zu. Bezüglich der Verschiebungen würde ich jedoch in 'Quelltext' Kurzversionen des bisherigen Textes stehen lassen - mit Verweis auf die Details HIER.--VÖRBY (Diskussion) 09:31, 18. Mär. 2015 (CET)
Passt --Sebastian.Dietrich 17:52, 18. Mär. 2015 (CET)

Das sieht im alles in allem ganz okay aus, auch wenn einige Formulierung etwas redundant sind.
Pseudocode ... würde ich ausdrücklich nicht als Programmcode sehen. Oder wird das irgendwo so gehandhabt? ursprünglich von Plankton314.

Siehe MS Access, dort heißt der Zwischenode nicht Bytecode etc, sondern "Pseudocode"; das stand bei den entfernten Beispielen.--VÖRBY (Diskussion) 12:30, 18. Mär. 2015 (CET)
Dann sollten wir Pseudocode aber nicht nennen, weil damit verbindet jeder was anderes als Zwischencode bei MS Access. --Sebastian.Dietrich 20:34, 18. Mär. 2015 (CET)
Bedenke: Das ist ein Beispiel dafür, dass es für 'Programmcode' sehr viele unterschiedliche Ausdrücke gibt, auch wenn da Homonyme dabei sind. Und genau das ist oben die Aussage. Allerdings stimme ich zu: Als Beispiel müsste man das so nicht aufführen, wenn schon, dann in einer vollständigen (?) Liste. Oder eben nur beim Beispiel 'MS Access' - das ja gelöscht wurde. --VÖRBY (Diskussion) 11:17, 19. Mär. 2015 (CET)

Lizenzen:
Hab doch noch einen Einwand: Bei Lizenzen geht es m.E. um Software-Lizenzen. Software ist ein noch allgemeingültigerer Begriff und schließt zB auch Doku etc. ein. Also: Nicht voll nach hierher verschieben, höchstens einen ganz kurzen Text, vlt auch gar nicht oder nur bei 'Siehe auch'. Die Redundanz bei Programmierung würde ich HIER nicht behandeln wollen.--VÖRBY (Diskussion) 12:30, 18. Mär. 2015 (CET)

Passt --Sebastian.Dietrich 17:52, 18. Mär. 2015 (CET)

Speichermedien:
Womit ich jedoch nicht konform gehe ist der Abschnitt "Speichermedien" und "sich häufig verändern" (die deshalb mal durchgestrichen habe). Das baut nur Redundanz zu den Themen Softwareentwicklung und Speichermedien auf. Eine verwaschene Light-Beschreibung dieser Prozesse gehört hier nicht hinein. Wenn wir mit so einer losen Assoziationsliste anfangen, kann man am Ende alles hier einbauen (auch Kartoffeln).--Plankton314 (Diskussion) 10:01, 18. Mär. 2015 (CET)

Es wird hier nur kurz gesagt, dass Programmcode Speichermedien BRAUCHT; die Unterscheidung von beidem, dass also PC-Exemplare keine Medien (zB Dateien) SIND, ist m.E. wesentlich ist. --VÖRBY (Diskussion) 12:30, 18. Mär. 2015 (CET)
Hier zu sagen, dass Programmcode Speichermedien bräuchte ist genauso redundant, wie sich darüber zu ergehen, dass ein Programm Strom braucht um ausgeführt zu werden.--Plankton314 (Diskussion) 12:54, 18. Mär. 2015 (CET)

Sich häufig ändernd: siehe vorherigen Text Redundanz zu SW-Entwicklung: Wo steht sowas in 'Softwareentwicklung'? Für das Verständnis von Programmcode ist wesentlich, dass er im Lauf der SWE zig-mal entsteht. Meine Meinung. --VÖRBY (Diskussion) 12:30, 18. Mär. 2015 (CET)

Unterschiedlicher Quelltext ergibt ein unterschiedliches Kompilat. Inwiefern ist das für das Verständnis von Programmcode wesentlich?--Plankton314 (Diskussion) 12:54, 18. Mär. 2015 (CET)
Weil es hierbei um dasselbe Programm geht, dessen Quelltext zB nur nochmal korrigiert wurde und aus dem dann nochmal Zwischentexte ... werden. Das ist nur ein temporär unterschiedlicher Quelltext, also nur eine andere Version davon, vom Begriff 'Programmcode' oder 'Quelltext' aus gesehen ist nur 1 Entität (Objekt) beteiligt, Versionen davon sind Entitäten anderer Entitätstypen - und das ist für das Verständnis wichtig.
Zur Diskussion: Durchstreichen ist eine Vorwegnahme Deiner Meinung; wir wollen aber hier erst darüber diskutieren und dann zu einer Entscheidung kommen.--VÖRBY (Diskussion) 13:09, 18. Mär. 2015 (CET)
Nein, wenn der Quelltext geändert wurde, ist es nicht mehr dasselbe Programm. Selbst wenn der Quelltext nicht geändert wurde, sondern nur bspw. mit anderen Optionen kompiliert wurde, ist es nicht mehr dasselbe Programm. Es ist funktional identisch, aber nicht mehr vom Code her identisch. Und da versteht es sich von selbst, dass unterschiedliche Programme unterschiedliche Kompilate, d.h. unterschiedlichen Code erzeugen.--Plankton314 (Diskussion) 13:24, 18. Mär. 2015 (CET)
Behauptest du, ein fehlerhafter Quelltext wäre für ein anderes 'Programm' als der anschließend berichtigte? Das ist ein unpassendes Bild von 'Programm'. Der Programmierer hat zB Programm X zu erstellen und arbeitet so lange an diesem Programm X, bis es fertig ist. Dabei entstehen u.U. zig Versionen von Quellcode (und auch anderer Programmcodes) von Programm X, betroffen ist aber immer "X". Ein Programmcode repräsentiert also nur immer eine bestimmte Version eines Programms, nicht ein anderes Programm. --VÖRBY (Diskussion) 17:52, 18. Mär. 2015 (CET)
Was du hier gerade unter "Programm" verstehst ist eine abstrakte Spezifikation der Funktionalität eines Programms.
Wir bewegen uns hier aber auf der Ebene Quelltext/Maschinencode/usw. in diesem Kontext ist ein Programm die Summe seiner einzelnen Anweisungen. D.h. was du als "Versionen von Quellcode" bezeichnest ist hier jeweils ein individuelles Programm, auch wenn die Funktionalität dieser Programme (nahezu) identisch ist.--Plankton314 (Diskussion) 18:11, 18. Mär. 2015 (CET)
Ich stimme nicht zu: '(Computer-)programm' ist ein feststehender Begriff - „zur Lösung einer bestimmten Aufgabe“. Dass es dazu Historien/Versionen gibt, ändert nichts an dieser Tatsache; es war und ist 'Programm X' und wird es auch bleiben. Schon gar nicht passt deine Sicht, wenn man sich ein Programm in der Entwicklung vorstellt: Damit kann man keine 'Aufgabe lösen' - es ist also streng genommen noch kein 'Programm', oder eben ein 'Programm in Entwicklung'. Dass dabei zahlreiche Ausprägungen von Programmcode entstehen, soll mit der o.a. Aussage klargestellt werden. --VÖRBY (Diskussion) 11:17, 19. Mär. 2015 (CET)
Die Sicht, dass es Versionen von Programmen gäbe usw. ist eine Abstraktionsschicht, die durch komplexere SWE-Prozesse hinzugekommen ist. Das ist eine völlig andere Baustelle. Wenn du nun von "Ausprägungen von Programmcode" sprichst/schreibst, entsteht eine weitere Dimension des Begriffs "Programmcode", die man dann wiederum unterscheiden müsste.
Wir bewegen uns hier tief im Bereich Informatik, auf der Ebene von Quell- und Maschinencode. Ein Computerprogramm ist da nicht nur schwammig irgendetwas, was "eine bestimmte Aufgabe" löst, sondern ist ein klar definierte Folge von Anweisungen. Es verkompliziert die Sache nur unnötig, wenn man den Begriff Programm so weit und unscharf fasst.--Plankton314 (Diskussion) 17:13, 19. Mär. 2015 (CET)
Ich gebe auf, denn ich will nicht mehr darüber diskutieren, was ein Computerprogramm ist - auch in der Informatik. Die originäre, von dir kritisierte Anmerkung soll und kann genau das Zusammenspiel dieser beiden Ebenen erläutern. Damit es auch Informatiker verstehen ;-) --VÖRBY (Diskussion) 18:10, 19. Mär. 2015 (CET)
@VÖRBY: Pass auf, machen wir doch jetzt einfach mal Nägel mit Köpfen: Schmeiss alles in den Artikel rein, so wie meinst, dass es passt. Dann probieren wir ein bißchen rum, ob man im Laufe des Schreibprozesses eine Lösung findet (SD fällt bestimmt auch was ein) und wenn alles nichts hilft, treffen wir uns hier wieder.--Plankton314 (Diskussion) 18:17, 19. Mär. 2015 (CET)

OK, könnte praktikabel sein. Hat jemand noch einen wichtigen 'Aspekt', der ins Lemma rein sollte? Ich versuchs vorläufig mal mit den von mir eingestellten Punkten, aber zunächst oben im #Entwurf. Dauert aber etwas. --VÖRBY (Diskussion) 18:22, 19. Mär. 2015 (CET)

Passt --Sebastian.Dietrich 19:57, 19. Mär. 2015 (CET)

Finale Texte (Entwürfe)[Quelltext bearbeiten]

Gem. vorangegangener Diskussion konkrete Formulierungen - die noch endgültig verabschiedet werden sollten. --VÖRBY (Diskussion) 16:28, 22. Mär. 2015 (CET)

Einleitung:
Als Programmcode werden die Anweisungen bezeichnet, die im Rahmen der Softwareentwicklung für ein bestimmtes Computerprogramm oder einen Teil davon entstehen und die dessen Funktionalität in einer bestimmten Programmiersprache beschreiben bzw. repräsentieren.

Im Allgemeinen werden folgende Arten von Programmcode unterschieden:

  • Quelltext ist die für Menschen lesbare Form eines Computerprogramms.
(wird auch Quell- oder Source- oder Primärcode, Quellprogramm etc genannt)
(wird auch Bytecode, Objektcode etc. genannt)
  • Maschinencode kann von einer Maschine direkt ausgeführt werden, ist für Menschen jedoch nicht oder nur schwer lesbar.
(wird auch Maschinenprogramm, Binärprogramm etc genannt).

(== Unterschiedliche Bedeutungen:==)
In der Literatur wird der Ausdruck ‚Programmcode‘ zum Teil als Synonym für nur eine der o. g. Unterarten verwendet, in vielen Fällen nur für 'Quelltext' (Beispiel siehe [1]), aber auch für alle andere Codearten, zum Beispiel für 'Maschinencode' (wie in [2] oder in [3]).

(== Abgrenzung/Mehrdeutige Verwendung des Begriffs ==)

  • Mit ‚Programmcode‘ ist nicht 'Code' im Sinn von Sprache/Syntax gemeint, sondern i.S. von 'Programmstück'.
  • Anweisungen, die mit deklarativen Programmiersprachen oder mit grafischen Programmiersprachen erzeugt wurden, werden nur teilweise als ‚Programmcode‘ bezeichnet (Beispiel siehe [4]); zum Teil werden derartige Anweisungen aber auch als Gegenteil von Programmcode (hier im Sinn von 'Programmtext') bezeichnet.[5]

(== Aufeinander aufbauend ==)
Jeder Programmcode bezieht sich auf genau ein Programm oder einen Programmteil. Die verschiedenen Codearten bauen aufeinander auf. Beispiel: Der Quelltext > ist die Grundlage für den Zwischencode > dieser für den Maschinencode. Quelltext wird von Programmierern erzeugt, die anderen Arten von Programmcode werden in der Regel automatisch generiert. Dabei werden auf der nächsten Entwicklungsstufe häufig Programmcodes für mehrere Funktionen/Programmteile zusammengefasst, sodass die letzte Stufe, zum Beispiel der Maschinencode, oft nur noch ein (1) Programmcode ist, der unter Verwendung mehrerer/vieler Codeteile entstand.

(== Speichermedien ==)
‚Programmcode‘ ist ein immaterieller Begriff und kann in unterschiedlichen Medien existieren, beispielsweise im Hauptspeicher eines Editors (während der Erstellung von Quelltext), als Member einer Programmbibliothek oder als ausführbare Datei (wenn er gespeichert wird), im Hauptspeicher des Computers (bei der Ausführung des Programms) oder auf Papier (beispielsweise in einer Quelltextliste).

(== Formale Unterschiede ==)
Programmcodevarianten unterscheiden sich bezüglich ihrer Struktur, Form, Syntax, Speicherung etc. je nach Programmiersprache und den verwendeten Programmierwerkzeugen erheblich. Zum Teil fallen nicht alle Codevarianten an (zum Beispiel kein Zwischencode oder kein Maschinencode), oder sie werden mit individuell anderen Bezeichnungen benannt (wie 'Bytecode').

Nachfolgend werden derartige Unterschiede an konkreten Beispielen erläutert – die zum Teil auch in anderen als den erwähnten Systemumgebungen in nahezu identischer Form so auftreten:

~"herkömmliches Kompilieren/Linken"

Bei Verwendung klassischer Programmiersprachen wie ??? übersetzt ein Compiler oder Assembler den evtl. durch einen Precompiler vorbearbeiteten, als Textdatei vorliegenden Quellcode eines Programms und erzeugt daraus prozessorspezifischen Programmcode. Im Betriebssystem Z/OS wird dieser z. B. „Objektmodul“ genannt. Mit dem 'Linkage Editor' wird dieser Code verarbeitet und der Objektcode evtl. aufgerufener Unterprogramme und sprachspezifischer Systemmodule wird optionsabhängig statisch oder dynamisch hinzugebunden. Ergebnis ist ein Lademodul in Maschinensprache, der Maschinencode – der durch ein EXEC-Kommando in den Job-Steueranweisungen oder nach einem Aufruf als Unterprogramm ('CALL') in den Hauptspeicher geladen und ausgeführt wird.

mehrere Quellcodeformate / kein Maschinencode

Im Beispiel von Anwendungen mit MS Access werden die Anweisungen (= der Quellcode) in unterschiedlichen grafischen Formaten, zum Teil auch als Texte formuliert. Dazu werden verschiedene Editoren zum Erstellen von (z. B.) Datenstrukturen, Formularen, Reports, SQL-Datenzugriffen, Makros, VBA-Anweisungen etc.) benutzt. Diese Anweisungen werden in einer (1) MDB-Datei gespeichert und bei der Ausführung interpretiert und verarbeitet.
Spezialfall VBA: Falls in der Anwendung VBA-Anweisungen implementiert wurden, werden diese bei der ersten Ausführung der Anwendung automatisch und einmalig kompiliert, wobei ein optimierter Zwischencode entsteht, genannt „P-Code“ (Abk. für Pseudocode). Auch dieser Code wird in derselben MDB gespeichert und über einen Interpreter 'Befehl für Befehl' ausgeführt.[6]
Ähnliche Kombinationen von Programmtext treten auch bei Verwendung von Studio/Eclipse/NetBeans/sonstiger RADIDEs auf.

weitere Beispiele ggf noch ergänzen

(== Lebensdauer ==) Im Rahmen der Entwicklung von Programmcode wird dieser meist sehr oft und kurzfristig geändert/korrigiert (Quelltext) bzw. neu erzeugt (die anderen Arten). Programmcodes existieren dabei oft nur temporär bis zur nächsten Version, zum Beispiel nach der Korrektur eines Programmfehlers.

(== Vom Quelltext zur Ausführung ==)
Bevor ein Computerprogramm von einem Computer ausgeführt werden kann, muss es in Maschinensprache, also in eine vom Computer verständliche Folge von Bits, umgesetzt werden. Dies kann entweder vorab durch einen Compiler oder – zur Laufzeit – durch einen Interpreter oder JIT-Compiler geschehen. In vielen Fällen wird mittlerweile eine Kombination aus beiden Varianten gewählt, bei der zur Übersetzungszeit der Quelltext der eigentlichen Programmiersprache in einen abstrakten Zwischencode übersetzt wird, welcher dann zur Laufzeit von einer Laufzeitumgebung durch einen Interpreter oder JIT-Compiler in den eigentlichen Maschinencode überführt wird. Dieses Prinzip hat den Vorteil, dass ein und derselbe Zwischencode auf sehr vielen verschiedenen Rechnerarchitekturen ausführbar ist und somit nicht für jede Zielarchitektur eine eigene Version der Software erscheinen muss. Typische Beispiele für einen solchen Zwischencode sind der Java-Bytecode sowie die Common Intermediate Language. Mittels eines Debuggers kann die Funktionsweise des Programmes zur Laufzeit verfolgt werden.

(== Einzelnachweise ==)

  1. Wortbedeutung[1] „Synonym für Quelltext“
  2. Informatik DUDEN ISBN 3-411-05232-5 (Programm-)Code = „Ein in eine Maschinensprache übersetztes Programm“
  3. TUM [2] „...aber in dem übersetzten Programmcode, welcher der abstrakten Maschine als Eingabe gilt, nicht mehr zur Verfügung stehen.“
  4. National Instruments [3] Bezeichnet das grafische Blockdiagramm als Programmcode
  5. Visual C#2008 Windows Programmierung [4] „... erfordert keine einzige Zeile Programmcode, sondern wird wird komplett (deklarativ) in XAML definiert.“
  6. Microsoft Support [5]

Diskussion darüber[Quelltext bearbeiten]

Hab mir erlaubt zwecks Übersichtlichkeit die Diskussionen zu trennen, da die erste Diskussion zu den Textfragmenten war und die zweite jetzt zum Gesamttext ist.

Meine Anmerkungen:

  • Der Einleitungssatz umfasst nicht den Sourcecode (da "... als Ergebnis oder Zwischenergebnis ... entstehen"). Das Ziel von Programmcode ist auch nicht immer ein Computerprogramm (z.B. Spikes, Snippets, ...) Vorschlag: "Als Programmcode werden die Anweisungen bezeichnet, die im Rahmen der Softwareentwicklung in einer bestimmten Programmiersprache geschrieben werden oder als Ergebnis oder Zwischenergebnis daraus entstehen."
VÖRBY: Wieso passt das zu Sourcecode nicht? Der entsteht doch auch in der SWE - und ist wohl eines der wesentlichen Artefakte (Ergebnisse); denke nur mal an open source. Du meintest wohl "automatisch erstellte Ergebnisse"; das ist aber hier nicht gesagt.
Das "Angeführte" könnten wir evtl. trotzdem weglassen, weil "entsteht" einschließt, dass das Ergebnisse sind. Der Hinweis auf den Unterschied zwischen Erg und ZsErg würde aber dann fehlen.
Nicht immer Programm? Dann wäre das mE auch kein Programmccode. 'Programm' muss natürlich im weitesten Sinn interpretiert werden. Snippet verweist in WP auf Quelltext. Spike sagt mir nix, finde ich auch in WP nicht.
Sebastian: Sourcecode entsteht nicht "als Ergebnis oder Zwischenergebnis" - Sourcecode ist ja nicht das Ziel
VÖRBY: ist aber trotzdem Ergebnis oder Zwischenergebnis.
Das Ziel ist nicht immer ein Computerprogramm ("... für ein bestimmtes Computerprogramm oder einen Teil davon ...."). Ein Snippet ist für mich Quelltext, der als Copy&Paste Vorlage dient und dann angepasst wird (also nicht für _ein_ bestimmtes Computerprogramm ist, sondern der Programmierung dienlich ist). Ein Spike ist ein Begriff aus der agilen SWE - man macht einen Spike (in der Regel Code, der compiliert oder auch nicht), um eine Technologie soweit kennenzulernen, dass man mit ihr schätzen kann. Das Ziel dieses Programmcodes ist somit nicht ein Computerprogramm, sondern Erfahrung sammeln. Dasselbe passiert auch z.B. bei Trainings wo man was ausprobiert.
VÖRBY: OK, 'dazu verwendet wird' könnte noch ergänzend passen. Ich bin mir aber nicht sicher, ob solche Hilfsmittel ('Snippets', auch Copybooks etc.) wirklich 'Programmcode' SIND. Denn sie beschreiben nicht 'ein bestimmtes Programm', sondern sind nur Kopiervorlage etc., mE kein 'Programmcode' im hier definierten Sinn 'Programmstück'. Bei 'Abgrenzung' aufzählen?
Zu welchem Zweck ein Pgm erstellt wird, spielt mE keine Rolle, Pgm ist Pgm.
  • Den Satz "Zum Teil fallen sie gar nicht an ..." verstehe ich nicht
VÖRBY: Bei Interpretersystemen gibt es zB keinen Maschinencode, in manchen Sprachen keinen Zwischencode. VÖRBY
Sebastian: Verstehe - aber dann muss der Satz umformuliert werden, weil das "sie" in "fallen sie gar nicht an" bezieht sich auf "Struktur und Form"
VÖRBY: erl
  • Bei Lebensdauer würde ich nicht den Softwaretest nennen - das ist in der Entwicklung dasselbe - siehe z.B. Test Driven Development oder auch (continuous) Refactoring
VÖRBY: Habe SWT rausgenommen.
Sebastian:Bitte nimm auch noch "bzw. bis das Programm die Softwareentwicklung fehlerfrei verlassen kann." - sowas wie "fehlerfrei" oder "Softwareentwicklung verlassen" gibt es nicht.
VÖRBY: Umformuliert; dass die Lebensdauer uU nur sehr kurz ist (mit Beispiel) wollte ich konkreetisieren.
  • Den Absatz mit den Speichermedien halte ich für nicht notwendig. Frage: Ist es Programmcode, wenn ich ihn nur im Hirn habe?
VÖRBY: OK, nicht sehr wichtig. Wollte damit aber zeigen, dass 'PC' ein immaterieller Begriff ist. Maschinencode und ausführbare Datei sind begrifflich nicht dasselbe! Hirn: Ja, wenn er dort exakt nach der Syntax 'abgelegt' und abrufbar ist - :-)
Sebastian: Dann schreib doch sowas wie 'Programmcode' ist ein immaterieller Begriff und kann in unterschiedlichen Medien existieren, beispielsweise im Hauptspeicher eines Editors (während der Erstellung von Quelltext), als Member einer Programmbibliothek oder als ausführbare Datei (wenn er gespeichert wird), im Hauptspeicher des Computers (bei der Ausführung des Programms) oder auf Papier (beispielsweise in einer Quelltextliste). - vielleicht zu viele Beispiele
VÖRBY: ERL
  • Bei Quelltext zur Ausführung würde ich nicht sagen, dass Programmcode in Maschinensprache übersetzt werden muss. Ein Interpreter übersetzt ja nicht, sondern führt einfach nur (vorher vorhandene) Maschinensprache aus, die zum Programmcodestück passt.
VÖRBY: Stand so im Text, ist aber mE richtig, denn auch ein Interpreter 'übersetzt' in Maschinensprache, eben nur temporär/speicherintern. PS: Sein Input ist meistkein Code in Maschinensprache.
Sebastian: Sehe ich nicht ganz so. Sein Input ist Code, der nicht "übersetzt" wird, sondern basierend auf dem Code wird anderer Code (z.B. in Maschinensprache) ausgeführt. Übersetzen heisst für mich was anderes. Das "umgesetz" bzw. "überführt" passt aber eh (vermutlich hab ich mich nur verlesen).
  • Ich würde da auch nicht die Plattformunabhängigkeit reinbringen, da die a) bei .Net nicht wirklich gegeben ist und b) auch bei Java umstritten ist (läuft ja auf der "Java Plattform") - wenn dann Hardwareunabhängig oder so
VÖRBY: Magst Du das bitte abändern?
Sebastian: done
  • Die Beispiele für die Entwicklungsumgebungen würde ich vereinfachen und aufs wesentliche reduzieren. Die sind hier mMn zu speziell und sollten nur in den entsprechenden Artikeln (in MS-Access bzw. IBM-Großrechner oder so) stehen. Ich würde hier statt dessen nicht "Beispiele", sondern die Aufgaben von Entwicklungsumgebungen im Allgemeinen nennen - also z.B. deren Hauptaufgabe aus Programmcode Zwischencode oder Maschinensprache zu machen, aber auch andere Dinge wie Linken, statische Codeanalyse (Warnings), Debugging, und auch Decompilierung. --Sebastian.Dietrich 09:22, 24. Mär. 2015 (CET)
VÖRBY:Meine Absicht war, hier dem Leser wirklich Beispiele für die unterschiedlichen Varianten zu zeigen, in denen Programmcods auftreten können. OK, habe gekürzt.
Wichtiger fände ich, wenn auch noch einige andere Beispiele ergänzt werden würden.
Restliches war ~ in 'Werkzeuge' beschrieben, das rausgelöscht wurde. Magst du auch hier mal selbst ran?
Sebastian: Gekürzt passts jetzt mMn viel besser. Weiteres kann ja noch folgen. --Sebastian.Dietrich 21:30, 24. Mär. 2015 (CET)

Hallo und Danke für die Beteiligung. Habe meine Anmerkungen/Antworten in deinem Text oben eingestellt und, soweit klar, in den Entwurfstexten angepasst. Gibst du bitte nochmal kurz Feedback zu den Punkten. Danke. --VÖRBY (Diskussion) 18:57, 24. Mär. 2015 (CET)


Okay, ich hab mal wieder etwas den Überblick verloren und füge es daher einfach in Wiki-Manier unten an.
Was mir sofort ins Auge fällt und mMn. auch am diskussionsbedürftigsten ist: Die Abschnitte über IBM-Großrechner und MS-Access. VÖRBY, das musst du mir mal genauer erklären. Warum gehören diese Abschnitte deiner Meinung nach hier in diesen allgemeinen Artikel hinein?
Ich muss auch gestehen, dass sie mir absolut nichts sagen, was mit Programmcode zu tun hätte. Kannst du das entweder hier mal etwas erklären oder im Entwurf präzisieren? Oder einfach löschen :-) --Plankton314 (Diskussion) 23:20, 24. Mär. 2015 (CET)

Der Leser liest hier abstrakt was über 'Programmcode', und dass es je nach Fall große Unterschiede gibt. Er kann sich aber sicher nicht vorstellen, wie das - im Besonderen diese Unterschiede - konkret aussehen. Mit den jetzt beschriebenen Kurzformen ist das der Fall: Man erkennt, welche Programmcodes entstehen, wie sie aufeinander aufbauen und wie sie gespeichert und verarbeitet werden. Hierhin: Weil darin (als Beispiele!) alle Arten von auftretendem Programmcode kurz beschrieben und erläutert sind. --VÖRBY (Diskussion) 13:23, 25. Mär. 2015 (CET)
Das beantwortet aber meine Frage in keiner Weise. Was ist einer Großrechner-Programmiersprache und MS-Access von derart wichtiger Bedeutung für das Verständnis von Programmcode, dass man sie hier im Artikel zum Überbegriff als Beispiele aufführen müsste?--Plankton314 (Diskussion) 17:36, 25. Mär. 2015 (CET)
Nochmal: In diesen beiden 'Umgebungen' tritt Programmcode total unterschiedlich auf. Und das ist hier wesentlich! Gerne kannst du weitere Beispiele anfügen. --VÖRBY (Diskussion) 18:26, 25. Mär. 2015 (CET)
Kannst du bitte erklären, worin der Unterschied von der IBM-3GL-Geschichte zum herkömmlichen Kompilieren/Linken bzw. zu der Aufteilung Quell-/Zwischen-/Maschinencode besteht?
Und dann nochmal: Kannst du bitte darlegen, was an diesen Punkten dermaßen wichtig ist, dass sie hier beim Oberbegriff stehen müssen?--Plankton314 (Diskussion) 18:56, 25. Mär. 2015 (CET)
Es gibt kein 'herkömmliches Kompilieren/Linken', sondern - für eine Enzyklopädie - ist das einfach nur eine Version des Auftretens von Programmcodearten, neben vielen anderen. "Dermaßen wichtig" ist, dass die Leser (hier beim 'Oberbegriff', weil da alle Codearten zusammen behandelt werden) solche Unterschiede erkennen. Nach 3mal erläutern reicht es jetzt!! Außer, jemand ergänzt weitere Beispiele. --VÖRBY (Diskussion) 11:20, 26. Mär. 2015 (CET)
Du hast nicht nichts erläutert, sondern wiederholst nur, dass es irgendwelche Unterschiede gibt, die sich weder aus dem Text noch sonstwie erschließen. Es bleibt weiterhin unklar, warum ausgerechnet diese Beispiele aufgeführt werden sollten. Das soll hier keine lose Beispielsammlung werden. Beispiele sollen für das Verständnis des Themas relevant sein - nicht einfach nur irgendeine exotische Assoziation in einem konstruierten Zusammenhang.
Solange du nicht erklären kannst, was daran so besonders ist, sodass man es ausgerechnet hier im Artikel erwähnen muss oder wie diese Fälle voneinander und gegenüber den Unterbegriffen abzugrenzen sind, gibt es weder für das 3GL- noch für das MS-Access-Beispiel einen Grund sie im Artikel aufzuführen.--Plankton314 (Diskussion) 13:34, 26. Mär. 2015 (CET)
Wer dort keine Unterschiede erkennt (dein Text: "... die sich weder aus dem Text noch sonstwie erschließen"), kann nicht lesen. "Ausgerechnet diese": Das sind zwei sich - bzgl der PC-Verwendung!! - erheblich unterscheidende Beispielszenarien; weitere (mit wiederum andersartigen PC-Verwendungen) darf 'man' gerne ergänzen; denn dies ist "für das Verständnis des Themas relevant". --VÖRBY (Diskussion) 09:31, 27. Mär. 2015 (CET)
Mir fällt es ehrlich gesagt schwer, zwei irrelevantere Beispiele für die Thematik Programmcode zu finden, als IBM-3GL und MS-Access. Aber schön, da es hier anscheinend ein fundamentales Verständnisproblem gibt, werde ich es eben detailliert darstellen.
3GL
  • "Ein Compiler oder Assembler übersetzt [...] und erzeugt daraus in prozessorspezifischem Code ein Objektmodul." - das ist defintionsgemäß die Aufgabe jedes Compilers/Assemblers. VÖRBY: Na und?
  • "den evtl. durch einen Precompiler vorbearbeiteten"" - das ist sicherlich nicht spezifisch für 3GL VÖRBY: ist aber optional möglich, Details bei Precompiler
  • "als Textdatei vorliegenden Quellcode eines Programms" - Quelltext ist per Definition Text und liegt in einer Datei. VÖRBY: Es gibt aber auch andere Formate, nicht nur Texte; hier jedoch nicht.
  • "Mit dem 'Linkage Editor' wird der Objektcode evtl. aufgerufener Unterprogramme und sprachspezifischer Systemmodule optionsabhängig statisch oder dynamisch hinzugebunden; Ergebnis ist ein Lademodul in Maschinensprache, [...]" - wieder viel Blabla, das ausführlichst unter Linker (Computerprogramm) behandelt wird. VÖRBY: das ist nur eine sehr kurze Beschreibung; sie zeigt, dass das Maschinenprogramm hier 'Lademodul' genannt wird.
Am Ende steht hier nichts, was spezifisch für 3GL wäre und nicht bereits im Abschnitt Quelltext/Ausführung beschrieben ist. VÖRBY: Die Texte zeigen aber den Zusammenhang zwischen allen drei Varianten von Programmcode - als 1 Beispiel
MS-Access
  • "Für Anwendungen mit MS Access (einer 'IDE')" - kein Mensch glaubt ernsthaft, dass Access eine IDE wäre. VÖRBY: Die Systemdoku nennt es so. Entspricht voll und ganz auch der Definition von IDE in Wikipedia.
  • "werden Anweisungen in unterschiedlichen Grafikformaten ..." - oh, bitte (Grafikformat). VÖRBY: hier im Gegensatz zu Textdatei.
  • "... zum Teil als Texte formuliert. Dabei werden verschiedene Editoren zum Erstellen von (z. B.) Datenstrukturen, Formularen, Reports, SQL-Datenzugriffen, Makros, VBA-Anweisungen etc.) benutzt." - Was für Editoren? Was macht sie besonders? Inwiefern ist das was anderes als Studio/Eclipse/NetBeans/sonstige RADIDEs? VÖRBY: Es sind nun mal mehrere Editoren -die unterschiedliche Formate (= Quellcode) erzeugen. Im Gegensatz zu 1 Texteditor oben. Dass die Aussagen u.U. auch für andere Entwicklungssituationen gelten können, ist in der Einleitung gesagt, man kann gerne präzisierende Hinweise ergänzen.
  • "Alle so erzeugten ‚Anweisungen‘ sind ‚Programmcode‘" - Was sind das für Anweisungen? Inwiefern unterscheiden sie sich zu den Anweisungen anderer interpretierter Sprachen? Warum ist das bei Access erwähnenswert? VÖRBY: Hab schon x-mal erläutert, dass hier Access nur ein Beispiel ist, mit dem diese anderen Formen von PgmCode erläutert werden.
  • "sie werden in einer (1) Datei (mit Dateiendung MDB oder ACCDB) gespeichert und bei der Ausführung mit MS Access interpretiert und verarbeitet" - vollredundant zu Interpreter VÖRBY: Das ist nur eine minimal kurze Beschreibung, die - der Vollständigkeit halber (was passiert mit dem Pgm-Code, anders als oben?) - hier aufgenommen werden muss. Vlt. noch Links einfügen.
Klares Fazit: Diese willkürlich gewählten und exotischen Beispiele liefern absolut keinen Mehrwert ggü. der allgemeinen Erklärung im Abschnitt darüber.--Plankton314 (Diskussion) 14:38, 27. Mär. 2015 (CET) VÖRBY: Der allgemeine Einleitungstext sagt nur, dass der Programmcode ... erheblich unterschiedlich sein kann, im Detail sagt er gar nichts.
VÖRBY: Stand 29.3.: Ich gehe inhaltlich nicht auf diese Ausführungen ein. Nur soviel: Es wird hier nicht 3GL oder Access oder ein Precompiler oder ein Linker etc. beschrieben, sondern es werden Beispiele für sehr unterschiedliche Formen ... von Programmcode gezeigt. Was soll sich sonst jemand unter dem bei #FormatUnterschiede Beschriebenen vorstellen? Ich habe diesbezüglich auch den Einleitungssatz im Abschnitt 'Beispiele' präzisiert. --VÖRBY (Diskussion) 18:09, 27. Mär. 2015 (CET)
Gut, dann bleibt es draußen.--Plankton314 (Diskussion) 18:19, 27. Mär. 2015 (CET)
Texte sind Details zu Abschnitt #FormatUnterschiede, nach dorthin verschoben. mit neuen Überschriften. --VÖRBY (Diskussion) 17:15, 29. Mär. 2015 (CEST)
Das Umbenennen der Abschnitte ändert nichts an meiner zuvor ausführlich geäußerten Kritik.--Plankton314 (Diskussion) 21:06, 29. Mär. 2015 (CEST)

Ich habe Deine "Kritikpunkte" nun doch im Einzelnen beantwortet (in deinem Text mit 'sup-Format'). Zum Fazit: Jedermann erkennt, dass die abstrakte Aussage 'es gibt Unterschiede' nicht ausreichend aussagefähig ist und dass dies durch die Beispiele nachgeholt wird. --VÖRBY (Diskussion) 09:21, 30. Mär. 2015 (CEST)

Die wichtigste Frage hast du allerdings nach einer Woche Diskussion immer noch nicht beantwortet: Inwiefern sind ausgerechnet diese Beispiele repräsentativ? Hier willkürlich zwei exotische Beispiele aufzuführen bietet keinerlei Mehrwert zum Verständnis. Mit dem bloßen Argument, dass sie in irgendeiner Art und Weise "unterschiedlich" seien, könnte man den Artikel endlos mit irgendwelchen willkürlichen Beispielen vollmüllen. Warum wählt man als Beispiel nicht Java oder .NET? Hier wird die komplette Kette durchlaufen und es sind definitiv repräsentativere Beispiele, als Access/3GL.
Oder anders formuliert: Warum formuliert man den Abschnitt "Vom Quelltext zur Ausführung" nicht entsprechend allgemeiner, ohne sich in obskuren Beispielen zu ergehen?--Plankton314 (Diskussion) 14:55, 30. Mär. 2015 (CEST)
'Vom Quelltext zur Ausführung': Mir genügt schon die Diskussion hier, ich brauche keine "neues Fass".
'Ausgerechnet diese': Die Frage ist mehrfach beantwortet: Es geht nicht um 'ausgerechnet diese', aber hier wird einfach nur beispielhaft gezeigt, wie unterschiedlich PC sein kann. Warum verstehst du das nicht? Ergänze doch bitte selbst, wie das in Java oder .NET oder sonstwo konkret aussieht - wobei sichtbar Unterschiede bestehen sollten, und um DIESE geht es hier. Und ich gebe dir recht: wir brauchen davon nicht zu viele Beispiele; wenn die Aussage "Unterschiede" hinreichend erläutert ist, genügt es.
Zum Thema insgesamt (Beispiele WP-relevant oder nicht) beantworte dir bitte die folgenden Fragen:
  • Ist die Hauptaussage 'es gibt unterschiedliche Formate ...' richtig?
  • Ist sie für das Lemma Programmcode eine wesentliche Aussage?
  • Versteht man ohne (die) Beispiele, was gemeint ist?
Aber sicher kommst du auch hier wieder zu Nein-Aussagen. Mir genügt es dann mal wieder. --VÖRBY (Diskussion) 19:39, 30. Mär. 2015 (CEST)
Ich ergänze die Beispiele bewusst nicht um Java/NET/usw., weil wir diese Ausführungen in mehr als hinreichender Breite in den verlinkten und auch entsprechenden Artikeln haben. Genau das soll nämlich nicht stattfinden: Es soll hier keine Redundanz zu Artikeln aufgebaut werden, die das alles bereits im Rahmen ihres klar definierten Themas behandeln.
Beispiele dienen dazu, einen komplexen Sachverhalt an einem konkreten Anwendungsfall zu erläutern. Daneben sollen sie auch hinreichend repräsentativ sein, denn sonst können sie nicht nachvollzogen werden. Daher ein klares Ja, man muss definitiv auch ohne Beispiele verstehen können, was gemeint ist. Beispiele sollen diesen Weg nur abkürzen, sind aber keinesfalls für einen enzyklopädischen Artikel notwendig.
Und genau darum geht es hier: Es soll erst der Sachverhalt klar beschrieben werden und danach kann man sich Gedanken um Beispiele machen. Daher ist die Frage nach unterschiedlichen Formaten in diesem Kontext auch irrelevant, weil ihre Antwort in der Beschreibung und nicht in den Beispielen liegen muss. Und auch durch die jüngst stattgefundene Kürzung und Verschiebung des beschreibenden Abschnitts hinter diese Beispiele, bewegen wir uns von diesem Ziel immer weiter weg. Darum fände ich es auch richtiger/wichtiger zu überlegen, wie man die Beispiele in den Abschnitt Quelltext/Ausführung einarbeiten könnte.--Plankton314 (Diskussion) 22:13, 31. Mär. 2015 (CEST)
In den Einzelartikeln ist diese Sicht NICHT beschrieben. Und sie gehört dort auch nicht hin, weil HIER bewusst auf den Aspekt 'Programmcode' abgestellt wird - was in den Einzelartikeln (in der Regel) nicht der Fall ist. Hatten wir aber schon x-mal.
Beispiele: In den meisten Artikeln gibt es Beispiele. Und das ist auch gut so. Deine Ausführungen halte ich für Formal-Geschwafel, das hier nicht passt.
Repräsentativ: Du willst einfach IBM und Microsoft nicht im Artikel finden. Für diese Plattformen gibt es aber Zig-Tausend von Entwicklern.--VÖRBY (Diskussion) 10:58, 1. Apr. 2015 (CEST)
Lustig, dass ausgerechnet du von Geschwafel sprichst. Diese ganze Diskussion ist der Nachhall deines Artikelversuchs "Übersetzer", dessen Reste du hier abgeladen hast, nachdem sie sich nicht für einen eigenständigen Artikel qualifiziert haben und mit deren Spätfolgen wir uns jetzt Jahre später noch auseinandersetzen müssen.
Und bitte stelle es jetzt nicht so dar, als ob deine Beispiele mit Access und 3GL in irgendeiner Weise weit verbreitet und repräsentativ wären. Aus diesen exotischen Beispielen auf einmal ein allgemeines IBM und Microsoft zu machen ist schon ein bißchen sehr weit hergeholt. Wenn es hier um das Studio gehen würde, würde ich überhaupt nichts sagen, aber ein Datenbanksystem als IDE zu verkaufen und so zu tun, als ob man damit Softwareentwicklung betreiben würde, ist schon eine sehr spezielle Perspektive.--Plankton314 (Diskussion) 11:48, 1. Apr. 2015 (CEST)

(*einmisch*)

Ich denke, Vörby will v.a. zeigen, dass

  • in einer Situation gelten kann: "Quelltext" = Text + Text + Text
    (am Beispiel IBM 3GL)
  • in einer anderen: "Quelltext" = Text + (grafisches) Formular + (zusammengeklickte) (SQL-)Abfrage + Berichts-Template-Dokument + (grafisches) Datenflussdiagramm + Ressourcen(Icons,Sounds,Bilder,Texturen) + 3D-Modell-Daten + ...

Ob man für ersteres jetzt IBM 3GL oder Pascal oder Java nimmt, egal. Ebenso könnte man die Vielfalt im zweiten Beispiel vmtl. auch mit .NET verdeutlichen.

Richtig? --arilou (Diskussion) 13:10, 31. Mär. 2015 (CEST)

Danke für den Senf. Ja, so ähnlich - was Quellcode betrifft: Bsp-1 nur Text in einer (1) Textdatei, Bsp-2 viele verschiedene Formate/Artefakte (mit Sourcecode-Charakter!). Plus: Manchmal gibt es Maschinencode, manchmal nicht. Plus: PgmCode wird anders genannt. Die beschriebenen Bsp-Details treffen nun mal exakt für die beiden genannten Plattform so zu; weitere Bsp könnten/sollten ergänzt werden.
Es geht also um konkrete Erklärungen für die abstrakten Aussagen im Einleitungstext. --VÖRBY (Diskussion) 14:33, 31. Mär. 2015 (CEST)
Würden wir uns diese allgemeine und offene Perspektive zu eigen machen, gäbe es praktisch keine Grenzen mehr, was man alles als Programmcode verstehen könnte. Es würde bedeuten, dass man jede speicherbare und reproduzierbare Aktion eines Computers als Programmcode auffassen könnte.
Nach ein paar Runden ist dann plötzlich auch eine Excel-Tabelle Programmcode, weil sie die gleichen Anweisungen (zB. grafische Darstellung oder sogar Makros) auf dem System ausführt. Ich bin mir auch sicher, jemand behauptet, dass SQL-Abfragen Programmcode seien, weil sie irgendwo anders eine bestimmte Ausführung bewirken würden. Oder auch ein aufgezeichnetes Computerspiel wäre auf einmal Programmcode, denn es bewirkt den wiederholten Ablauf exakt der gleichen Anweisungen im Spiel, sooft es nur replayed wird.--Plankton314 (Diskussion) 22:13, 31. Mär. 2015 (CEST)
Jedenfalls werden Makrotexte in einer BooksGoogle-Referenz als "... ein kleines Stück Programmcode, das ... durch ein größeres Stück Programmcode ersetzt wird" definiert. Und warum soll SQL-Code kein 'Programmcode' sein? Er legt fest, was das Programm TUN soll. Genauso wie bei 'NI' das Blockdiagramm (als formal eindeutiges Konstrukt) als PC bezeichnet wird. Alles setzt voraus, dass man es um 'Programme' geht. Ist eine Excel-Tabelle ein 'Programm'? JEIN.
--VÖRBY (Diskussion) 10:58, 1. Apr. 2015 (CEST)
Naja, wie gesagt sind das hier alles Meinungen. Wenn es einigermaßen vernünftige Literatur gibt, die aussagt, dass Excel-Tabellen, SQL-Abfragen und Spiele-Recordings Programmcode darstellen... Okay, von mir aus. Wir bilden Wissen ja nur ab und erfinden es nicht neu.--Plankton314 (Diskussion) 11:56, 1. Apr. 2015 (CEST)
PS: Ach ja, und Literatur sind natürlich nicht irgendwelche Diplom-/Bachelor-/Master-/Studienarbeiten, Berichte o.ä. wo der Begriff nur implizit verwendet, aber an keiner Stelle definiert wird.--Plankton314 (Diskussion) 12:24, 1. Apr. 2015 (CEST)

Mir fallen im Moment zwei Möglichkeiten ein, wie wir uns aus diesem scheinbaren Dilemma bzgl. des Artikelinhalte ziehen könnten:

  1. Wir diskutieren weniger über Meinungen und mehr anhand konkreter Fachliteratur/Quellen, was man in einen Artikel schreiben könnte.
  2. Und/oder man findet einen passenderen Ort diese Thematik und setzt dabei das Thema "Programmcode" etwas zurück. ZB. gibt unter Computerprogramm #Vom Algorithmus zum Programm bereits einen Abschnitt, der versucht, diese Zusammenhänge zu knüpfen.

?--22:18, 31. Mär. 2015 (CEST)

Ich schlage auch vor, einzelne Aussagen noch mit Belegen zu untermauern. Es geht hier um 'Programmcode', warum also "etwas zurücksetzen"? Es wird aber auch hier so sein wie in vielen IT-Lemmas: Es gibt viele und unterschiedliche und unterschiedlich enge/breite Definitionen und Interpretationen. Das wäre dann vielleicht noch ein eigener Abschnitt im Lemma. --VÖRBY (Diskussion) 10:58, 1. Apr. 2015 (CEST)
Bis auf Beispiele sind wir denke ich einer Meinung, dass der Vorschlag besser ist als der aktuelle Artikel. Sollten wir den Vorschlag nicht mal (bis auf die Beispiele) in den Artikel stellen und extra über die Beispiele diskutieren? --Sebastian.Dietrich 20:10, 1. Apr. 2015 (CEST)
Pragmatischer Kompromissvorschlag, danke. Ich sehe allerdings in der Disk um die Beispiele keine Konsensmöglichkeit mehr. Außer: Wenn jemand "weniger exotische Beispiele" beschreibt, in denen aber mögliche Unterschiede gleichermaßen gezeigt werden, ist mir das auch recht. --VÖRBY (Diskussion) 09:30, 2. Apr. 2015 (CEST)
Ich schließe mich da Sebastian an. Es fällt auch leichter Änderungen im Artikel nachzuverfolgen.
@VÖRBY: Da es dein Textentwurf ist, macht es (der späteren Nachvollziehbarkeit) Sinn, wenn du es einfach auf umseitig hinkopierst.--Plankton314 (Diskussion) 11:25, 2. Apr. 2015 (CEST)
Erledigt, ohne Beispiele. --VÖRBY (Diskussion) 12:03, 2. Apr. 2015 (CEST)

Beispiele: JN / welche?[Quelltext bearbeiten]

(Fortssetzung von der vorhergehenden Diskussion.

Ist nun klar, was mit den Aussagen im Abschnitt Programmcode#Formale Unterschiede konkret gemeint ist? Wenn ja, kann die obige Diskussion als beendet betrachtet werden. Ansonsten müsste man sich überlegen, was noch an Beschreibung fehlt. --VÖRBY (Diskussion) 16:44, 11. Apr. 2015 (CEST)

Verwalteter und nicht verwalteter (Programm-)Code[Quelltext bearbeiten]

Hi, zu einer Deiner Anpassungen in Programmcode habe ich eine Anmerkung: Der Spiegelpunkt 'verwaltet/nicht verwaltet' passt nicht in die dort gegebene Klassifizierung, sondern betrifft eine oder beliebige dort aufgeführte Programmcode-Arten. Der Begriff ist nicht allgemeingültig, sondern gilt für unterchiedliche Programmcodearten und tritt nur in bestimmten Entwicklungsumgebungen auf. Außerdem beschreibt der Text hier, wie der Code speichertechnisch behandelt wird - was HIER nicht behandelt wird. Ich würde diesen Aspekt deshalb aus der gegebenen Aufzählungsmenge herausnehmen und ihn nach unten in den Fließtext verschieben - oder gar diesen Text (weil er etwas ganz anderes beschreibt) hier wieder entfernen. --VÖRBY (Diskussion) 10:01, 5. Feb. 2018 (CET)

Nach nochmaligem Lesen habe ich diese Textverschiebung (nach Textumbau) nach unten vorgenommen, siehe [21]. Bin aber der Ansicht, dass der Aspekt Speicherverwaltung überhaupt nicht in den Abschnitt 'Arten' gehört, weil das auch für andere PgmCode-Arten nicht behandelt wird. Zusätzlich wird die OMA nicht verstehen, was mit 'Speicherverwaltung' gemeint ist. --VÖRBY (Diskussion) 12:21, 5. Feb. 2018 (CET)

(Vorstehende Beiträge wurden nachträglich von der Besprechungsseite unter Benutzer Diskussion:4osuvfa hierher, nach Diskussion:Programmcode geschoben, da es dabei nicht um die betreffende [Benutzer-]Anmeldung sondern um den hier, nebenan behandelten Eintrag geht.)

Hallo VÖRBY, also daß es allein um die Speicherverwaltung geht, war leider dein eigenes Mißverständnis gegenüber meinen Einarbeitungen heute. Mir ging es bei den betreffenden Ergänzungen in der Hauptsache lediglich um die nun auch hier oben (in der nun aussagekräftiger benannten Abschnittsüberschrift) genannten (Unter-)Begrifflichkeiten, was ich im Übrigen auch schon mit der ersten betreffenden Änderung (in der Zusammenfassung mit „+„verwalteter […]“ und „nicht verwalteter Code“[22]) versucht hatte deutlich zu machen. Zudem ist die genannte Speicherverwaltung auch nur ein Teil dessen, was mit derartigem (Programm-)Code verwaltet werden kann, was ich ebenfall auch schon versucht hatte deutlich zu machen (siehe auch in einer der nachfolgenden Zusammenfassungen mit „letztgenannte [Unter-]Begrifflichkeit erweitert – da [mittlerweile] wohl nicht nur der Speicher verwaltet wird, siehe auch "https://docs.microsoft.com/de-de/dotnet/standard/managed-code" […][23]). Im Übrigen hatte ich diesen Teil hier, nebenan eingearbeitet, weil ich (auch nach längerem Suchen) keinen besseren Ort dafür gefunden hatte. Schließlich möchte ich hier noch zu bedenken geben, daß der auch mit Programmcode bezeichnete Begriff (nebenan) sowohl oben (im Abschnitt zu den [Unter-]Arten) als auch unten, nach wie vor (meiner Ergänzung) im nachfolgenden Abschnitt (unter Abgrenzung/Mehrdeutige Verwendung des Begriffs) auch schon im gegensätzlichen Sinne – also (vor allem wohl hinsichtlich der ersten Programmiersprachen, welche, wie etwa C, wenigstens anfänglich noch keine Interpreter und [Bedarfs-]Übersetzer [oder JIT-Compiler] kannten) als „Quellcode“ (oder auch „Quelltext“ und „Programmtext“) auf der einen und als „Maschinencode“ (also in Maschinensprache) auf der anderen Seite – beschrieben wurde. -- 4osuvfa, am 5.2.2018, 15:23 (MEZ)
@4osuvfa: Ich kann leider Deinem Kommentar durch die vielen Links, Klammern, Nebensätze, Verweise auf "nebenan" usw. kaum entnehmen, was Du sagen willst. Ich hatte Deine Ergänzung, weil sie logisch nicht zu dem bereits vorhandenen Klassifikationsschema passt, dort ausgegliedert. Offensichtlich bist Du aber mit der aktuellen Textfassung einverstanden, ich halte die Disk insofern für erledigt. Vielleicht könntest Du den Aspekt Speicherverwaltung dort im Lemma unterbringen, denn vergleichbare Detailaussagen sind im Artikel bisher nicht vorhanden. Andernfalls kann ich mit dem IST ebenfalls 'leben'. Grüße von --VÖRBY (Diskussion) 17:26, 5. Feb. 2018 (CET)
Keine Sorge, deine Beiträge (u.a. mit einer für mich unverständlichen Abkürzung „i.Z.“[24] oder auch mit Verweisen wie „dort im Lemma“) zu verstehen, fällt mir auch nicht leicht. :-) Im Übrigen hatte ich mein „nebenan“ oben (wie hier eigentlich auch im Wiki üblich) einmal (bei Erstnennung, hier im Abschnitt) verknüpft und dann dessen Bedeutung (hier, auf der zugehörigen Besprechungsseite) nicht mehr geändert, .. naja, seis drumm. Der betreffende Abschnitt nebenan (um auch auf deine Frage, mit „Stand ok?“ einzugehen) kann von mir aus erstmal so bleiben – bis irgendwer mal was Besseres findet. Der Weißheit letzter Schluß ist das nämlich sicher auch noch nicht. Zudem war mir bei dessen Übernahme aus dem Eintrag .NET Framework (siehe auch zugehörige Änderung) auch noch sogenannter „unsicherer Code“ (wohl auch im Sinne von nicht verwaltetem Code) aufgefallen, welcher sicherlich auch noch hier (nebenan) allgemeiner (im Zusammenhang mit den dort genannten „Zeiger-Operationen“) beschrieben werden könnte, und – auch im Nachhinein erst bemerkt – ist dieser Begriff wohl auch im Zusammenhang mit unsicherem Kontext zu verstehen, welcher ebenfalls im oben schon genannten Verweis, auf der Seite unter https://docs.microsoft.com/de-de/dotnet/standard/managed-code (wohl erstmals am 20.6.2016) genannt wurde. -- 4osuvfa, am 6.2.2018, 06:34 (MEZ)

Wenn von 'Programmcode' die Rede ist, entspricht die jetzige Definition (Was ist Pgm-Code?) wohl dem allgemeinen Verständnis. Dass Programmcode weitere Eigenschaften/Attribute aufweisen kann, steht außer Zweifel. Diese sollten aber m.E. besser bei den jeweiligen Ausprägungen (Quelltext ...) beschrieben, vielleicht auch unter 'siehe auch' verlinkt werden. Passt also vorläufig. Erledigt. --VÖRBY (Diskussion) 08:14, 6. Feb. 2018 (CET)

Ich habe die Artikelstruktur überarbeitet und Textteile umgruppiert. Unter Arten sollten neben Quell-, Zwischen- und Maschinencode keine weiteren erscheinen; Besonderheiten von Codevarianten beziehen sich ja immer auf eine dieser drei Arten. Den Text zu 'managed ...' habe ich bei 'Formales' eingestellt, weil dort schon strukturelle Unterschiede behandelt sind; Ähnliches ist allerdings schon bei "Vom Quelltext zur Ausführung" beschrieben.
Zu zwei Referenzen habe ich das '~siehe' wieder eingefügt, weil ein Beispiel etwas anderes ist als ein Zitatbeleg.--VÖRBY (Diskussion) 12:54, 7. Feb. 2018 (CET)