Assembler vs Compiler
Im Allgemeinen ist Compiler ein Computerprogramm, das ein Programm liest, das in einer Sprache geschrieben ist, die als Ausgangssprache bezeichnet wird, und es in eine andere Sprache übersetzt, die als Zielsprache bezeichnet wird. Traditionell war die Quellsprache eine Hochsprache wie C ++ und die Zielsprache eine Niedrigsprache wie die Assembler. Es gibt jedoch Compiler, die ein in Assembler geschriebenes Quellprogramm konvertieren und in Maschinencode oder Objektcode konvertieren können. Assembler sind solche Werkzeuge. So erzeugen sowohl Assembler als auch Compiler letztendlich Code, der direkt auf einer Maschine ausgeführt werden kann.
Was ist ein Compiler??
Compiler ist ein Computerprogramm, das ein Programm liest, das in einer Sprache geschrieben ist, die als Ausgangssprache bezeichnet wird, und es in eine andere Sprache übersetzt, die als Zielsprache bezeichnet wird. In den meisten Fällen handelt es sich bei der Ausgangssprache um eine Hochsprache, und die Zielsprache ist eine Muttersprache. Compiler können also im Allgemeinen als Übersetzer angesehen werden, die von einer Sprache in eine andere übersetzen. Außerdem führen Compiler einige Optimierungen des Codes durch. Ein typischer Compiler besteht aus mehreren Hauptkomponenten. Die erste Komponente ist der Scanner (auch als lexikalischer Analysator bekannt). Der Scanner liest das Programm und konvertiert es in eine Zeichenfolge. Die zweite Komponente ist der Parser. Die Zeichenfolge wird in einen Parser-Baum (oder einen abstrakten Syntaxbaum) umgewandelt, der die syntaktische Struktur des Programms erfasst. Die nächste Komponente sind die semantischen Routinen, die die Semantik der syntaktischen Struktur interpretieren. Darauf folgen die Code-Optimierungen und die endgültige Code-Generierung.
Was ist ein Assembler??
Assembler ist eine Software oder ein Tool, das Assemblersprache in Maschinencode übersetzt. Ein Assembler ist also ein Typ eines Compilers und der Quellcode ist in Assembler geschrieben. Assembler ist eine von Menschen lesbare Sprache, hat jedoch normalerweise eine Eins-zu-Eins-Beziehung zu dem entsprechenden Maschinencode. Daher wird von einem Assembler gesagt, dass er eine isomorphe (Eins-zu-Eins-Zuordnung) Übersetzung durchführt. Fortgeschrittene Assembler bieten zusätzliche Funktionen, die die Entwicklung und das Debuggen von Programmen unterstützen. Beispielsweise bietet der Assemblertyp, Makroassembler genannt, eine Makrofunktion.
Was ist der Unterschied zwischen einem Assembler und einem Compiler??
Compiler ist ein Computerprogramm, das ein in einer Sprache geschriebenes Programm liest und in eine andere Sprache übersetzt, während ein Assembler als spezieller Compiler-Typ betrachtet werden kann, der nur Assembler in Maschinencode übersetzt. Compiler erzeugen den maschinenausführbaren Code normalerweise direkt aus einer Hochsprache, Assembler hingegen erzeugen einen Objektcode, der möglicherweise über Linker-Programme verknüpft werden muss, um auf einer Maschine ausgeführt zu werden. Da die Assemblersprache eine Eins-zu-Eins-Zuordnung mit Maschinencode hat, kann ein Assembler zum Erzeugen von Code verwendet werden, der sehr effizient ausgeführt wird, wenn die Leistung sehr wichtig ist (z. B. Grafik-Engines, eingebettete Systeme mit im Vergleich zu einem Personalcomputer begrenzten Hardwareressourcen) wie Mikrowellen, Waschmaschinen usw.).