Kann man auf dem Gymnasium wirklich lernen wir man in Maschinencode programmiert!?

Das Ergebnis basiert auf 11 Abstimmungen

Nein 82%
Ja 18%

5 Antworten

Nein

...Vielleicht mal irgendwann als kleine Randnotitz , damit ein Schüler eine winzige Vorstellung bekommt, wie ein Prozessor seine Anweisung bekommt.

In den frühen 80er Jahren verwendete man gelegentlich noch die Eingabe purer Hex-Dumps zur Grundprogrammierung von in EPROMs gespeicherten Betriebssystemen.

Das war jedoch sehr Fehleranfällig (schließlich waren das lediglich endlose Klonen von Hex-Zahlen, deren Sinn einfach in der schweren Menge unterging.

Stattdessen verwendete man zur menschenlesbaren Darstellung Mnemonics (Assemblercode)

Assemblercode ist kein Maschinencode!

...und bedarf bereits eines Programms (Assembler) um die Mnemonics in Maschinenlesbare Befehle zu übersetzen.

In den frühen Anfängen war der Speicherunfang mit ca. 1 bis 16kByte noch recht überschaubar und Assembler war das Mittel der Wahl um dem Prozessor zu sagen was er tun sollte. Mit wachsender Komplexität der Aufgaben und Verfügbarkeit von Speicher begann die Einführung "vorgefertigter" Funktionsbibliotheken, deren gespeicherten Maschinencode nur noch mit den übergebenen Parametern aufgerufen wurde. Das Zeitalter der Compiler began. C, Pascal etc. verdrängten den Assembler.

Mit einem Befehl konnte man Abläufe in Gang setzen für die zuvor 20..30 Zeilen Assembler oder gar 200Byte Maschinencode nötig waren.

Und die Entwicklung ging weiter... Heute bindet Objektorientierung Daten und ausführbaren Code zu einer komplexen Einheit.

Allein der für den Start einer gewöhnlichen Windowsanwendung nötige Maschinencode ließe sich heute garnicht mehr direkt eingeben. ...und selbst Assembler wäre purer "Wahnsinn".

Insofern vergiss den Wunsch Maschinencode programmieren zu wollen.

...Neben Hannibal Lecter ist nach eine Zelle frei.🤯😵🥳

Selbst für relativ kleine Microcontroller gibt es inzwischen Compiler, welche Hochsprachen in effizienten Maschinencode übersetzten.

Für aktuelle PC/Apple/Android -CPUs kann man den Maschinencode nicht mehr überschauen. Neben den normalen Befehlen benötigen die spezielle Register und Datenbereiche um zu legitimieren ob der Code überhaupt ausgeführt werden darf.

...dergleichen geht selbst dem meisten Hochsprachen-Programmierern nichts mehr an und würde diese mit "unnützem" Wissen belasten, schlicht, weil es automatisch vom Compiler erledigte Routinearbeit ist.

Selbst Treiberprogrammierer kümmern sich bestenfalls noch darum ihre Hardware anzusprechen aber nicht darum wie der Treiber in ein Betriebssystem eingebunden wird..

Und... ein Lehrer auf einem Gymnasium dürfte wohl gerade noch mit Ach und Krach die die gaanz groben Grundlagen erfassen, wärend 99% der Schüler einschläft. (zum Glück... sonst würde ihnen das Hirn wegschmoren)

Maschinencode hat definitiv (bestenfalls) noch jemanden zu interessieren, der einen Compiler für einen neuen Prozessor entwickelt, aber das dürfte wohl ein Typ in der Entwicklungsabteilung eines Prozessorherstellers sein und kein Schüler eines Gymnasiums.

...Für alle anderen endet der Weg mit einer Zwangsjacke...

...Ich muss aufhören, mein "Pfleger" bringt meine Pillen 🤫😏

Ja

Zum Teil ist das - in Ansätzen - Bestandteil des Informatik-Unterrichtes. Also wenigstens mal zu sehen, wie Befehle funktionieren... Aber nicht überall.

Wirklich lernen ist auch nicht mehr sinnvoll. Das wird so gut wie nie benötigt.

Nein

Nur Ansätze und gebraucht wird es eigentlich nicht mehr wirklich

Woher ich das weiß:Hobby – Programmiere seit 6 Jahren, mache Office kram etc
Ja

Ich habe mir das in den 80ern im Rahmen der Computer AG selbst bei gebracht. Man muß nicht immer auf eine offizielle Lehrveranstaltung warten.

Erzesel  22.10.2023, 17:55

Lange ist's her.

Der heutige Umfang würde schlicht überfordern

Mal am Rande erwähnen, mag ok sein, aber wirklich nützten wird das Wissen bestenfalls einem von tausend ...

Glücklich die welche dabei einschlafen.

0

Im Unterricht nicht, in dem Alter aber schon.

Woher ich das weiß:Studium / Ausbildung – Trust me, I'm an engineer