Fragen zu Programmen, die Code in einer Sprache (Ausgangssprache) lesen und in ein gleichwertiges Programm in einer anderen Sprache (Zielsprache) übersetzen.
Diese Frage wurde von Theoretical Computer Science Stack Exchange migriert, da sie über Computer Science Stack Exchange beantwortet werden kann. Vor 6 Jahren migriert . Warum sollte im Compiler-Design die Linksrekursion in Grammatiken beseitigt werden? Ich lese, dass es daran liegt, dass es eine unendliche Rekursion verursachen kann, aber gilt …
Die Assemblersprache wird vom Assembler in die Maschinensprache konvertiert. Warum sollte ein Compiler eine Hochsprache in eine Assembly konvertieren? Kann es nicht direkt von der Hochsprache in Maschinencode konvertiert werden?
Laut der Wikipedia-Seite zu statischer Einzelzuweisung (SSA) wird SSA von großen und bekannten Projekten wie LLVM, GCC, MSVC, Mono, Dalvik, SpiderMonkey und V8 verwendet, während die Seite zu Projekten im Continuation-Passing-Stil verwendet wird (CPS) ist im Vergleich etwas mangelhaft. Ich habe die Vorstellung, dass CPS von Compilern und Interpreten bevorzugt …
Es ist möglich, ein Dokument mit einem einzigen Durchgang von einem Zustandsautomaten aus zu analysieren. Was ist der Vorteil von zwei Durchgängen, dh. Haben Sie einen Lexer zum Konvertieren von Text in Token und einen Parser zum Testen der Produktionsregeln für diese Token? Warum nicht einen einzigen Durchgang haben, der …
Ich arbeite an einem Compiler für eine verkettete Sprache und möchte Unterstützung für Typinferenz hinzufügen. Ich verstehe Hindley-Milner, aber ich habe die Typentheorie im Laufe der Zeit gelernt, daher bin ich mir nicht sicher, wie ich sie anpassen soll. Ist das folgende System solide und eindeutig ableitbar? Ein Begriff ist …
Ich bin mit der Idee der grundlegenden Beseitigung der Schwanzrekursion vertraut , bei der Funktionen, die das direkte Ergebnis eines Aufrufs an sich selbst zurückgeben, als iterative Schleifen umgeschrieben werden können. foo(...): # ... return foo(...) Ich verstehe auch, dass die Funktion als Sonderfall immer noch umgeschrieben werden kann, wenn …
Gibt es einen Unterschied zwischen den beiden? Gemäß Ullmans Buch konvertieren Compiler eine Sprache in eine andere (normalerweise niedrige) Sprache, und ein Assembler auch. Wie unterscheiden sich die beiden?
Muss die Ausgabe eines Parsers ein Baum sein oder könnte es auch ein allgemeiner Graph sein? Gibt es darüber hinaus eine Sprache oder eine plausible Sprache, die allgemeine Diagrammdarstellungen anstelle von Bäumen für ihre Syntax verwendet?
Ich arbeite oft mit Lexer / Parser im Gegensatz zu einem Parser-Kombinator und sehe, dass Leute, die noch nie eine Klasse in Parsing besucht haben, nach dem Parsen von Binärdaten fragen. Typischerweise sind die Daten nicht nur binär, sondern auch kontextsensitiv. Dies führt im Grunde dazu, dass nur eine Art …
Ich habe ein Problem mit dieser Übung: Sei G die folgende mehrdeutige Grammatik für den λ-Kalkül: E → v | λv.E | EE | (E) wobei E das einzelne nicht-terminale Symbol ist, λv.E die Abstraktion der Variablen v in E darstellt und EE die Anwendung darstellt. Definieren Sie eine LL …
Ich denke, ich verstehe, wie die Entwaldung eine Liste gleichzeitig verbraucht und produziert (von einer Fold- und einer Unfold- Funktion - siehe diese gute Antwort auf CodeReview hier ), aber als ich das mit dem Wikipedia-Eintrag über die Technik verglich, von der es sprach, "Entfernen" Bäume 'aus einem Programm. Ich …
Ich studiere vor kurzem über das Entwerfen von Compilern. Ich habe zwei Arten von Grammatik kennengelernt: die LL-Grammatik und die LR-Grammatik. Wir kennen auch die Tatsachen, dass jede LL-Grammatik LR ist, das heißt, LL-Grammatik ist eine richtige Teilmenge der LR-Grammatik. Die erste Methode wird beim Parsen von oben nach unten …
In einem Kommentar zu Learning F #: Welche Bücher mit anderen Programmiersprachen können in F # übersetzt werden, um funktionale Konzepte zu lernen? Makarius erklärte: Beachten Sie, dass der "CPS" -Ansatz die Leistung in SML / NJ erheblich beeinträchtigt hat. Das physikalische Bewertungsmodell verstößt gegen zu viele Annahmen, die in …
Bei der Arbeit wurde ich beauftragt, einige Typinformationen über eine dynamische Sprache abzuleiten. Ich schreibe Folgen von Anweisungen in verschachtelte letAusdrücke um, wie folgt: return x; Z => x var x; Z => let x = undefined in Z x = y; Z => let x = y in Z …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.