[VERSTÄNDNIS]Programmiersprachen
-
Hallo Leute,
ich kenne mich überhaupt nicht mit ASM aus. Ich weis eigentlich nur, dass asm für uns lesbar is im Gegensatz zum binären Code. Wenn man mit ASM eine eigene Sprache proggen würde ...proggt man sich dann in ASM einen Compiler der von Code in ASM Code und von ASM Code in binären Code umwandelt?
Danke!
MfG C-Chris
-
Warum sollte es einen Unterschied machen, ob ein Compiler in Assembler oder einer anderen Sprache implementiert ist (mal von der Zeitdauer bis zur relativ fehlerfreien Funktion abgesehen)?
-
Bashar schrieb:
Warum sollte es einen Unterschied machen, ob ein Compiler in Assembler oder einer anderen Sprache implementiert ist (mal von der Zeitdauer bis zur relativ fehlerfreien Funktion abgesehen)?
Also JA oder NEIN?! Aber danke für die Information,dass man mit einer Sprache auch wiederrum eine andere Sprach erfinden kann.
-
Die Frage ist nicht mit "JA" oder "NEIN" zu beantworten, da "man" nicht eindeutig definiert ist.
Mal davon ab, dass es egal ist, in welcher Sprache der Compiler implementiert ist, geben die meisten Compiler idR. gleich den Binaercode aus. Assembler gibt's von einigen Compilern jedoch auf Nachfrage.
Wenn "man" also jemanden meint, der sich beim Copmilerbau an einem durchschnittlichen "Produktivcomiler" orientiert, so lautet die Antwort: NEIN.
-
C-Chris schrieb:
Aber danke für die Information,dass man mit einer Sprache auch wiederrum eine andere Sprach erfinden kann.
Zum Erfinden einer Sprache braucht man überhaupt keine andere Sprache, das macht man einfach so. Man legt die Syntax und die Semantik fest. Es wäre natürlich wünschenswert, dafür auch eine Implementation zu haben, sei es ein Compiler oder ein Interpreter.
Ein Compiler besteht aber immer mindestens aus zwei Teilen, dem Frontend und dem Backend. Dabei ist das Frontend sprachabhängig und das Backend hardwareabhängig. Wenn du eine Sprache entwirfst, interessiert dich also das Backend anfangs erstmal nicht so sehr. Deshalb geben viele Compiler für Forschungssprachen erstmal C aus und nutzen einen C-Compiler als Backend. Das hat natürlich einige Nachteile, da C auch noch recht abstrakt ist und manche Sachen nicht effizient anbietet, aber erspart einigen Aufwand und gibt einem gleich kostenlos eine gewisse Plattformunabhängigkeit.
Traditionell schreibt man einen Compiler (Interpreter) für eine neue Sprache erstmal in einer anderen Sprache, meistens C. Dann schreibt man den Compiler in der Sprache selbst, und benutzt den in Schritt 1 erzeugten Compiler zur Übersetzung (Boostrapping).
-
Richtig, die antwort ist nein,..
oder doch eher ja??Nehmen wir ein kleines Beispiel,..
Wir haben einen FLASH µC, seien dessen opcodes bekannt,..
der vorhande SRAM und die FLASH kapazität reicht nicht konkret für das gesamte program aus, bzw. dieses programm soll sich individuell an jegliche situation anpassen. Da FLASH sich nicht unbegrenzt beschreiben lässt, kommt man halt auf die idee ein interpreter zu basteln, einfacher halber mit simplen opcodes die dann zur laufzeit intepretiert und in die µC codes übersetzt werden,...
Also baut man geschwindigkeitshalber den interpreterware des µC in ASM,.. weiter muss man, wenn man nicht gerade 0100110100 schreiben möchte einen eigenen Compiler schreiben, je nach platform kann das in C, tasm etc.. sein da ja eigentlich bloß klartext á la mov usend,send in dein spezifisches format umgewandelt werden muss, welches dann dein interpreter im µC in sowas umsetzt wiesbis UCSRA, UDRE rjmp sendbyte out UDR, send ret
also hier in dem fall kann durch aus für eine simplifizierte asm language auch in asm ein compiler und ein interpreter gebastelt werden,.. (siehe vorherigen beitrag)
gruß
-----------------------------
hä? kommasetzung? Casesensitivity? sowas gibts in der deutschen Sprache?
-
will hier denn niemand compiler in PHP schreiben?
uhh, genau, kennt jmd module für Asembler in PHP? wäre echt super!
-
Kleine Korrektur zu bashars Beitrag:
es heißt "Bootstrapping" (nur für den Fall, daß jemand danach sucht)
-
!? schrieb:
will hier denn niemand compiler in PHP schreiben?
uhh, genau, kennt jmd module für Asembler in PHP? wäre echt super!PHP, Hypertext Preprocessor (oder auch Pre-Hypertextprozessor), ursprünglich Personal Home Page Tools,...
Das ist ne plattformunabhängige interpreter sprache,..
Folglich die frage: wieso asm in php einbinden??? asm ist ja eigentlich platformabhängig (ausnahme: siehe letzteren beitrag von mir).
aber nochmal auf die frage des threadopeners zu antworten: ja, Upper language->asm->oppcode,...
seit gegrüßt