Als «compiler-construction» getaggte Fragen

Die Tag-Compiler-Konstruktion sollte auf Fragen zur Programmierung von Compilern oder auf Fragen zum detaillierten Innenleben von Compilern angewendet werden. NICHT VERWENDEN für Fragen zur * Verwendung * bestimmter Compiler oder Kompilierungsfehler.

6
Welche Arten von Mustern könnte ich für den Code erzwingen, um die Übersetzung in eine andere Programmiersprache zu erleichtern? [geschlossen]
Geschlossen . Diese Frage muss fokussierter sein . Derzeit werden keine Antworten akzeptiert. Möchten Sie diese Frage verbessern? Aktualisieren Sie die Frage so, dass sie sich nur auf ein Problem konzentriert, indem Sie diesen Beitrag bearbeiten . Geschlossen vor 5 Jahren . Verbessere diese Frage Ich mache mich auf den …

11
Ist die Erstellung von Java-Klassendateien deterministisch?
Sind bei Verwendung desselben JDK (dh derselben javacausführbaren Datei) die generierten Klassendateien immer identisch? Kann es je nach Betriebssystem oder Hardware einen Unterschied geben ? Könnten außer der JDK-Version noch andere Faktoren zu Unterschieden führen? Gibt es Compileroptionen, um Unterschiede zu vermeiden? Ist ein Unterschied nur theoretisch möglich oder erzeugt …

4
Kompilieren vs Transpilieren
Bei der Suche nach dem Unterschied bin ich auf folgende Definitionen gestoßen: Kompilieren ist der allgemeine Begriff für das Aufnehmen von in einer Sprache geschriebenem Quellcode und dessen Umwandlung in eine andere. Transpiling ist ein spezifischer Begriff für die Verwendung von in einer Sprache geschriebenem Quellcode und die Umwandlung in …

8
Erstellen Sie eine JVM-Programmiersprache
Ich habe einen Compiler in C (mit Lex & Bison) für eine dynamisch typisierte Programmiersprache erstellt, die Schleifen, Funktionsdeklarationen innerhalb von Funktionen, rekursive Aufrufe usw. unterstützt. Außerdem habe ich eine virtuelle Maschine erstellt, die den vom Compiler erstellten Zwischencode ausführt. Ich dachte jetzt, anstatt zu meinem eigenen Zwischencode zu kompilieren, …



6
Produzieren Compiler besseren Code für Do-While-Schleifen als für andere Arten von Schleifen?
In der zlib-Komprimierungsbibliothek (die unter anderem im Chromium-Projekt verwendet wird) gibt es einen Kommentar, der impliziert, dass eine Do-While-Schleife in C auf den meisten Compilern "besseren" Code generiert. Hier ist der Codeausschnitt, in dem er angezeigt wird. do { } while (*(ushf*)(scan+=2) == *(ushf*)(match+=2) && *(ushf*)(scan+=2) == *(ushf*)(match+=2) && *(ushf*)(scan+=2) …

7
Wie kann sich der Linux-Kernel selbst kompilieren?
Ich verstehe den Kompilierungsprozess des Linux-Kernels nicht ganz, wenn ich ein Linux-System auf meinem Computer installiere. Hier sind einige Dinge, die mich verwirrt haben: Der Kernel ist in C geschrieben. Wie wurde der Kernel jedoch ohne installierten Compiler kompiliert? Wenn der C-Compiler vor dem Kompilieren des Kernels auf meinem Computer …

7
Warum ist das Schreiben eines Compilers in einer funktionalen Sprache einfacher? [geschlossen]
Geschlossen . Diese Frage basiert auf Meinungen . Derzeit werden keine Antworten akzeptiert. Möchten Sie diese Frage verbessern? Aktualisieren Sie die Frage, damit sie mit Fakten und Zitaten beantwortet werden kann, indem Sie diesen Beitrag bearbeiten . Geschlossen vor 2 Jahren . Verbessere diese Frage Ich habe sehr lange über …

6
Sind GCC- und Clang-Parser wirklich handgeschrieben?
Es scheint, dass GCC und LLVM-Clang handgeschriebene Parser für rekursiven Abstieg verwenden und keine maschinengenerierte, Bison-Flex-basierte Bottom-up-Analyse. Könnte hier jemand bitte bestätigen, dass dies der Fall ist? Und wenn ja, warum verwenden Mainstream-Compiler-Frameworks handgeschriebene Parser? Update : interessanter Blog zu diesem Thema hier




8
Warum springt GDB unvorhersehbar zwischen Zeilen und druckt Variablen als "<Wert optimiert aus>"?
Kann jemand dieses Verhalten von GDB erklären? 900 memset(&amp;new_ckpt_info,'\0',sizeof(CKPT_INFO)); (gdb) **903 prev_offset = cp_node-&gt;offset;** (gdb) **905 m_CPND_CKPTINFO_READ(ckpt_info,(char *)cb-&gt;shm_addr.ckpt_addr+sizeof(CKPT_** HDR),i_offset); (gdb) **903 prev_offset = cp_node-&gt;offset;** (gdb) **905 m_CPND_CKPTINFO_READ(ckpt_info,(char *)cb-&gt;shm_addr.ckpt_addr+sizeof(CKPT_ HDR),i_offset);** (gdb) **908 bitmap_offset = client_hdl/32;** (gdb) **910 bitmap_value = cpnd_client_bitmap_set(client_hdl%32);** (gdb) **908 bitmap_offset = client_hdl/32;** (gdb) **910 bitmap_value = cpnd_client_bitmap_set(client_hdl%32);** (gdb) …


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.