C++ Wie aus Text auszuführbarer Code wird am Beispiel C/C++

Finalspace

Lt. Junior Grade
Registriert
Sep. 2009
Beiträge
366
Wer schon immermal wissen wollte, wie aus Textdateien Binärcode und Auszuführbare Dateien werden und vor allem verstehen möchte, warum was wie wo funktioniert - dem kann ich nur das hier wärmstens empfehlen:

Translation Units, Function Pointers, Compilation, Linking, and Execution

Das ist zwar in Englisch, aber ist dennoch gut Verständlich und richtig gut erklärt wie ich finde.

Eine bessere Einführung gibts nur wenn man hunderte Euros ausgibt für Fachbücher und diese dann Wochenlang wälzt oder man hat ein Studium in Richtung Informatik gemacht und dies bereits schon gehört.
 
Zuletzt bearbeitet:
Hm, lernen die jungen Leuts heute kein Assembler mehr? :confused_alt: Ich dachte, so was ist Basis jeder IT-Ausbildung, zumindest einfache Assembler-Varianten. Und wer für so was wochenlang Fachbücher wälzen muß, sollte wirklich den Beruf wechseln, falls er IT machen wollte...
 
Nö, das lernen die jungen Leute nicht mehr.
Klar, für's Verständnis praktisch, aber in der Praxis oft nicht mehr zwingend notwendig.
 
Ich hab vor ein paar Jahren noch Assembler 'gelernt'. Wobei ich Elektronik/Automation studiert habe. Da ist alles noch etwas Hardware näher. Da haben wir mit Logisim auch einen eigenen Prozessor 'gebaut'
 
Assambler und Compilerbau sind frühestens im Master ein Thema - wenn man denn will. Fachinformatiker werden damit wohl nie in der Ausbildung konfrontiert werden. Im Universitätsstudium spielt auch Programmieren keine wirkliche Rolle, an der FH sieht das anders aus. Die Unis beschränken sich auf die Lehre der formalen Mathematik sowie der angewandten Mathematik in Form der theoretischen Informatik. Damit kann man zwar nach dem Studium außerhalb der Forschung und Lehre nichts anfangen, aber darum solls ja auch nicht gehen. ;)
 
Klar, wenn man was eigenes bauen will, oder viel im Embedded-Bereich macht, dann ist es stark von Vorteil sich in den tiefsten Bereichen der Programmierung auszukennen.

Wie ein Compiler funktioniert sollte jeder Entwickler, zumindest im Prinzip, verstehen. Dazu muss man aber kein Assembler können.
 
kommt sicher auf die genaue ausbildungsform an, aber bis minute 60 war nichts neues fuer mich als computer scientist dabei; alles in 'ner vorlesung im 2. semester kennengelernt. das meiste danach war dann auch bekanntes wissen, das ueber 2-3 andere (teils wahl-)veranstaltungen verstreut war.
 
In nem Informatikstudium würde ich erwarten das solche Kenntnisse vermittelt werden -> Prozessorarchitektur, Compilerbau etc.

Ich kannte das meiste bereits, bzw. kannte zumindest die Begriffe aber so zusammengefasst wie hier habe ich noch nichts vergleichbares gesehen.

In meiner Ausbildung (2005) zum Fachinformatiker wurde keinerlei Assembler oder irgendwelche Low-Level Konzepte durchgenommen. Dafür aber rudimentäres Wissen zur Objektorientierung, ohne sinnvollen Zusammenhang + tonnenweise SQL und Normalisierung von Datenbankschemas -.-
 
Zuletzt bearbeitet:
Naja natürlich wird uns (anhand der MIPS-Architektur) beigebracht wie Assembler-Code funktioniert, der Übergriff zu Compilern wird aber nicht gemacht, daher hilft das Kennen einiger wichtiger Befehle der MIPS-Architektur dann auch nicht weiter.
 
Finalspace schrieb:
In meiner Ausbildung (2005) zum Fachinformatiker wurde keinerlei Assembler oder irgendwelche Low-Level Konzepte durchgenommen. Dafür aber rudimentäres Wissen zur Objektorientierung, ohne sinnvollen Zusammenhang + tonnenweise SQL und Datenbanknormalisierung -.-

Das ist heute noch so. Das Niveau der Ausbildung ist, zumindest was die Inhalte der Berufsschule angeht, recht niedrig. Letztendlich liegt es am Betrieb hier Wissen zu vermitteln.
 
Fellor schrieb:
Wie ein Compiler funktioniert sollte jeder Entwickler, zumindest im Prinzip, verstehen. Dazu muss man aber kein Assembler können.
Darum geht es ja nicht. Ich frage mich aber, was daran so kompliziert sein soll, so daß man dafür ein 4,5 Std-Video braucht. Man macht ein Programm, das übersetzt ein weiters Programm (Compiler), in Maschinensprache. So, was ist daran nun kompliziert? (jetzt nicht böse gemeint).

Wenn man sich eben Assembler mal im Grundprinzip anschaut, ist doch die Sache schnell klar.
Finalspace schrieb:
In meiner Ausbildung (2005) zum Fachinformatiker wurde keinerlei Assembler oder irgendwelche Low-Level Konzepte durchgenommen. Dafür aber rudimentäres Wissen zur Objektorientierung, ohne sinnvollen Zusammenhang + tonnenweise SQL und Normalisierung von Datenbankschemas -.-
Was dann in der Praxis wieder verschwindet, weil die Entwickler bequem sind, oder die Anwender doch zig Informationen redundant brauchen. :p

Und Assembler und Co. braucht man sicher nicht unbedingt, aber das Grundprinzip sollte schon vermittelt werden. Wer später selbst mal einen Parser und Compiler bauen will, braucht dann andere Kenntnisse, bsp. Backus-Naur-Form usw.
 
Zuletzt bearbeitet:
Und ganz früher hat man auch noch die Null und Eins in Papier gestampft. So, was ist daran jetzt kompliziert?
 
Wenn viele hier schon alles wissen, dann könnt ihr ja locker das hier beantworten - ohne ne Suchmachine aufzumachen versteht sich:

- Welches Register wird als Ergebnis einer Funktion verwendet?
- Wozu benötigt man Name-Mangling?
- Was ist der Unterschied zwischen ESP und EBX und RSP?
- In welchen Registern werden typischerweise Floats behandelt?
- Was ist der Grund warum Code im Datensegment nicht ausgeführt wird und wie kann ich das umgehen?
- Was ist mit PE und MZ gemeint?
- Wozu benötigt man eine ABI Definition?
- Wie müssen Adressen bei CALL Instruktionen definiert werden damit die Funktion aufgerufen wird?
- Wie heisst der Einstiegspunkt einer Konsolenanwendung in Windows?
- Was ist der Grund warum Adressen nicht gleich sind und wie lautet der Begriff dazu?
- Warum findet der Linker meinen Einstiegspunkt nicht, obwohl der Name korrekt angegeben ist?
 
Zuletzt bearbeitet:
Warum sollte jemand mit dir den Schwanzvergleich weiterspielen? Wie seht Offtopic kannst eigentlich noch werden?
 
Viel erstaunlicher finde ich dass in Deutschen Foren der Umgang miteinander irgendwelchem pseudo Elitismus untergeordnet wird. Der Link ist brauchbar und gut gemeint, wem es nicht gefällt muss es nicht anklicken ? Dann noch provokative Kommentare....

Selbstüberschätzung und Arroganz sind Kernkompetenzen für ein persönliches scheitern. Ich wette nach dem Video weiß derjenige mehr als die Schlaumeier hier ;)
 
Zuletzt bearbeitet:
Der Zeitgeist der Jugend heute, die nur durch ein Video lernen kann? :rolleyes: Darüber sollte man sich mal Gedanken machen, oder?

Also, zu meiner Zeit, C64, Amiga und Atari, sorry, da war so was Basiswissen, was man an jeder Computerzeitschrift und in jedem Computerbuch innerhalb von wenigen Minuten anlesen konnte. Das hat nix mit elitär geschweige den Arroganz zu tun. So was ist doch innerhalb von Minuten einlesbar, oder mittels eines kleinen Tutorials schnell selbst realisierbar, dazu gibt es im Netz zig FAQs und Co.

Ich finde das schon sehr erschreckend, wenn jemand in einem IT-Beruf dieses Basiswissen nicht mehr hat.

Oder lernt Ihr auch nur über Videos, woher die Babies kommen? :rolleyes:

Einfach mal ein entsprechendes Buch in die Hand nehmen, oder etwas aus dem Netz lesen. Das für normal intelligente Leute innerhalb von 15-30 min passiert, und spart dann die restlichen 4 Stunden des Videos für was anderes .... und das ist weder zynisch noch böse gemeint.
 
PHuV schrieb:
Der Zeitgeist der Jugend heute, die nur durch ein Video lernen kann? :rolleyes: Darüber sollte man sich mal Gedanken machen, oder?

Also, zu meiner Zeit, C64, Amiga und Atari, sorry, da war so was Basiswissen, was man an jeder Computerzeitschrift und in jedem Computerbuch innerhalb von wenigen Minuten anlesen konnte. Das hat nix mit elitär geschweige den Arroganz zu tun. So was ist doch innerhalb von Minuten einlesbar, oder mittels eines kleinen Tutorials schnell selbst realisierbar, dazu gibt es im Netz zig FAQs und Co.

Ich finde das schon sehr erschreckend, wenn jemand in einem IT-Beruf dieses Basiswissen nicht mehr hat.

Oder lernt Ihr auch nur über Videos, woher die Babies kommen? :rolleyes:

Einfach mal ein entsprechendes Buch in die Hand nehmen, oder etwas aus dem Netz lesen. Das für normal intelligente Leute innerhalb von 15-30 min passiert, und spart dann die restlichen 4 Stunden des Videos für was anderes .... und das ist weder zynisch noch böse gemeint.

Umgekehrt, in der heutigen Zeit kann man fast alles über Videos lernen. Die Details holt man sich dann aus Fachbüchern oder Artikel aus dem Netz. Dies betrifft jedes Thema, nicht nur IT und ja sogar Aufklärung ist dabei! Wer das nicht nutzen möchte, der nutzt es einfach nicht - fertig.

Ozzy83 schrieb:
Viel erstaunlicher finde ich dass in Deutschen Foren der Umgang miteinander irgendwelchem pseudo Elitismus untergeordnet wird. Der Link ist brauchbar und gut gemeint, wem es nicht gefällt muss es nicht anklicken ? Dann noch provokative Kommentare....

Selbstüberschätzung und Arroganz sind Kernkompetenzen für ein persönliches scheitern. Ich wette nach dem Video weiß derjenige mehr als die Schlaumeier hier ;)

Danke!
 
Zuletzt bearbeitet:
Zurück
Oben