Bereiche
News
Rewind
Tipps & Berichte
Forum
Galerie
Journals
Events
Umfragen
Themenwoche
Kleinanzeigen
Interaktiv
Anmelden
Registrierung
Zu allen empfangenen Nachrichten
Suche...
Zur erweiterten Suche
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_beta
28.03.12
22: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.
„...“
Hilfreich?
0
Kommentare
jsh
28.03.12
23: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
Hilfreich?
0
Blubs
29.03.12
00: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...
Hilfreich?
0
_mäuschen
29.03.12
12:42
Kugle
wisegeek what is a compiler
Hilfreich?
0
_mäuschen
29.03.12
12:53
Übrigens
http://msdn.microsoft.com/en-us/bb188199.aspx
wenn schon VBA
Hilfreich?
0
DonQ
29.03.12
13: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…“
Hilfreich?
0
nane
29.03.12
14: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.“
Hilfreich?
0
DonQ
29.03.12
17: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…“
Hilfreich?
0
Kommentieren
Diese Diskussion ist bereits mehr als 3 Monate alt und kann daher nicht mehr kommentiert werden.
Gurman zum Release des neuen Apple TV, HomePods...
Mac-Wartung: Alte Kernel-Erweiterungen entfernen
2 TByte für 259 US-Dollar: Erste Upgrade-SSDs f...
PIN-Code erraten: Dauer
Parallels führt x86-Windows auf M-Macs aus – Te...
Top Five 2024
Mac ausschalten?
Vor 18 Jahren: iPhone, Apple TV und "Apple Inc."