Diskussion:Computerprogramm

aus Wikipedia, der freien Enzyklopädie

Erstes Thema: 1/3 als Programm schreiben mit C++?

1/3 als programm schreiben mit c++
Hilfe
(Der vorstehende Beitrag stammt von 82.83.70.229 – 11:44, 18. Sep. 2004 (MESZ) – und wurde nachträglich signiert.)

Vorschlag zum 'Decompiler'

Vorschlag zum 'Decompiler': Mittels spezeller Programme, sogenannten Decompilern, ist es möglich, aus dem Maschinenkode wieder einen in Hochsprache lesbaren Quelltext zu erzeugen.
Die Aussage, das verdunkelter Quelltext nicht mehr lesbar sei, ist wohl nicht richtig. Nur der Aufwand für die logische Analyse erhöht sich ggf. beträchtlich. Aber auch dabei kann ein Computerprogramm helfen ;-))--Heliozentrik 19:21, 26. Apr 2005 (CEST)

Computerprogramm als Folge von Befehlen?

Es fehlt die "Menge von Eigenschaften", die ein Computerprogramm einer deklarativen Programmiersprache ausmachen (vgl. Deklarative Programmierung), oder? Die Beschreibung umfasst im Moment nur imperative Programme.
(Der vorstehende Beitrag stammt von 84.137.126.208 – 19:34, 12. Okt. 2006 (MESZ) – und wurde nachträglich signiert.)

Ja das stimmt, und es ist immer noch so. Eigentlich sollte man berichtigen:
Ein Computerprogramm oder kurz Programm ist eine den Regeln einer bestimmten Programmiersprache genügende Folge/Menge von Anweisungen (bestehend aus Deklarationen und Instruktionen (bei imperativen Sprachen) oder sonstigen Eigenschaften/Einstellungen (bei deklarativen Sprachen)), durch die auf einem Computer eine bestimmte Funktionalität, Aufgaben- oder Problemstellung bearbeitet/gelöst werden kann.
Die Zusätze zu 'imperativ' und 'deklarativ' könnte man evtl. auch weglassen, dann bliebe lediglich 'Anweisungen' übrig - unter denen man auch deklarative Konstrukte subsummieren kann. Da dieses Lemma ein sehr zentrales ist, möchte ich diese Änderung aber nicht undiskutiert einstellen. Noch besser wäre natürlich eine auf einer validen Quelle beruhende, vollständige Definition. Ich werde mich mal umschauen.--VÖRBY (Diskussion) 09:59, 25. Aug. 2013 (CEST)
Die aktuelle Definition "...ist eine den Regeln einer bestimmten Programmiersprache genügende Folge von Anweisungen (bestehend aus Deklarationen und Instruktionen), um auf einem Computer eine bestimmte Funktionalität, Aufgaben- oder Problemstellung bearbeiten/lösen zu können" ist aus der DIN. So ohne Weiteres sollte man da nicht reinfummeln. Ich denke, mit "Anweisungen" wird eine Formulierung benutzt, die auch für deklarative Sprachen gelten kann. Insofern sollte die Definition passen.
Weiteres im bisherigen Text (#Übersicht) habe ich heute bearbeitet:
  • Absatz 1: Ausführbare Datei liegt nicht immer, sondern nur 'häufig' als Maschinencode vor; Zwischencode/Interpreter/Laufzeitsysteme wurden hier unterschlagen.
  • Absatz 2: Dass mit 'Computerprogramm' beides, der ausführbare Code und der Quellcode (> 'Anweisungen') gemeint sein kann.
Insofern halte ich DIESE Diskussion hier für Erledigt.
Dieser Abschnitt kann archiviert werden. VÖRBY (Diskussion) 12:49, 14. Sep. 2013 (CEST)

Wie ist das bei Scriptsprachen?

Was ist mit Erzeugnissen von Scriptsprachen? Auch mit einer solchen können Programme erzeugt werden, und formell gesehen zählen sie nicht zu den Programmiersprachen.
(Der vorstehende Beitrag stammt von 87.187.250.213 – 16:37, 13. Dez. 2007 (MEZ) – und wurde nachträglich signiert.)

Bitte überarbeiten

Der Artikel bedarf dringend einer Überarbeitung....
(nicht signierter Beitrag von 109.90.116.217 (Diskussion) 06:28, 21. Aug. 2010 (CEST))

Abgrenzung zu Software

Folgende Unterscheidungsmerkmale hebeln die Abgrenzung zum Artikel Software aus.

Es geht hier nicht mehr um die Technik sondern um den Nutzen. Und dafür ist der Artikel Software da. Auch bei den anderen Unterscheidungsmerkmalen bin ich skeptisch, ob die Erwähnung hier der "richtige" Ort ist. -- Avron 21:45, 1. Jan. 2011 (CET)

Hast Recht, ist mir auch schon aufgefallen. Ich habe vor, die unter 'Software' schon vorhandenen Klassifizierungskriterien aus 'Computerprogramm' herauszunehmen und nur die Pgm-spezifischen dort zu belassen - mit Link auf 'Software'. Hab es erst später gesehen. Viele Grüße --VÖRBY 10:36, 2. Jan. 2011 (CET)
Hab die Korrektur vorgenommen. Die anderen Kriterien aber dort belassen; sie passen m.E. dorthin. Ich habe auch vorne in der Einleitung einen Verweis auf Software eingestellt.
Schau bitte auch mal in Software bezüglich meiner Änderung zu 'Daten' in Absatz, der SW "weiter gehend" definiert. --VÖRBY 16:45, 2. Jan. 2011 (CET)

Chaosbefehl

Gibt es auch so etwas wie einen CHAOSBEFEHL der den Bildschirm rot werden lässt und man dann nichts mehr machen kann? -- 217.226.41.37 18:23, 30. Mär. 2011 (CEST)

Ja, gibt es. Allerdings scheint eine ausführliche Beantwortung dieser Frage nichts mehr mit dem Artikel hier zu tun zu haben. Aber wenn du dich für kaotische Befehle interessierst, dann schau mal unter Fehlerbehebung, Debugger und ähnliches oder, wenn dich das Gegenteil von ordentlicher oder nützlicher Programmierung interessiert, dann sind die Stichwörter Schadprogramm oder Skriptkiddie (im Sinne von WP:Uga natürlich) möglicherweise eher deine Baustelle. :-) MfG, 85.179.129.77 16:28, 27. Jan. 2012 (MEZ)

Berechnungsprogramm ist kein sinnverwandtes Wort für Computerprogramm?

Zitat aus der Versiongeschichte: „Berechnungsprogramm ist kein Synonym für Computerprogramm“
Gibt es für diese Behauptung einen Beleg? Wohl kaum. Aber daß das Wort Computer (was nebenbei bemerkt auf Deutsch eigentlich Komjuter geschrieben werden müßte, wenn dessen immer wieder gepredigte Ami-Aussprache unbedingt erhalten bleiben soll/muß) übersetzt Rechner bedeutet, dürfte hier doch jedem klar sein, oder? Und daß ein Berechnungsprogramm oder – nicht nur für rein mathematische sondern allgemeiner auch für algorithmische Berechnungen (siehe auch Berechenbarkeit) geschriebenes Programm – und etwas kürzer (ein) Rechenprogramm kein sinnverwandtes Wort (Synonym) sein soll, erscheint nur wenig glaubwürdig zu sein. --85.179.129.155 16:50, 27. Jan. 2012 (CET)

Sorry, aber Deine Änderung muss belegt werden - also die Gleichsetzung von Berechnungsprogramm mit Computerprogramm - und nicht umgekehrt. --Doc ζ 17:06, 27. Jan. 2012 (CET)
Da dir die obige Ausführung nicht zu genügen scheint, werde ich nun nach Belegen suchen und diese ggf. in der Löschdiskussion zur Seite Berechnungsprogramm nennen. --85.179.129.155 17:14, 27. Jan. 2012 (CET)
Habe es nun eingesehen, daß diese Übersetzung nicht ganz richtig war. Wie wäre es denn dann mit dem Rechnerprogramm? --92.225.59.74 10:08, 28. Jan. 2012 (CET)
Hier gilt das gleiche: Man muss die Definition und Verwendung anhand von Quellen belegen. Ansonsten ist es Theoriefindung (original research). --Doc ζ 12:25, 28. Jan. 2012 (CET)
Achso, dann stellen wir uns also dumm, solange sich nicht mindestens ein (sehr gut bezahlter/besoldeter) Doktor bereiterklärt hat, sein Wissen mit der Gemeinschaft zu teilen. Sofiel also zum (ehemaligen) Wikiprinzip.[1][2] --92.224.251.33 09:13, 4. Feb. 2012 (CET)
Es geht nicht um sie Art der Erstellung (Wikiprinzip), sondern um den Inhalt, d.h. hier wird versucht eine Enzyklopädie zu erstellen, die etabliertes Wissen enthält. Das Lesen des obigen Links (Theoriefindung) ist da sehr hilreich. --Doc ζ 11:03, 4. Feb. 2012 (CET) Meinerseits ist hier EOD.

Fehlerhaft

Mir sind beim Durchlesen zwei Dinge aufgefallen. Vorangestellt finde ich die beispielhafte Auslegung des Programmier-Vorganges sehr gut gelungen, aber möglicherweise fehlplatziert, da es sich um den Vorgang des Erstellen eines Programms (Algorithmus auswählen/ausdenken und implementieren) handelt.

Wenn man beim „Berücksichtigen aller Sonderfälle“ feststellt, dass man bei 3. beginnen muss, ist m.E. der Algorithmus fehlerhaft. Das sollte man auch so benennen und dies als typischen Vorgang der Programmentwicklung aufzeigen (gibt's dafür einen Namen?): Algorithmen werden oft erst bei ihrer Implementierung vollständig klar.

Unter „Sonderfälle“ würde ich eher das Abprüfen von Eingabedaten betrachten, etwa Null oder negative Zahlen, die den Algorithmus unendlich machen würden. Die Null bleibt tabu, negative Zahlen könnte man vorher negieren und so die möglichen Eingabedaten erweitern.

Zum letzten Abschnitt:

Ein weit verbreitetes Märchen ist, dass Interpreter ein Programm zur Laufzeit in Maschinensprache übersetzen. Das ist schlichtweg falsch. Das machen Just-In-Time-Compiler. Egal, ob es sich um Quellkode oder Zwischenkode handelt.

Siehe Interpreter, da steht's richtig.

--Henrik Haftmann (Diskussion) 13:22, 11. Okt. 2012 (CEST)

Im Abschitt Lebenpahsen die Unterscheidung von Compilezeit und Laufzeit mit den Lebenszyklen des Programms in Verbindung zu bringen erscheint mir nicht sinnvoll und muss für einen Neuling ziemlich verwirrend sein --85.177.207.74 10:34, 24. Jul. 2013 (CEST)

Ich habe dort Korrekturen vorgenommen, die vielleicht das Verständnis erhöhen können.--VÖRBY (Diskussion) 11:30, 25. Jul. 2013 (CEST)

"auch Programm"

Das ist schwammig und unpräzis. Programme hatten auch z.B. die Lochstreifen der Webmaschinen in 19. Jahrhundert und später eingestanzt, das ist nicht eine ausschliessliche Domäne der Rechner. Ich denke, es sollte zusätzlich ein Artikel "Programm" erstellt werden, hab allerdings selber nicht die Zeit dazu --2A02:120B:2C6A:1B80:C187:A3E9:8B9B:249F 16:08, 2. Jun. 2016 (CEST)

Ich denke, dass dazu ein entsprechender kurzer Hinweis unter #Geschichte genügen würde - wo im ersten Unterabsatz bereits ein Programm beschrieben wird, das nicht von einem Computer ausgeführt wurde. Im Übrigen ist 'Programm' wohl einfach umgangssprachlich die Kurzform - was in der Einleitung erwähnt werden könnte. Ansonsten sollte die BKS Programm ausreichend sein; einen weiteren Artikel für 'Programm' (i.S. allgemeingültig und nicht auf Computer/Elektronisches bezogen) halte ich für nicht sinnvoll. --VÖRBY (Diskussion) 20:49, 2. Jun. 2016 (CEST)
Aktuell [3] wurde in Programmieren ein neuer Abschnitt 'Geschichte' eingefügt, in dem auf die Analytical Engine und den ersten Compiler verwiesen wird. Dies ist hier im Artiikel bereits beschrieben, wäre also grundsätzlich redundante Information. Vielleicht kann man dies aber tolerieren. Der o.g. Hinweis auf die 'Programme' von Webmaschinen wurde aber nicht ergänzt; ebenfalls tolerabel. --VÖRBY (Diskussion) 17:44, 7. Jun. 2016 (CEST)
Dieser Abschnitt kann archiviert werden. VÖRBY (Diskussion) 17:44, 7. Jun. 2016 (CEST)

was ist mit ADA?

In der heutigen Bearbeitung (https://de.wikipedia.org/w/index.php?title=Computerprogramm&curid=919&diff=219304210&oldid=219087301&diffmode=schnark) wurde der Text zu den Programmen von Babbage verändert; soweit so gut. Dabei wurde auch der Abschnitt === Das erste Computerprogramm von Ada Lovelace === weitgehend gelöscht - und dabei auch die Abschnittsüberschrift entfernt, sodass die verbleibende letzte Zeile jetzt zum Babbage-Abschnitt gehören soll. Ist das ok? --VÖRBY (Diskussion) 10:10, 19. Jan. 2022 (CET)

Ich finde die Löschung des Abschnitts nicht in Ordnung. --Doc ζ 17:09, 19. Jan. 2022 (CET)
Ok, danke; habs wieder hergestellt.--VÖRBY (Diskussion) 19:35, 19. Jan. 2022 (CET)
Ada Lovelace gilt nicht unverdient als die erste Computerprogrammiererin überhaupt. Denn während Charles Babbage zwar die Analytical Engine entwarf, war es Ada, die erstmals verstand, dass man diese Maschine auch nach unserem heutigen Verständnis programmieren könnte: Perhaps more importantly, the article contained statements by Ada that from a modern perspective are visionary. … The idea of a machine that could manipulate symbols in accordance with rules and that number could represent entities other than quantity mark the fundamental transition from calculation to computation. Ada was the first to explicitly articulate this notion and in this she appears to have seen further than Babbage. She has been referred to as 'prophet of the computer age'. Certainly she was the first to express the potential for computers outside mathematics. In this the tribute is well-founded.ref
Auch in der Encyclopædia Britannica ist Ada Lovelace als die erste Programmiererin angeführt.ref
Das sollte definitiv in den Artikel. ‣Andreas 20:01, 19. Jan. 2022 (CET)
Habe den Abschnitt zu Charles Babbage nun ausgeklammert, denn in der Literatur gilt er als derjenige, die die Difference Engine und später die Analytical Engine zwar erdacht und, im Falle ersterer, auch gebaut hat, aber er hat nicht verstanden, was ein Computerprogramm ist. Er hat sicher auch Programme für seine Analytical Engine geschrieben, aber immer im Denken seiner Rechenmaschine für Tabellen, während Ada Lovelace das Computerprogramm – die Software – von der Maschine – der Hardware – getrennt ansah und erkannte, dass man auf ein und derselben Maschine mehrere ganz unterschiedliche Programme ablaufen lassen kann.
Das erste Computerprogramm in diesem Sinne ist daher von ihr. Der erste Computer ist von Charles Babbage, allerdings nur, wenn man unvollendete, nicht fertig gestellte "Computer" – was die Analytical Engine zweifelsfrei ist – mit einbezieht.
Andreas 16:03, 20. Jan. 2022 (CET)
Das Babbage nicht verstand, was ein Computerprogramm ist, halte ich für unhaltbar und verweise dabei auf die babbage papper , wo seine Programme und Codelogik(adressierung, IF-THEN) archiviert sind.. --Aletheix (Diskussion) 10:24, 21. Jan. 2022 (CET)

Bei der Korrektur geht es um den Eintrag des ersten Computerprogramms. dazu schreibt jemand ...aber er hat nicht verstanden, was ein Computerprogramm ist. Er hat sicher auch Programme für seine Analytical Engine geschrieben, aber immer im Denken seiner Rechenmaschine für Tabellen, während Ada Lovelace ...blabla

Ob Babbage nun verstand, was ein Program ist, ist nebensächlich. Bewiesen ist, das er solche Programme schrieb und auch die codelogik(IF-THEN) dazu erfand.

Die Leistungen von Ada Lovelace möchte ich damit nicht in Abrede stellen. Das erste Program aber schrieb Charles. (nicht signierter Beitrag von Aletheix (Diskussion | Beiträge) 10:10, 21. Jan. 2022 (CET))

Das mag alles sein. Das Problem, das ich dabei habe, ist jenes der Belegpflicht, spezifisch gem. Wikipedia:Belege das Fehlen von Sekundärliteratur: Zu beachten ist jedoch, dass fehlende wissenschaftliche Sekundärliteratur bei vielen Themen auf fehlende enzyklopädische Relevanz hindeutet.
Wenn Babbage Computerprogramme schon vor Ada Lovelace geschrieben hätte, sollte es dann nicht auch Bücher darüber geben, in denen das genau so abgebildet ist? Alle Bücher, auch sehr aktuelle von vor wenigen Jahren, sehen das aber anders, denn in der Sekundärliteratur heißt es immer, dass Ada Lovelace das erste richtige Computerprogramm geschrieben hätte, und nicht Charles Babbage.
Zitat (englisch): Ada Lovelace’s truly great insight was that basically all information could be represented by symbols and put into a machine for the machine to use. This was Lovelace’s leap of imagination, her “Combining Faculty”. While Babbage focused on numbers and mechanics, Lovelace looked to “poetical science.”Google Buch
Zitat: Es war die englische Mathematikerin Ada Lovelace, die diese Übersetzungsarbeit fortführte und weiterentwickelte. Sie tauchte in die Funktionsweise der Maschine ein und verstand, wahrscheinlich mehr noch als Babbage, welches Potential in ihr steckte. Lovelace schuf insbesondere einen komplexen Code, mit dem sich die Bernoulli-Kette berechnen ließ. Die huntert Jahre zuvor von dem Schweizer Jakob Bernoulli entdeckte Zahlenfolge ist für die Infinitesimalrechnung extrem nützlich. Der Code wird als das erste Computerprogamm überhaupt angesehen. Ada Lovelace ist damit die erste Programmiererin der Geschichte.Google Buch
Beide Bücher sind weniger als fünf Jahre alt (2020 und 2018).
Ich halte die Autoren von Büchern über Charles Babbage und Ada Lovelace, und über Computer und Computerprogramme, allesamt nicht für Idioten. Im Gegenteil, ich muss davon ausgehen, dass die Autoren ihr Thema ordentlich recherchiert haben. Und, wenn es 9 Bücher gibt, die das eine sagen, aber nur eines, dass es anders sieht, dann ist auch klar, dass sich die Masse der Autoren einig ist, wie es ist. (Nachtrag: was bei Ada Lovelace und dem ersten Computerprogramm aber nicht der Fall ist: alle sind sich einig. Ich habe kein Buch gefunden, dass das anders sehen würde... ‣Andreas 11:34, 21. Jan. 2022 (CET))
Primärliteratur hat einen entscheidenden Nachteil: Ich und Du, wir alle, müssten uns einarbeiten, die "Babbage-Maschine" programmieren zu können. Weil wir das nicht können, ist es schwer, primäre Quellen zu interpretieren. (Genau dafür ist ja eigentlich Sekundärliteratur da.) Wenn du das also so interpretierst, dass der Code von Charles Babbage bereits Computerprogramme in dem Sinn sind, mit Schleifen, Sprunganweisungen, bedingten Anweisungen und Verzweigungen und indirekter Adressierung, dann ist das schön, aber leider keine gültige Quelle – weil Du keine gültige Quelle bist. Ich auch nicht. Aber Sekundärliteratur schon.
Andreas 11:32, 21. Jan. 2022 (CET)
Ja, auch mir war aufgefallen, dass in den Erweiterungen / Änderungen von [Aletheix] keine Belege enthalten waren; die gehören aber gerade in einem Fall wie diesem unbedingt dazu. Wenn es unterschiedliche Aussagen (mit validen Quellen) gibt, dann sollte man beide Aussagen aufführen, sie vielleicht kurz erläutern und auf den Unterschied hinweisen.
Aber: Nach meiner Meinung (keine gültige Quelle) wäre ein Code, der von einer Maschine vollständig ausgeführt werden konnte oder könnte (liegt vielleicht hier der Unterschied?), ein 'Computerprogramm'. --VÖRBY (Diskussion) 14:06, 21. Jan. 2022 (CET)
Ich bin ja auch dieser Meinung, aber ich will das nicht ohne Belege behaupten. Charles Babbage’s Unterlagen wurden nicht publiziert, ja, und die Übersetzung von Ada Lovelace schon. Das könnte natürlich der Grund sein, warum sie als diejenige angeführt wird, die das erste Computerprogramm geschrieben hätte, während es in Wirklichkeit Charles Babbage selbst war. (Gewesen wäre. Hätte gewesen sein können.) Ja, das ist möglich. Aber: die Unterlagen von Babbage wurden bereits 1937 wiederentdeckt.Google Buch Oder nicht? Warum ist die gesamte Wissenschaftswelt dann "so dumm", das nicht zu merken, wir aber so gescheit?
WP:TF ist zu vermeiden. Wenn es wirklich so wäre, dann müsste es doch seit 1937 Werke geben, die Charles Babbage als den ersten Computerprogrammierer aufführen.
Das einzige was ich finden kann, ist das Charles Babbage die Analytical Engine dafür nutzte, einerseits (per Lochkarten-"Programmierung") eine Differenzmaschine zu haben, dieselbe Maschine andererseits (per Lochkarten) in eine zur Berechnung anderer Tabellen umwandeln zu können (z.B. Sterberaten, mortality tables).
Zitat: The Analytical Engine could likewise shift flexibly between calculations: at one moment it could imitate a Difference Engine if the cards held instructions for the method of differences, but the next moment the cards could be changed and the Engine would churn out mortality tables.Chapter 6: The Analytical Engine
Die große Leistung von Ada Lovelace hingegen ist die Nutzung einer Rechenmaschine als das, was Alan Turing später den Universellen Computer bezeichnete: Dass man ihn nutzt, um jegliche Art von Problemen – auch nicht-mathematische! – zu löschen bzw. Programme dafür zu schreiben. Das unterscheidet sie von Charles Babbage, der die Analytical Engine immer noch als Problemlöser für seine Berechnungstabellen ansah, wenn auch unterschiedliche Berechnungen damit möglich waren. (Gewesen wären, denn die Maschine wurde ja damals gar nicht gebaut.)
Auch ein Buch von 2020 über Charles Babbage selbst bestätigtGoogle Buch, auf "Mehr" klicken in der Zusammenfassung (ich kann nicht ins Buch hineinschauen), dass Ada Lovelace das erste Computerprogramm schrieb.
Zitat (englisch): During the mid-1830s Babbage developed plans for the Analytical Engine, the forerunner of the modern digital computer. In that device he envisioned the capability of performing any arithmetical operation on the basis of instructions from punched cards, a memory unit in which to store numbers, sequential control, and most of the other basic elements of the present-day computer. In 1843 Babbage's friend mathematician Ada Lovelace translated a French paper about the Analytical Engine and, in her own annotations, published how it could perform a sequence of calculations, the first computer program. The Analytical Engine, however, was never completed. Babbage's design was forgotten until his unpublished notebooks were discovered in 1937. In 1991 British scientists built Difference Engine No. 2--accurate to 31 digits--to Babbage's specifications, and in 2000 the printer for the Difference Engine was also built. (Betreffender Teil von mir unterstrichen.)
Long story short: Wenn es Quellen gibt, gerne! Ohne Quellen bitte nicht.
Andreas 14:52, 21. Jan. 2022 (CET)
Da ich neuer Wiki-texter bin, habe ich wohl etwas gegen die Etikette verstossen, ich entschuldige mich hiermit in aller Form für diese Patzer und versuche hier meine bisherig gesichteten Quellen zu schildern.(wohl wieder ohne korrekte Notationen;)
primäre Quellen
The babbage papers by Science Museum of London https://collection.sciencemuseumgroup.org.uk/documents/aa110000003/the-babbage-papers
(beachtet kapitel L!  BAP/L Notations of calculations for the Analytical Engine)
sekundäre Quellen
1 ) umfassender Artikel von Raúl Rojas 2016 , der Kapitel BAP/L genau beschreibt. : "Die ersten Computerprogramme der Welt" vom 18. September 2016 von Raúl Rojas auf https://www.heise.de/tp/features/Die-ersten-Computerprogramme-der-Welt-3315325.html?seite=all
auch DOI: 10.1007/s00287-017-1018-5; ISSN: 0170-6012 (Print); 1432-122X
2) Der Charles-Babbage-Forscher Doron Swade spricht für Babbage 12.05.2008 https://www.youtube.com/watch?v=7K5p_tBcrd0&t=2189s
und sagt in https://www.spektrum.de/magazin/der-mechanische-computer-des-charles-babbage/820781 Zitat' Das Konzept der bedingten Verzweigung, von zentraler Bedeutung in der Programmierung, war in Babbages Plänen bereits enthalten'
Aus: Spektrum der Wissenschaft 4 / 1993, Seite 78 © Spektrum der Wissenschaft Verlagsgesellschaft mbH
3) The Analytical Engine Programming Cards von John Walker beschreibt die Combinatorial Cards unter: https://www.fourmilab.ch/babbage/cards.html
4 ) Bromley, Allan G., published 1982 "Charles Babbage's Analytical Engine, 1838 «  erwähnt 'although there are several dozen sample programs
prepared between 1837 and 1840 ' --Aletheix (Diskussion) 22:04, 21. Jan. 2022 (CET)
Danke, das sieht gut aus. Ich bin gerade dabei, mir die Quellen anzusehen, aber grundsätzlich sieht das gut aus.
Ich würde sagen, damit kann man das so in den Artikel einbauen, und unterscheiden zwischen den ersten unveröffentlichten Computerprogrammen von Charles Babbage, sowie der Analytic Engine, und dem ersten veröffentlichten Programm von Ada Lovelace. Hinzu kommt, dass Charles Babbage ja nicht nur die Programme schrieb, sondern den ersten Computer überhaupt entwickelte, allerdings nicht konstruieren konnte, weil es damals auch beinahe unmöglich gewesen wäre.
Wenn du die Quellen zu Hilfe nimmst, und damit den Text vielleicht auch noch einmal überarbeitest, wenn du die Quellen einfügst, dann wäre das echt super.
P.s. Aletheix, du hast nichts falsch gemacht. Die wichtigste Wiki-Etikette ist meiner Meinung nach die Sachlichkeit und die Freundlichkeit, und da bist du ausgezeichnet!
Andreas 22:18, 21. Jan. 2022 (CET)
Besten Dank für dein positives Echo, ich bin mich immer noch weiter am Einlesen und suche nach weiteren Quellen, dabei ist mir wichtig, nicht als Antifeminist zu gelten, was bei diesem Thema schwierig wird.
So weiss ich nicht, ob tendenzielle seiten wie http://maninthmiddle.blogspot.com/2016/09/ada-lovelace.html als Quelle taugt.
Verweise daraus und daher mit vorbehalt sind:
Bruce Collier: The Little Engines that Could've: The Calculating Machines of Charles Babbage. Dissertation, Department of History of Science, Harvard University, Cambridge, 1970. http://robroy.dyndns.info/collier/
Thomas DeMichele: Ada Lovelace Wrote the First Computer Program - Myth. Fact / Myth, 21.08.2016. http://factmyth.com/factoids/ada-lovelace-wrote-the-first-computer-program/
Eugene Eric Kim, Betty Alexandra Toole: Ada und der erste Computer. Spektrum der Wissenschaft 7 / 1999, S. 80, 1999-07. http://www.spektrum.de/magazin/ada-und-der-erste-computer/825569
Dorothy Stein: Ada - A Life and a Legacy. MIT Press Series in the History of Computing, Cambridge, 1985.
Stephen Wolfram: Untangling the Tale of Ada Lovelace. stephenwolfram.com, 10.12.2015. http://blog.stephenwolfram.com/2015/12/untangling-the-tale-of-ada-lovelace/ --Aletheix (Diskussion) 12:37, 22. Jan. 2022 (CET)
Blogs sind grundsätzlich mit Vorsicht zu nutzen. Als Quelle taugen Blogs im Allgemeinen nicht. Ausnahmen gibt es jedoch immer, etwa, wenn es nicht um den Blog, sondern die Person (die den Blog betreibt) geht. Das ist aber hier nicht der Fall.
Die Quellen von oben, also der Telepolis und Spectrum, taugen allerdings in jedem Fall.
Wenn man es so forumliert, dass das erste veröffentlichte Computerprogramme von Ada Lovelace stammt, was ja stimmt, sich aber von Charles Babbage in seinem Nachlass die ersten Computerprogramme für seinen ersten als Computer geltenden Apparat finden, wie es ja die Quellen auch ausdrücken, dann ist das objektiv.
Weil das hier eine Diskussionsseite ist: Ich sehe das natürlich ebenfalls differenziert, denn etwas auf Papier zu bringen, aber nicht zu bauen, gilt in der Wissenschaft eigentlich nicht. Denn sonst wäre Leonardo DaVinci der erste gewesen, der ein Flugzeug "gebaut" hätte – er hat es aber nur gezeichnet. Und die iPads wären schon weit vorher bei Star Trek aufgetaucht...
Mit den Quellen kann man jedoch mit Fug und Recht behaupten, dass Charles Babbage den Computer im modernen Sinn erfunden hat, wenn auch nicht gebaut. Und die von ihm dafür hinterlassenen Programme, die natürlich nie gelaufen sind, kann man in diesem Sinn als die ältesten Computerprogramme ansehen. Dennoch muss man eben auch darauf verweisen, dass das Programm von Ada Lovelace zur Berechnung der Bernoullikette das weltweit erste (bekannte) veröffentlichte Computerprogramm ist. Auch, dass Lovelace die Maschine bereits als Universal-Rechner sah, und das Potential der Maschine damit über dem, was deren Erfinder Babbage (ursprünglich) damit vorhatte, erkannte, ist damit nicht aufgehoben, denn das wird von aller Sekundärliteratur so interpretiert.
Andreas 14:26, 22. Jan. 2022 (CET)
@Aletheix: Ich habe deinen Text nochmals überarbeitet, ich hoffe, das ist kein Problem. Wenn es etwas gibt, was daran nicht passen sollte: man kann ja bei der Wikipedia immer alles wieder zurücksetzen ;-)
Wie dem auch sei, ich habe versucht doppelte Informationen zu entfernen (die bedingten Anweisungen, IF-THEN-ELSE, waren etwa doppelt drinnen). Ich habe auch versucht, keine Meinungen hinzubringen und nur ohne Wertung das einzubringen, was in den Quellen steht.
Andreas 18:01, 22. Jan. 2022 (CET)
Besten Dank, ist super so! --Aletheix (Diskussion) 18:47, 22. Jan. 2022 (CET)

Schon der erste Satz ist eine Katastrophe

Schon der erste Satz ist eine Katastrophe. Entweder ist Computerprogramm ein materialisiertes Regelwerk (z.B. nach Eintippen von Zeichen auf einem Computer, die insgesamt das gedankliche Regelwerk repräsentieren), dann darf nicht suggeriert werden, dass das Programm Aufgaben oder Probleme löse, weil es immer der Mensch ist, der mit Hilfe von Computerprogrammen Aufgaben bzw. Probleme löst. Oder Computerprogramm meint Gedanken aber die sind immateriell. In diesem Fall müsste unmissverständlich angegeben werden, dass Gedanken gemeint sind und keine materiell ausgedrückten Gedanken. Dann lese ich, dass ein Computerprogramm zur Software gehört. Ist hier Software als Gedanke gemeint oder als materialisierte Repräsentation von Gedanken? Auf Wiki-„Software“ steht, Software sei immateriell, d.h. für mich: ein Gedanke. Dann lese ich weiter, Software liege meist auf Datenträgern. Also was? Jetzt gibt es zwei: die Software und den Datenträger. D.h. der Gedanke (gedankliches Regelwerk: =immaterielle Software) LIEGT auf dem materiellen Datenträger? Dafür würde man den Nobelpreis erhalten. Später lese ich, Programme würden leben. Leben? Kommt das nicht aus der Biologie, Theologie und anderen Fachbereichen? Auf Wiki-„Software“ finde ich, Software (dazu gehört „Programm“) sei technisch. D.h. Software ist tote Materie. Für mich ist Software/Programm etwas, das mit materiellen Zustandsveränderungen von Computern zu tun hat. D.h. Software ist Teil des Computers und daher materiell. Die Voraussetzung für Software ist es, Gedanken zu haben, die ein Regelwerk bilden, mit dem ein menschliches Problem bzw. eine menschliche Aufgabe gelöst wird. Wenn diese Gedanken materiell ausgedrückt werden, d.h. ein diesbezügliches Computerprogramm als Teil des materiellen Computers vorliegt, dann führt dies im Ausführungsfall zu Zustandsveränderungen des Computers, die dort oder da als jeweiliges Ergebnis z.B. Bilder auf dem Bildschirm oder Screen zeigen, welche uns – nach gedanklicher Erfassung – zur Problem- bzw. Aufgabenlösung dienen. (nicht signierter Beitrag von 84.113.195.101 (Diskussion) 14:28, 4. Feb. 2022 (CET))

Der erste Satz ist das nicht, sondern der erste Satz des Abschnitts #Überblick.
Und wieso sollte das Computerprogramm entweder das eine, oder das andere sein? Es ist beides!
Das Computerprogramm ist immer noch ein Computerprogramm, wenn ich den Quelltext auf Papier ausdrucke. In dieser Form ist es nicht lauffähig, aber dennoch ist es ein Computerprogramm. Das könnte man gerne als geistige Leistung sehen, ja (immateriell). Oder als Blatt Papier (materiell).
Das Computerprogramm, das läuft, braucht kein Speichermedium. Dann müsste es von einem Menschen per Keyboard Instruktion für Instruktion, Byte für Byte, eingegeben werden. Dann läge es im RAM. Was ist es dann? Einerseits läuft es nicht, solange es nicht gestartet wurde – ist dennoch immateriell –, andererseits ist es dann in einem Read-Only-Memory (materiell) als Strom gespeichert.
Und wenn es – wie es heute meist der Fall ist – auf einem Speichermedium liegt, als Programmdatei und dessen zugehörige Dateien (in seiner Gesamtheit auch als Software bezeichnet, wobei zum Begriff Software je nach Definition auch noch das gedruckte Manual und die Datenträger dazugehören), und wenn es von dieser Programmdatei und dessen zugehörigen (Daten-)Dateien in den RAM geladen und ausgeführt wird, dann ist das nicht anderes als im ersten Fall, wo ein Mensch die Bits und Bytes händisch eingibt.
Wie das Musikstück, das auf einer Schallplatte, einem Tonband, in Form von Streaming oder Broadcasting, auf einer Audio-CD oder einer Audiodatei auf einem Datenträger gespeichert und/oder verteilt werden kann, ist das Musikstück einmal hörbar über die Schallwellen aus dem Lautsprecher (immateriell), andererseits ist das Musikstück aber auch auf dem Tonträger "gespeichert" (materiell). Auch, wenn nur die Noten auf einem Papier niedergeschrieben sind, für einen Chor oder zum Spielen auf der Gitarre, ist es immer noch ein Musikstück.
Von daher verstehe ich diese künstliche Trennung nicht. Denn es ist beides.
Andreas 15:08, 4. Feb. 2022 (CET)
Ich stimme den Ausführungen von Andreas zu: Die obigen Einwände gegen die Aussagen des Artikels sind m.E. Haarspalterei; 'Computerprogramm' wird in praktisch allen Quellen sowohl als immateriell (i.S. Gedanken, Logik, Abfolge ...) als auch als materiell beschrieben, auch wenn das zunächst als unlogisch erscheint. Beides trifft zu. Das Ausführen der Befehle durch einen Computer/Prozessor ist das, was in dieser Diskussion (14:52, 21. Jan. 2022) mit "Universeller Computer ... mit individuellen Programmen dafür zu schreiben" gemeint ist.--VÖRBY (Diskussion) 17:29, 4. Feb. 2022 (CET)

Quellcode = Programm?

Habe den Abschnitt 'Überblick' überarbeitet und dabei den Satz "Quelltext sei auch eine Bezeichnung für Computerprogramm" rausgenommen, weil das ohne Beleg nicht haltbar ist; QT ist nur eine Variante der Speicherungsform von Programmtext. Habe versucht, den Resttext in eine logischere Reihenfolge zu bringen. --VÖRBY (Diskussion) 13:27, 7. Feb. 2022 (CET)

Na, eigentich ist das relativ leicht belegbar. Beispielsweise ist ein Computerprogramm, das von einem Interpreter ausgeführt wird, meist nur als Quelltext verfügbar.
...Als Quelltext5 verfügbar, es IST aber nicht6 das Programm.
Aber, um alle Zweifel zu beseitigen, ein Zitat aus dem Buch "Jetzt lerne ich C#", Seite 21Google Buch: (Abschnitt: Von Compilern und Interpretern) In diesem Fall spricht man von Interpreter-Sprachen, weil das Programm nicht als ausführbare Datei, sondern bloß als Quelltext vorliegt, der nur mit Hilfe eines speziellen Programms (genannt Interpreter) ausgeführt werden kann. Der Interpreter übersetzt das Programm zeilen- oder abschnittsweise und lässt die übersetzten Anweisungen direkt ausführen.
... nur 'als Quelltext vorliegt'; d.h. es ist die Erscheinungsform des Programms, aber nicht 'das Programm'.
In diesem Sinne ist Quelltext natürlich auch ein Programm, vor allem auch deswegen, weil es von vielen Programmiersprachen sowohl Interpreter als auch Compiler gibt.
Oder, hier ein "PHP-Programm" aus dem Buch "PHP & MySQL Schnelleinstieg", Seite 28Google Buch: (1.5 Quelltext und PHP-Interpreter) Ein PHP-Programm besteht aus reinem Text (plain text), dem so genannten Quelltext (auch Quellcode - source code).
... 'Besteht aus ...' bedeutet was ander4es als 'IST'.
Andreas 14:10, 7. Feb. 2022 (CET)
Noch ein Beispiel, aus "Softwarerechtsschutz zwischen Urheberrecht und Patentrecht", Seite 144Google Buch: Wird nun ein Computerprogramm in seiner linguistischen Ausführungsform als Quelltext veröffentlicht, ... Die Funktionalität eines Computerprogramms, das in Form seines maschinennahen Objekt- und Binärcodes veröffentlicht wird, ...
immer wieder dasselbe: 'linguistische Ausführungsform', 'in Form seines Codes ...'
Das Computerprogramm kann also als Quelltext oder als Binärcode vorliegen. Es ist damit beides ein Computerprogramm.
Andreas 14:15, 7. Feb. 2022 (CET)
Hi, ich habe in Deinen Angaben Anmerkungen eingestreut. Ich denke, es ist klar, dass 'Computerprogramm' ein komplexes Ding ist, das nun mal in unterschiedlichen Formen "vorliegen" kann. Auch wenn Quelltext direkt ausgeführt werden kann, ist er noch nicht 'das Programm', sondern dessen Erscheinungsform/Speicherform. Dass das umgangssprachlich oft vermischt wird, ist was anderes. --VÖRBY (Diskussion) 15:20, 7. Feb. 2022 (CET)
Danke für die Einwände. Allerdings verstehe ich nicht, warum eine Erscheinungsform einer Sache diese nicht zur Sache macht?!?
Ein Film auf einer DVD oder Blu Ray ist eine der Erscheinungsformen. Der gleiche Film kann im Kino gezeigt werden, eine andere Erscheinungsform. Oder er wird ausgestraht oder gestreamt. Auch kann der gleiche Film in unterschiedlichen Sprachen oder Formaten vorliegen. Macht es diese "Erscheinungsformen" dann nicht mehr zum ursprünglichen Film?
Andreas 15:27, 7. Feb. 2022 (CET)
Nachtrag: Das Buch "Softwarerechtsschutz zwischen Urheberrecht und Patentrecht" beschreibt den Begriff "Computerprogramm" ab Seite 10 auf verschiedene Weisen, mit Quellenangabe.Google Buch Ein Computerprogramm ist eine Folge von Befehlen, … [die bewirken] … dass eine Maschine … eine bestimmte Funktion oder Aufgabe oder ein bestimmtes Ergebnis anzeigt, ausführt oder erzielt.
Eine ähnliche Definition von dem, was ein Computerprogramm sei, findet sich u.a. auch hier (Programmieren mit Pyhton)Google Buch, hier (Python kinderleicht!)Google Buch und hier (Arbeiten mit MS-DOS QBasic)Google Buch.
Davon, dass ein Computerprogramm in ausführbarem Maschinencode vorliegen muss, steht da erstmal nichts. ‣Andreas 15:57, 7. Feb. 2022 (CET)
Ich denke, man kann maximal sagen, dass 'umgangssprachzlich' auch der Quelltext als 'Programm' bezeichnet wird. Allerdings: Präzise ist das überhaupt nicht. Denn 'Programm' ist ein abstrakter Begriff - der in vielerlei Formen vorliegen kann; auch als Maschinencode, Zwischencode, Liste, Streaming-Code usw. Egal in welcher Form: es ist immer ein und dasselbe 'Programm XY'. Sonst müsste diese Gleichetzung auch für die anderen Erscheinungsformen gelten; dann wären es aber (zu der vorgenannter Aufzählung) schon vier Subjekte.
Vgl Roman: Er kommt als Buch oder als Podcast oder als DVD daher - bleibt aber immer derselbe Roman ABC.
Zu Deinem o.g. Beispiel 'Film': Es wird dort aber auch nicht behauptet, "ein Film wird auch als DVD bezeichnet". Ich würde also die gelöschte Aussage nicht wieder aufnehmen.
Ja, das mit Maschinencode stimmt; es heißt aber auch 'im Allgemeinen'; Details müsste man bei den Link-Artikeln nachlesen können.
Grüße von --VÖRBY (Diskussion) 17:41, 7. Feb. 2022 (CET)
Im Allgemeinen...
Es gibt einen Grund, warum der Begriff Computerprogramm so weit gefasst ist. Es gibt ja auch Computerprogramme, die für Computer geschrieben werden, die es (noch) gar nicht gibt. Diese können dann nicht in Maschinencode vorliegen, bzw. wenn sie dies tun, laufen sie nur, wenn es auch einen Emulator für die (noch) nicht existente "Maschine" (Prozessorarchitektur, ISA) gibt.
Auch Zwischencode, der zwar kompiliert ist und in diesem Sinne ein Computerprogramm, aber der immer auch einen Interpreter für den (binären) Zwischencode benötigt, damit er auf einem realen Computer läuft, ist grundsätzlich auf einem Computer nicht selbständig ausführbar, es sei denn, der Code wird eben noch einmal von einem weiteren Programm verarbeitet.
Was ist denn das tatsächliche Merkmal von einem Computerprogramm? Dass es ausführbarer Maschinencode ist? Oder, welche Algorithmen, Prozeduren und Funktionen es wie nutzt, was dann auch auf das Computerprogramm als Quelltext zutrifft...
Übrigens, die DVD ist nur das Medium für den Film. Der Film ist auf der DVD gespeichert. So wie das Computerprogramm als Code-Listing auf Papier ausgedruckt ist, oder in einer Zeitschrift oder einem Buch abgedruckt. Oder, das Computerprogramm ist binär auf einem ROM gespeichert und wird als Firmware von einem Gerät für den Betrieb – zur Erreichung der vorgesehenen Funktionen des Geräts – verwendet. Oder, das Computerprogramm ist als Quelltext auf einer Diskette gespeichert. Oder als Binärcode auf einer CD-ROM. Usw. Diese Formen der Speicherung machen jedoch keinen Unterschied, denn zur Ausführung ist noch mehr notwendig: Das Programm muss – in der korrekten Form, also z.B. für die korrekte Plattform – zuerst in den Speicher geladen werden. Das macht das Programm in den wenigsten Fällen von selbst. Es muss dann gestartet werden, auch das liegt nicht in den Händen des Programms. Erst dann läuft es. Ob nun ein Interpreter, Compiler oder eine ganze Build-Toolchain vorgeschaltet ist oder nicht, ist dabei eigentlich unwesentlich. Auch ein binäres CP/M-86-Programm, das 8086-Maschinencode enthält, läuft nicht unter MS-DOS auf derselben Prozessorarchitektur. Und warum wäre das überhaupt ein Kriterium, damit man es trotzdem als Computerprogramm bezeichnen dürfte?!?
Und selbst wenn man, wie bei den allerersten Computern der 1950/1960er Jahre, den Programmcode als Maschinencode händisch eintippt oder per Lochkarten direkt lädt – und somit ganz ohne Quelltext auskommt – ist es immer noch ein Computerprogramm. Und kein Schmierzettel, auf dem das, was man einzutippen hat, damit das Programm dann ab einem bestimmten Zeitpunkt läuft, oder auch keine simple Lochkarte, ändert den Umstand, das darauf immer noch ein Computerprogramm "gespeichert" ist – denn wo es gespeichert ist, ist genau so wenig das Kriterium, wie die zusätzlichen Mittel, die man noch benötigt, dass es letztlich läuft.
Autovergleich: Sonst wäre ein Auto mit leerem Tank ja auch kein Auto mehr: denn so kann es ja schließlich nicht mehr fahren...
Nicht umsonst bezeichnet man die Programme von Charles Babbage und Ada Lovelace als die ersten Computerprogramme im modernen Sinn – auch ganz ohne binären Maschinencode – oder auch nur als solchen, aber dennoch existieren die Programme nur auf Papier.
Andreas 18:03, 7. Feb. 2022 (CET)
Ich habe den Eindruck, wir reden aneinander vorbei: Mit geht es ausschließlich um die Frage, ob man definieren kann "Quelltext IST ein Computerprogramm".
Was ein Computerprogramm ist, dürfte im Artikel vorne sauber definiert sein.
Die zahlreichen Existenzformen von Computerprogrammen sind nur Möglichkeiten zur Notation/Dokumentation ... ein und desselben Computerprogramms. Doch wenn man sagt "Quelltext = Computerprogramm", dann wäre das mathematisch identisch mit "Computerprogramm = Quelltext"; und das stimmt nicht.
Insofern betrachte ich Deine letzten Anmerkungen eher als Bemerkungen zum Inhalt des 'Überblicks' - und nicht mehr zur Frage "QTx = Pgm". Richtig? --VÖRBY (Diskussion) 18:36, 7. Feb. 2022 (CET)
Unter Computerprogramm wird auch der Quelltext des Programms verstanden… (Änderung) klingt für mich nicht nach "Computerprogramm = Quelltext", sondern als "Computerprogramm = [ Quelltext | Binärcode/Maschinencode | Programmdatei | etc. pp. … ]".
Aber, die Umformulierung passt. Es ging mir nur darum, dass ich "Quelltext sei auch eine Bezeichnung für Computerprogramm" als "eine von mehreren Formen, was ein Computerprogramm sein kann" verstanden hätte, keinesfalls als "Quelltext = Computerprogramm"...
Andreas 19:08, 7. Feb. 2022 (CET)