Heim häufiges Problem Welche Systemsoftware kann Hochsprachen-Quellprogramme in Zielprogramme umwandeln?

Welche Systemsoftware kann Hochsprachen-Quellprogramme in Zielprogramme umwandeln?

Jul 26, 2022 pm 02:58 PM
高级语言 源程序 目标程序

Die Systemsoftware, die Quellprogramme in Hochsprache in Zielprogramme verarbeitet, ist ein „Compiler“. Ein Compiler bezieht sich auf ein Übersetzungsprogramm, das ein in einer höheren Programmiersprache geschriebenes Quellprogramm in ein entsprechendes Zielprogramm im Maschinensprachenformat übersetzt. Der Arbeitsprozess eines Compilers zum Übersetzen eines Quellprogramms in ein Zielprogramm ist in fünf Phasen unterteilt: lexikalische Analyse; Analyse: Wenn bei der Analyse grammatikalische Fehler festgestellt werden, wird eine entsprechende Meldung angezeigt.

Welche Systemsoftware kann Hochsprachen-Quellprogramme in Zielprogramme umwandeln?

Die Betriebsumgebung dieses Tutorials: Windows 7-System, Dell G3-Computer.

Systemsoftware, die in Hochsprachen geschriebene Quellprogramme in Zielprogramme verarbeiten kann, ist ein „Compiler“.

Compiler (Compilerprogramm), auch Compiler genannt, bezieht sich auf ein Übersetzungsprogramm, das ein in einer höheren Programmiersprache geschriebenes Quellprogramm in ein entsprechendes Zielprogramm im Maschinensprachenformat übersetzt. Compiler sind Übersetzungsprogramme, die mithilfe eines generativen Implementierungsansatzes implementiert werden. Als Eingabe wird ein in einer höheren Programmiersprache geschriebenes Quellprogramm und als Ausgabe ein in Assemblersprache oder Maschinensprache ausgedrücktes Zielprogramm benötigt. Das kompilierte Zielprogramm durchläuft in der Regel auch eine laufende Phase, um mit Unterstützung des laufenden Programms abzulaufen, die Ausgangsdaten zu verarbeiten und die erforderlichen Berechnungsergebnisse zu berechnen.

Der Compiler muss das Quellprogramm analysieren und es dann in das Zielprogramm synthetisieren. Überprüfen Sie zunächst die Korrektheit des Quellprogramms und zerlegen Sie es in mehrere Grundkomponenten. Zweitens erstellen Sie auf Basis dieser Grundkomponenten entsprechende äquivalente Zielprogrammteile. Um diese Aufgaben zu erledigen, muss der Compiler während der Analysephase einige Tabellen erstellen und das Quellprogramm in eine Zwischensprachform umwandeln, damit es während der Analyse und Synthese leicht referenziert und verarbeitet werden kann.

Funktionen des Compilers:

Der Compiler muss das Quellprogramm analysieren und es dann in das Zielprogramm synthetisieren. Überprüfen Sie zunächst die Korrektheit des Quellprogramms und zerlegen Sie es in mehrere Grundkomponenten. Zweitens erstellen Sie auf Basis dieser Grundkomponenten entsprechende äquivalente Zielprogrammteile. Um diese Aufgaben zu erledigen, muss der Compiler während der Analysephase einige Tabellen erstellen und das Quellprogramm in eine Zwischensprachform umwandeln, damit es während der Analyse und Synthese leicht referenziert und verarbeitet werden kann.

Hauptdatenstrukturen, die bei der Datenstrukturanalyse und -synthese verwendet werden, einschließlich Symboltabellen, Konstantentabellen und Zwischensprachenprogrammen. Die Symboltabelle besteht aus den im Quellprogramm verwendeten Bezeichnern zusammen mit ihren Attributen, zu denen Typen (wie Variablen, Arrays, Strukturen, Funktionen, Prozeduren usw.), Typen (wie ganze Zahlen, reelle Typen, Zeichenfolgen, komplexe Typen) gehören , Etiketten) usw.) und andere vom Zielprogramm benötigte Informationen. Die Konstantentabelle besteht aus den im Quellprogramm verwendeten Konstanten, einschließlich der Maschinendarstellung der Konstanten, und den ihnen zugeordneten Zielprogrammadressen. Ein Zwischensprachenprogramm ist eine Zwischenform eines Programms, das vor der Übersetzung des Quellprogramms in das Zielprogramm eingeführt wird. Die Wahl seiner Darstellung hängt davon ab, wie der Compiler es später verwenden und verarbeiten wird. Zu den häufig verwendeten Zwischenformen in der Sprache gehören die polnische Darstellung, Dreier-, Vierer- und indirekte Dreierformen.

Die Analyse eines Teils des Quellprogramms erfolgt in drei Schritten: lexikalische Analyse, Syntaxanalyse und semantische Analyse. Die lexikalische Analyse wird durch ein lexikalisches Analyseprogramm (auch Scanner genannt) vervollständigt, dessen Aufgabe darin besteht, Wörter zu identifizieren (d. h. Bezeichner, Konstanten, reservierte Wörter und verschiedene Operatoren, Satzzeichen usw.), Symboltabellen und Konstantentabellen zu erstellen und konvertieren Das Quellprogramm wird in eine interne Form konvertiert, die vom Compiler leicht analysiert und verarbeitet werden kann. Der Syntaxanalysator ist der Kernbestandteil des Compilers. Seine Hauptaufgabe besteht darin, zu überprüfen, ob das Quellprogramm den grammatikalischen Regeln der Sprache entspricht. Wenn es nicht grammatikalisch ist, wird eine Syntaxfehlermeldung ausgegeben. Wenn es grammatikalisch ist, wird die grammatikalische Struktur des Quellprogramms zerlegt und ein internes Programm in Form einer Zwischensprache erstellt. Der Zweck der grammatikalischen Analyse besteht darin, zu verstehen, wie Wörter Sätze bilden und wie Aussagen Programme bilden. Das semantische Analyseprogramm prüft außerdem die semantische Korrektheit legaler Programmstrukturen. Sein Zweck besteht darin, die korrekte Verwendung von Bezeichnern und Konstanten sicherzustellen, notwendige Informationen in Symboltabellen oder Zwischensprachenprogrammen zu sammeln und eine entsprechende semantische Verarbeitung durchzuführen.

Der Arbeitsprozess eines Compilers

Ein Compiler wird auch als Kompilierungssystem bezeichnet. Es handelt sich um ein Sprachverarbeitungsprogramm, das in Hochsprachen geschriebene prozessorientierte Quellprogramme in Zielprogramme übersetzt. Der Prozess der Übersetzung eines Quellprogramms in ein Zielprogramm ist in fünf Phasen unterteilt: lexikalische Analyse und Optimierung des Zielcodes. Es führt hauptsächlich eine lexikalische Analyse und eine Syntaxanalyse durch, die auch als Quellprogrammanalyse bezeichnet wird. Während des Analyseprozesses werden grammatikalische Fehler gefunden und umgehend Informationen bereitgestellt.

(1) Lexikalische Analyse

Die Aufgabe der lexikalischen Analyse besteht darin, aus Zeichen bestehende Wörter zu verarbeiten, das Quellprogramm Zeichen für Zeichen von links nach rechts zu scannen, Wortsymbole nacheinander zu generieren und sie als Zeichenfolgen zu verwenden. Die Quelle Das Programm wird in ein Zwischenprogramm aus Wortsymbolketten umgewandelt. Ein Programm, das eine lexikalische Analyse durchführt, wird Lexer oder Scanner genannt.

Die Wortsymbole im Quellprogramm werden vom Scanner analysiert und erzeugen im Allgemeinen binäre Formeln: Wortkategorie; der Wert des Wortes selbst. Wortkategorien werden normalerweise mit ganzen Zahlen codiert. Wenn eine Kategorie nur ein Wortsymbol enthält, stellt die Kategoriecodierung für dieses Wortsymbol vollständig ihren eigenen Wert dar. Wenn eine Kategorie viele Wortsymbole enthält, sollte für jedes ihrer Wortsymbole zusätzlich zum Kategoriecode auch ein eigener Wert angegeben werden.

Im Allgemeinen gibt es zwei Möglichkeiten, lexikalische Analysatoren zu erstellen: manuelle Konstruktion und automatische Generierung. Die manuelle Konstruktion kann mithilfe von Zustandsdiagrammen funktionieren, die automatische Generierung kann mithilfe deterministischer endlicher Automaten implementiert werden.

(2) Syntaxanalyse

Der Syntaxanalysator des Compilers verwendet Wortsymbole als Eingabe und analysiert, ob die Wortsymbolzeichenfolge eine grammatikalische Einheit bildet, die den grammatikalischen Regeln entspricht, z. B. Ausdruck, Zuweisung, Schleife usw. und prüft schließlich, ob ein Programm, das die Anforderungen erfüllt, gemäß den in der Sprache verwendeten Grammatikregeln analysiert wird, um zu überprüfen, ob jede Aussage eine korrekte logische Struktur hat. Das Programm ist die endgültige grammatikalische Einheit. Die grammatikalischen Regeln eines Compilers können durch eine kontextfreie Grammatik charakterisiert werden.

Es gibt zwei Methoden der Grammatikanalyse: Top-Down-Analyse und Bottom-Up-Analyse. Von oben nach unten bedeutet, vom Startsymbol der Grammatik auszugehen, nach unten abzuleiten und den Satz abzuleiten. Die Bottom-Up-Analysemethode verwendet die Shift-In-Reduction-Methode. Die Grundidee besteht darin, die Eingabesymbole einzeln in den Stapel zu verschieben, wenn sich die Oberseite des Stapels bildet eine Produktion eines bestimmten Wenn ein Kandidatenausdruck gefunden wird, wird der Teil oben im Stapel auf das links benachbarte Symbol der Produktion reduziert.

(3) Zwischencode-Generierung

Zwischencode ist eine interne Darstellung des Quellprogramms oder der Zwischensprache. Die Funktion des Zwischencodes besteht darin, die Struktur des kompilierten Programms logisch einfacher und klarer zu machen, insbesondere um die Optimierung des Zielcodes einfacher umzusetzen. Der Zwischencode ist das Zwischensprachenprogramm, und die Komplexität der Zwischensprache liegt zwischen der Quellprogrammsprache und der Maschinensprache. Es gibt viele Formen der Zwischensprache, gängige sind die umgekehrte polnische Notation, Tetragramme, ternäre Formen und Bäume.

(4) Codeoptimierung

Codeoptimierung bezieht sich auf die Durchführung mehrerer gleichwertiger Transformationen am Programm, sodass ausgehend vom transformierten Programm effektiverer Zielcode generiert werden kann. Die sogenannte Äquivalenz bedeutet, dass die laufenden Ergebnisse des Programms nicht verändert werden. Die sogenannte Effektivität bezieht sich hauptsächlich auf die kurze Laufzeit des Zielcodes und den geringen belegten Speicherplatz. Diese Transformation wird Optimierung genannt.

Es gibt zwei Arten der Optimierung: Eine besteht darin, den Zwischencode nach der Syntaxanalyse zu optimieren, die nicht vom jeweiligen Computer abhängt. Die andere wird beim Generieren des Zielcodes durchgeführt und hängt weitgehend vom jeweiligen Computer ab. Die erstere Art der Optimierung kann je nach Umfang des betreffenden Programms in drei verschiedene Ebenen unterteilt werden: lokale Optimierung, Schleifenoptimierung und globale Optimierung.

(5) Zielcodegenerierung

Die Zielcodegenerierung ist die letzte Stufe der Kompilierung. Der Zielcodegenerator wandelt den geparsten oder optimierten Zwischencode in Zielcode um. Es gibt drei Formen von Zielcode:

① Maschinensprachcode, der sofort ausgeführt werden kann, alle Adressen werden verschoben.

② Maschinensprachmodule müssen zusammengestellt werden. Wenn sie ausgeführt werden müssen, kombiniert der Linkloader sie mit einigen Ausführungen Programme Verbinden Sie sie und konvertieren Sie sie in ausführbaren Maschinensprachencode.

③ Assemblersprachencode muss von einem Assembler kompiliert werden, um ausführbaren Maschinensprachencode zu werden.

Drei Aspekte, die sich direkt auf die Geschwindigkeit des Zielcodes auswirken, sollten während der Zielcode-Generierungsphase berücksichtigt werden: erstens, wie man kürzeren Zielcode generiert, zweitens, wie man die Register im Computer vollständig nutzt und die Anzahl reduziert 3. Wie man die Eigenschaften des Computeranweisungssystems voll ausnutzt, um die Qualität des Zielcodes zu verbessern.

Weitere Informationen zu diesem Thema finden Sie in der Spalte „FAQ“!

Das obige ist der detaillierte Inhalt vonWelche Systemsoftware kann Hochsprachen-Quellprogramme in Zielprogramme umwandeln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Was sind die Merkmale von Maschinensprache, Assemblersprache und Hochsprache? Was sind die Merkmale von Maschinensprache, Assemblersprache und Hochsprache? Apr 22, 2021 pm 04:00 PM

Merkmale der Maschinensprache: schwer zu erlernen, zu verstehen und nicht universell; erfordert manuelle Speicherzuweisung; Die Merkmale der Assemblersprache: Die Ausführungseffizienz des Programms ist sehr hoch, es nimmt wenig Speicherplatz ein, es fehlt ihm an Vielseitigkeit und das Programm ist nicht einfach zu übertragen. Merkmale von Hochsprachen: einfach, gewisse Vielseitigkeit und kann von Computern nicht direkt erkannt und ausgeführt werden.

Welche Systemsoftware kann in Hochsprachen geschriebene Quellprogramme in Zielprogramme übersetzen? Welche Systemsoftware kann in Hochsprachen geschriebene Quellprogramme in Zielprogramme übersetzen? Jan 22, 2021 pm 05:36 PM

Systemsoftware, die in Hochsprachen geschriebene Quellprogramme in Zielprogramme übersetzen kann, ist ein „Compiler“. Ein Compiler ist ein Übersetzungsprogramm, das mithilfe eines generativen Implementierungsansatzes implementiert wird. Er verwendet ein in einer höheren Programmiersprache geschriebenes Quellprogramm als Eingabe und verwendet ein in Assemblersprache oder Maschinensprache ausgedrücktes Zielprogramm als Ausgabe.

Ist Assemblersprache eine Hochsprache? Ist Assemblersprache eine Hochsprache? Jan 30, 2023 pm 03:14 PM

Die Assemblersprache ist keine Hochsprache; sie ist eine Niedrigsprache wie die Maschinensprache. Der Unterschied zwischen Assemblersprache und Hochsprache: 1. Die Programmiereffizienz der Assemblersprache ist nicht hoch, während die Programmiereffizienz der Hochsprache höher ist als die der Assemblersprache höher als die der Assemblersprache; 3. Die Assemblersprache ist eine Maschinensprache, während die Hochsprache vereinfacht ist und der menschlichen natürlichen Sprache nahe kommt.

Ist Maschinensprache eine Hochsprache? Ist Maschinensprache eine Hochsprache? Aug 22, 2023 pm 05:13 PM

Maschinensprache ist keine Hochsprache, sondern eine Niedrigsprache, die für Computerhardware verwendet wird. Sie interagiert direkt mit der zugrunde liegenden Hardware des Computers. Jede Anweisung entspricht einer Operation oder Funktion der Computerhardware. Hochsprache ist eine Programmiersprache, die der menschlichen Sprache näher kommt und höhere Abstraktionsfähigkeiten und Entwicklungseffizienz bietet. Maschinensprache und Hochsprache spielen unterschiedliche Rollen in der Programmierung, jede mit ihren eigenen Vorteilen anwendbare Szenarien.

Veröffentlichung des weltweit ersten Open-Source-humanoiden Roboters auf Hongmeng-Basis, der die Hochsprache JS/ArkTS unterstützt Veröffentlichung des weltweit ersten Open-Source-humanoiden Roboters auf Hongmeng-Basis, der die Hochsprache JS/ArkTS unterstützt Nov 17, 2023 pm 08:07 PM

Kuai Technology berichtete am 17. November, dass Shenzhen Kaihong heute Morgen bekannt gab, dass der erste humanoide KaihongOS-Roboter auf Basis des Open-Source-Hongmeng, der gemeinsam von ihm und Leju Robot entwickelt wurde, offiziell veröffentlicht wurde. Der offiziellen Einführung zufolge handelt es sich um ein rundum intelligentes Lehrsystem, das mit KaihongOS ausgestattet ist und Roboter als Träger verwendet, das mehrere Szenarien wie Industrie und Dienstleistungen abdeckt. Dieser Roboter ist mit einem Blutsauerstoff-Herzfrequenzsensor, einem Temperatur- und Feuchtigkeitssensor, einem Infrarot-Temperatursensor, einem Induktionssensor für den menschlichen Körper, NFC, einem OLED-Display und LED-Leuchten ausgestattet. Durch die Erkennung mehrerer Gelenke kann er Entscheidungen intelligent ausführen. Gleichzeitig kann der Roboter auch in Echtzeit mit Mobiltelefonen, Tablets, Computern und anderen Geräten verbunden werden, wodurch die herkömmliche Kabelbaumverbindungsmethode entfällt und die Unterrichtseffizienz verbessert wird. Gleichzeitig hat dieser Roboter auch 17

Wo befindet sich die Hauptfunktion im C-Quellprogramm? Wo befindet sich die Hauptfunktion im C-Quellprogramm? Nov 19, 2020 am 11:06 AM

Die C-Sprache legt fest, dass die Position der Hauptfunktion in einem Quellprogramm beliebig sein kann. Wenn ein in der C-Sprache geschriebenes Programm ausgeführt wird, entspricht die Hauptfunktion dem Eingang zum Ausführungsprogramm, unabhängig von der Position der Hauptfunktion Während des gesamten Prozesses startet ein C-Programm die Ausführung immer von der MAM-Funktion aus.

Funktionsanalyse der Go-Sprache: Ist es eine Hochsprache? Funktionsanalyse der Go-Sprache: Ist es eine Hochsprache? Mar 23, 2024 pm 04:00 PM

Funktionsanalyse der Go-Sprache: Ist es eine Hochsprache? Die Go-Sprache ist eine von Google entwickelte statisch stark typisierte Programmiersprache. Sie ist einfach, leicht zu lesen und zu schreiben und verfügt über effiziente Parallelitätsfunktionen. Lassen Sie uns also gemäß der Definition einer Hochsprache analysieren, ob die Go-Sprache eine Hochsprache ist. Definition einer Hochsprache Eine Hochsprache ist eine Programmiersprache, die der menschlichen Sprache näher kommt als der Maschinensprache. Es zeichnet sich durch eine prägnante Syntax, einfaches Lesen und Schreiben sowie einen hohen Abstraktionsgrad aus, der es Programmierern ermöglicht, sich mehr auf die Lösung des Problems selbst zu konzentrieren.

Was ist das geschriebene Programm, das als Quellprogramm bezeichnet wird? Was ist das geschriebene Programm, das als Quellprogramm bezeichnet wird? Aug 29, 2022 pm 04:47 PM

Ein in einer „Programmiersprache“ geschriebenes Programm wird als Quellprogramm bezeichnet. Quellcode bezieht sich auf eine nicht kompilierte Textdatei, die gemäß bestimmten Programmiersprachenspezifikationen geschrieben wurde. Er bezieht sich auf eine Reihe von für Menschen lesbaren Anweisungen in Computersprache, die normalerweise in einer Hochsprache verfasst sind. Das ultimative Ziel eines Computer-Quellprogramms besteht darin, für Menschen lesbaren Text in binäre Anweisungen zu übersetzen, die ein Computer ausführen kann. Dieser Vorgang wird Kompilierung genannt und durch einen Compiler abgeschlossen.