Push-Nachrichten von MacTechNews.de
Würden Sie gerne aktuelle Nachrichten aus der Apple-Welt direkt über Push-Nachrichten erhalten?
Forum>Entwickler>Frage zu Programmiersprache & Compiler

Frage zu Programmiersprache & Compiler

dom_beta28.03.1222:36

Hallo!

Da ich mal wieder in VBA programmiere, hat sich eine interessante Frage ergeben.

Wie werden eigentlich die Programmiersprachen entwickelt und wie funktioniert ein Compiler?

Ich mein, ein Computer versteht ja eigentlich eine Angabe wie "Msgbox" nicht, es müßte also übersetzt werden in Maschinencode.

Hat da jemand Infos dazu oder kann einen groben Abriss geben, wie das funktioniert?

Ich find das Thema höchst spannend.
„...“
0

Kommentare

jsh28.03.1223:45
Programmiersprachen denkt man sich "einfach" in Form einer Grammatik aus. Daraus kann man dann versuchen einen Compiler in einer bereits vorhandenen Programmiersprache zu programmieren. Funktioniert dieser, so kann man sogar den Compiler in der ausgedachten Programmiersprache programmieren. Der erste Compiler wurde somit in Maschinencode geschrieben.
Ein Compiler teilt zunächst den Programmiercode in kleinste Stücke ein und versucht sie in ihrer Reihenfolge der Grammatik der Programmiersprache zuzuordnen. Ist dies erfolgreich, so wird ein abstrakter Baum erstellt, welcher von seiner Wurzel aus abgearbeitet werden kann. Bei dem Baum ist es möglich jeden Knoten schon in mehr oder weniger guten Maschinencode zu überführen. Jedoch wird in der Praxis noch der sogenannte Zwischencode erzeugt und versucht diesen zu verbessern.
Ob du damit weiter kommst, weiß ich nicht. Ein Compiler führt u.a. die oben genannten Schritte durch, welche alle nicht trivial sind. Wenn du einen guten Einstieg in das Thema suchst, dann solltest du zunächst ein Programmiersprache können und dann einen Parser für einfache Kommandos (z.B. geklammerte mathematische Terme und dabei die Rechnenregeln beachten). Wenn du soweit bist, ist es sinnvoll die Frage, wie ein Compiler funktioniert, nochmals zu stellen
0
Blubs
Blubs29.03.1200:34
Hui, wäre es nicht logisch, dass Du selbst versuchst, solche eminent basalen Wissenslücken zu stopfen. Les mal Wikipedia und google mal rum. So schwer kann das doch nicht sein...
0
_mäuschen
_mäuschen29.03.1212:42

Kugle wisegeek what is a compiler

0
_mäuschen
_mäuschen29.03.1212:53


                                                                    Übrigens

                                      http://msdn.microsoft.com/en-us/bb188199.aspx

                                                                wenn schon VBA

0
DonQ
DonQ29.03.1213:35
Compiler ist fast immer wie Google Textübersetzung, manchmal brauchbar wenn es schnell gehen soll und auf Feinheiten kaum ankommt^^
„an apple a day, keeps the rats away…“
0
nane
nane29.03.1214:59
@dom_beta
Im Informatikstudium widmet man sich Deiner Fragestellung in den Vorlesungen zum Thema "Compilerbau". Das ist allerdings nicht wirklich trivial. Schon vor 20 Jahren als ich noch studiert habe, waren das viele Vorlesungen über mehrere Semester verteilt.

1. Grundsätzliches zum Compilerbau:

2. Google liefert auch viele Infos zu einer der herausragenden Persönlichkeiten zum Thema, einfach mal "Niklaus Wirth" eingeben.

3. Ein Vorlesungsskript von Herrn Prof. Dr. Reinhard Völler (früher FH, jetzt HAW Hamburg) zum Thema:

Frohes lesen!
„Das Leben ist ein langer Traum, an dessen Ende kein Wecker klingelt.“
0
DonQ
DonQ29.03.1217:08
sag mal, ist das nicht Grundlagen Computergeschichte, dass man weis was ein Compiler ist ?

Da wird es vielleicht auch verständlich:


Abgrenzung zu Hochsprachencompilern

Assembler sind immer spezifisch auf einen oder wenige Prozessortypen ausgerichtet. Assembler und Assemblersprache für die IA32-Architektur unterscheiden sich beispielsweise vollständig von dem für die MIPS-Architektur.

Manche Hochsprachencompiler übersetzen ein Programm zuerst in Assemblersprache und rufen dann einen Assembler zur Erzeugung von Maschinensprache auf. Während sich Hochsprachen eher an der menschlichen Sprache orientieren und somit verhältnismäßig leicht verständlich sind, orientiert sich Assemblersprache eng an der Maschine. In Assemblersprache werden die Opcodes (Befehle) der jeweiligen CPU mit Namen, den sogenannten Mnemonics, versehen und bilden damit ein direktes Abbild des Befehlssatzes der CPU. Während man sich in einer Hochsprache kaum oder überhaupt nicht um die darunterliegende CPU kümmern muss, so ist das Verständnis dieser bei Assembler die Voraussetzung.

„an apple a day, keeps the rats away…“
0

Kommentieren

Diese Diskussion ist bereits mehr als 3 Monate alt und kann daher nicht mehr kommentiert werden.