Heim » Die dreistufige Compilerstruktur

Die dreistufige Compilerstruktur

1980
Programmer working on three-stage compiler structure in a software development office.

Ein moderner Compiler ist typischerweise in drei Phasen strukturiert: Front-End, Middle-End und Back-End. Das Front-End analysiert den Quellcode, prüft ihn auf Korrektheit und erstellt eine Zwischendarstellung (IR). Das Middle-End führt Optimierungen an dieser IR durch. Das Back-End übersetzt dann die optimierte IR in Zielmaschinencode für eine bestimmte CPU-Architektur.

Dieses modulare dreistufige Design ermöglicht eine entscheidende Trennung der Belange. Das Frontend ist sprachabhängig, aber maschinenunabhängig; es versteht die Syntax und Semantik einer bestimmten Sprache wie C++ oder Rust. Seine Ausgabe, die Intermediate Representation (IR), ist eine abstrakte, maschinenunabhängige Datenstruktur wie ein Abstract Syntax Tree (AST) oder Three-Address Code. Dadurch wird die Quellsprache von der Zielmaschine entkoppelt.

Der mittlere Bereich ist weitgehend sprach- und maschinenunabhängig. Er verwendet die IR und wendet eine Reihe von Optimierungsdurchläufen an, wie z. B. die Eliminierung von Dead Code, Konstantenfaltung und Schleifenoptimierungen. Da er auf der generischen IR operiert, können diese komplexen Optimierungen einmal geschrieben und auf jede Sprache angewendet werden, die in diese IR kompiliert werden kann.

Das Backend schließlich ist maschinenabhängig, aber sprachunabhängig. Es verwendet die optimierte IR und führt Befehlsauswahl, Registerzuweisung und Befehlsplanung durch, um effizienten Maschinencode für eine bestimmte Zielarchitektur wie x86-64 oder ARM zu generieren. Diese Struktur ermöglicht die Entwicklung von Compilern, die M Sprachen und N Ziele unterstützen, indem M Frontends und N Backends anstelle von M*N einzelnen Compilern geschrieben werden. Dieses Prinzip wird durch moderne Compiler-Infrastrukturen wie GCC und LLVM veranschaulicht.

UNESCO Nomenclature: 1203
- Computerwissenschaften

Typ

Abstraktes System

Unterbrechung

Grundlegendes

Verwendung

Weit verbreitete Verwendung

Vorläufersubstanzen

  • frühe monolithische Compiler-Designs
  • concept of abstraction in Software Technik
  • Entwicklung von Zwischensprachen in frühen Systemen
  • Forschung zu portabler Software (zB das P-Code-System)

Anwendungen

  • Retargetable Compiler (zB GCC, llvm)
  • Cross-Kompilierung für verschiedene Hardwareplattformen
  • sprachunabhängige Optimierungsframeworks
  • Entwicklung neuer Programmiersprachen durch die bloße Erstellung eines neuen Frontends
  • statische Analysetools, die auf Zwischendarstellungen basieren

Patente:

NA

Mögliche Innovationsideen

!Professionals (100% free) Mitgliedschaft erforderlich

Sie müssen ein Professionals (100% free) Mitglied sein, um auf diesen Inhalt zugreifen zu können.

Jetzt teilnehmen

Sie sind bereits Mitglied? Hier einloggen
Related to: compiler design, front end, middle end, back end, intermediate representation, ir, optimization, code generation, modularity, GCC, llvm.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

VERFÜGBAR FÜR NEUE HERAUSFORDERUNGEN
Maschinenbauingenieur, Projekt-, Verfahrenstechnik- oder F&E-Manager
Effektive Produktentwicklung

Kurzfristig für eine neue Herausforderung verfügbar.
Kontaktieren Sie mich auf LinkedIn
Integration von Kunststoff-Metall-Elektronik, Design-to-Cost, GMP, Ergonomie, Geräte und Verbrauchsmaterialien in mittleren bis hohen Stückzahlen, Lean Manufacturing, regulierte Branchen, CE und FDA, CAD, Solidworks, Lean Sigma Black Belt, medizinische ISO 13485

Wir suchen einen neuen Sponsor

 

Ihr Unternehmen oder Ihre Institution beschäftigt sich mit Technik, Wissenschaft oder Forschung?
> Senden Sie uns eine Nachricht <

Erhalten Sie alle neuen Artikel
Kostenlos, kein Spam, E-Mail wird nicht verteilt oder weiterverkauft

oder Sie können eine kostenlose Vollmitgliedschaft erwerben, um auf alle eingeschränkten Inhalte zuzugreifen >Hier<

Historischer Kontext

(wenn das Datum nicht bekannt oder nicht relevant ist, z. B. "Strömungsmechanik", wird eine gerundete Schätzung des bemerkenswerten Erscheinens angegeben)

Verwandte Erfindungen, Innovationen und technische Prinzipien

Nach oben scrollen

Das gefällt dir vielleicht auch