Yahoo Clever wird am 4. Mai 2021 (Eastern Time, Zeitzone US-Ostküste) eingestellt. Ab dem 20. April 2021 (Eastern Time) ist die Website von Yahoo Clever nur noch im reinen Lesemodus verfügbar. Andere Yahoo Produkte oder Dienste oder Ihr Yahoo Account sind von diesen Änderungen nicht betroffen. Auf dieser Hilfeseite finden Sie weitere Informationen zur Einstellung von Yahoo Clever und dazu, wie Sie Ihre Daten herunterladen.
Wie konnte man Programmieren ohne Programmiersprache ?
Wie sind eigentlich erste Programme entstanden wenn man noch gar keine Programmiersprache hatte ? Diese muss man doch auch irgendwie "programmieren"
8 Antworten
- vor 1 Jahrzehnt
Beim Herstellen den Prozessors wird ja schon festgelegt, welche Befehle dieser unterstützt. Diese sog. OpCodes sind einfach (hexadezimal-) - Zahlen, die man ggfs. mit Hilfe der entsprechenden Dokumentation auch direkt eingeben kann, bzw. in einem entsprechenden Speicher (damals EPROM) ablegen kann. 32 könnte zum Beispiel "addiere den Wert aus Register 1 zu Register 2" sein oder 45 0203 "Schreibe den Wert aus Register 1 in den Speicher an die Stelle 0203" (Alle Zahlen erfunden). Nach dem Reset liest der Prozessor dann einfach den ersten Befehl von einer festen Adresse und arbeitete den ab (Beim PC ist das das BIOS-Programm, was als erstes abgearbeitet wird). Meine ersten Programme habe ich noch so geschrieben, auf meinem ersten Rechner lief ein sog. "Monitor" (der war im EPROM schon drin), welcher die Eingabe von Befehlen über die Tastatur ermöglichte, diese in den Speicher geschrieben hat und danach ausführen konnte. Mit Hilfe eines dicken Buches habe ich dann eben die entsprechenden OpCodes nachgeschlagen, aufgeschrieben und ausführen lassen.
Später gab es dann erste Assembler (der auf diese Art und Weise erstellt wurde), dort hat man nicht mehr die OpCodes direkt eingegeben, sondern "Abkürzungen" (Mnemoics), welche der Assembler auf die einzelnen Opcodes umgesetzt hat, z.B.
ADD AX, BX oder MOV [0203], AX.
Ein Compiler für eine Hochsprache ist dann natürlich auch so entstanden, d.h. er wurde erst einmal in z.B. Assembler geschrieben und in ein entsprechendes Machinenprogramm übersetzt.
- toxy³ ™Lv 7vor 1 Jahrzehnt
etwas vereinfacht fuer laien:
man hat das ding direkt mit hexcodes gefuettert. ein programm sah dann etwa so aus:
F3 44 A2 A5 76...
die zahlen stehen dann fuer prozessorbefehle und speicheradressen
nehmen wir an, A0 stuende fuer den befehl addieren, dann wuerde "A0 12" bedeuten, dass der prozessor den inhalt des speichers aus adresse 12 auslesen und zum wert eines sogenannten registers (kleiner speicher im prozessor) addieren soll.
auf diese art programmiert man dann zunaechst einen sog. assembler. wenn man den hat, darf man statt "A0 12" dass viel leserlichere "add *12" schreiben.
(das setzt mal voraus, dass man schon monitor und keyboard hat. noch frueher musste man diese zahlenfolgen in papierkarten stanzen oder kleine schalter umlegen)
@gerd: kleine korrektur: Konrad Zuse hat den ersten, mechanischen computer gebaut, erfunden hat das ding allerdings Charles Babbage. und dank der tatsache, dass es einen nachbau gibt, wissen wir sehr genau, wie das ding gearbeitet hat. gibt sogar simulatoren im web
- Anonymvor 1 Jahrzehnt
Letzten Endes kann man jeden Programmcode auf eine Abfolge von elementaren Befehlen runterrechnen. Diese elementaren Befehle versteht der Prozessor im Computer direkt. Das kannst du dir wie so einen Schalter vorstellen, den du direkt an uns aus machst.
Diese Befehle sind natürlich so furchtbar elementar frickelig, kleinkariert, Mini-wirksam und raffelig, dass man eine unglaubliche Macke kriegen würde, wenn man mit diesen elementaren Prozessor-Befehlen arbeiten müsste. Die einfachste Zeile modernen Programmcode würde dann übersetzt werden in sowas wie "Merke dir die Zahl x in deinem Register y, addiere dazu eine drei, kopiere dann das Ergebnis an die Speicherstelle, die in deinem Register z steht." Und all diese "Arbeitsanweisungen" für den Prozessor dann auch noch verschlüsselt in krypischen Zahlencodes!
Für die Programmierung der einfachsten Textverarbeitung würde man daher das 100-fache der heute üblichen Zeit benötigen. Daher sind in den letzten Jahrzehnten immer mehr Vereinfachungen hinzugekommen. Der erste Schritt hierzu war, die elementaren Prozessorbefehle erstmal in kleinen Textbausteinen darzustellen, die in die Arbeitsanweisungs-Codes übersetzt werden (das war dann Assembler).
Um diesen Assembler-"Compiler" zu programmieren, müsste sich natürlich erstmal einer opfern, und dieses Programm mit der direkten Eingabe von Maschinencodes zusammenraffeln. Jede neuere Programmiersprache ist von da an aus einer älteren Programmiersprache hervorgegangen.
Im Laufe der Jahres ist dann alles immer weiter schabloniert, standardisiert und vereinfacht worden, sodass moderne Programmiersprachen wenige Zeilen Programmcode in viele Tausend klitzekleine direkte Maschinencode-Anweisungen übersetzen.
- Wie finden Sie die Antworten? Melden Sie sich an, um über die Antwort abzustimmen.
- vor 1 Jahrzehnt
Streng genommen ist die Fragestellung falsch. Denn selbstverständlich gab es von Anfang an Programmiersprachen. Nur waren das eben keine Hochsprachen wie heute sondern eben die schon erwähnten OpCodes (Operation-Codes), die dann irgendwann gegen die auch schon erwähnten Mnemonics ausgetauscht wurden (das waren dann schon Compiler-Sprachen).
Will sagen: am Anfang musste der Mensch "computerisch" lernen, im Laufe der Zeit hat der Computer immer besser "gelernt" den Menschen zu verstehen (in "" weil es in der Tat letztlich ja auch nur wieder Programme sind) bis wir uns heute komplette Anwendungen zusammenklicken können.
Ganz am Anfang standen übrigens tatsächlich Maschinen, die keine variablen Programme ausführen konnten. Sie hatten nur fest verdrahtete Abläufe. Sprich die Programme wurden mit dem Lötkolben geschrieben!
- Anonymvor 1 Jahrzehnt
"etwas vereinfacht fuer laien:
man hat das ding direkt mit hexcodes gefuettert. ein programm sah dann etwa so aus:
F3 44 A2 A5 76..."
Wobei man sagen muss, das das Kernkonzept dahinter die Boolsche Algebra in ist und somit auch das Dualsystem. Mit simplen 0/1 lässt sich ja addieren, subtrahieren, multiplizieren & dividieren bzw mathematisch logische Schlüsse ziehen. Das simpleste was man also damit machen kann ist also eine Art Taschenrechner. Die Frage ist, wie der erste Compiler aufgebaut war. Das mit den schreiben von Hexbytes ist ja beim heutigen Compiler so.
- GerdLv 7vor 1 Jahrzehnt
Leider kann man Konrad Zuse, den Erfinder des Computers
nicht mehr fragen, wie er das gemacht hat...
- vor 1 Jahrzehnt
Bin auch kein Informatiker wär aber vielleicht ganz interessant sich als Grundlage mal mit dem Konzept der Turingmaschine vertraut zu machen.