„Screener (Informatik)“ – Versionsunterschied
[gesichtete Version] | [gesichtete Version] |
KKeine Bearbeitungszusammenfassung |
ergänzt |
||
Zeile 14: | Zeile 14: | ||
* [[Variable (Programmierung)#Namenswahl|Variablennamen]] wären in der weiteren Verarbeitung als Identifizierer zu ineffizient. Sie werden deshalb in eindeutige Zahlen codiert. Da der Compiler trotzdem auf die externen Namen Zugriff haben muss, werden sie in einer Datenstruktur gespeichert, die durch die vergebenen Codes effizient [[Adressierung (Rechnerarchitektur)|adressiert]] werden kann. |
* [[Variable (Programmierung)#Namenswahl|Variablennamen]] wären in der weiteren Verarbeitung als Identifizierer zu ineffizient. Sie werden deshalb in eindeutige Zahlen codiert. Da der Compiler trotzdem auf die externen Namen Zugriff haben muss, werden sie in einer Datenstruktur gespeichert, die durch die vergebenen Codes effizient [[Adressierung (Rechnerarchitektur)|adressiert]] werden kann. |
||
Die [[Ausgabe (Computer)|Ausgabe]] des Screeners wird dem [[Parser]] als [[Eingabe (Computer)|Eingabe]] übergeben. |
|||
⚫ | |||
⚫ | |||
In der Regel wird der Screener als ein einfacher [[Endlicher Automat|Zustandsautomat]] implementiert. |
In der Regel wird der Screener als ein einfacher [[Endlicher Automat|Zustandsautomat]] implementiert. |
||
== Literatur == |
== Literatur == |
||
* {{Literatur |
|||
* {{Literatur|Autor=[[Reinhard Wilhelm]], Helmut Seidl, Sebastian Hack|Titel=Compiler Design|Hrsg=|Sammelwerk=|Band=|Nummer=|Auflage=|Verlag=[[Springer Science+Business Media|Springer]]|Ort=Berlin/Heidelberg|Datum=2013|Seiten=4-5, 11-12, 36-39|ISBN=978-3-642-17540-4|DOI=10.1007/978-3-642-17540-4}} |
|||
|Autor=[[Reinhard Wilhelm]], Helmut Seidl, Sebastian Hack |
|||
|Titel=Compiler Design |
|||
|Verlag=[[Springer Science+Business Media|Springer]] |
|||
|Ort=Berlin/Heidelberg |
|||
|Datum=2013 |
|||
|Seiten=4-5, 11-12, 36-39 |
|||
|ISBN=978-3-642-17540-4 |
|||
|DOI=10.1007/978-3-642-17540-4}} |
|||
*{{Literatur |
|||
|Autor=Franklin L. DeRemer |
|||
|Titel=Lexical Analysis |
|||
|Hrsg=[[Friedrich L. Bauer]], [[Jürgen Eickel]] |
|||
|Sammelwerk=Compiler Construction |
|||
|Verlag=[[Springer Science+Business Media|Springer]] |
|||
|Ort=Heidelberg |
|||
|Datum=1974 |
|||
|Reihe=[[Lecture Notes in Computer Science]] |
|||
|NummerReihe=21 |
|||
|HrsgReihe=[[Gerhard Goos]], [[Juris Hartmanis]] |
|||
|Seiten=109-111 |
|||
|ISBN=3-540-06958-5 |
|||
|DOI=10.1007/978-3-662-21549-4}} |
|||
[[Kategorie:Compilerbau]] |
[[Kategorie:Compilerbau]] |
||
[[Kategorie:Softwarekomponente]] |
[[Kategorie:Softwarekomponente]] |
Version vom 15. Februar 2017, 12:19 Uhr
Dieser Artikel wurde zur Löschung vorgeschlagen.
Falls du Autor des Artikels bist, lies dir bitte durch, was ein Löschantrag bedeutet, und entferne diesen Hinweis nicht. | |
Begründung: Unter-Unter-Thema ohne erkennbare Relevanz außerhalb einer extrem kleinen Nische. (Screener ⊂ Scanner ⊂ Compiler) Für die Wikipedia bzw. für das Wiki-Prinzip ungeeignet. Sieht man ja am Zustand des Artikels, der durchschnittlich einen halben Edit pro Jahr erfahren hat. --TheRandomIP (Diskussion) 18:28, 13. Feb. 2017 (CET) |
Screener (engl.; dt. „Sieber“) bezeichnet in der Informatik eine Komponente eines Compilers. Er erhält vom Scanner eine Abfolge von Tokens zusammen mit ihrem Typ und verarbeitet diese nach vorgegebenen Regeln weiter.
- Leerraum und Kommentare werden meist komplett entfernt, da sie für die weitere Verarbeitung des Programms nicht mehr erforderlich sind. Eine Ausnahme stellen Sprachen wie Haskell oder Python dar, die Einrückung als syntaktisches Element verwenden.
- Compiler-Anweisungen (Pragmas) sind kein Teil des Programms und werden separat an den Compiler weitergegeben.
- Schlüsselworte sind Symbole mit besonderer Bedeutung in der jeweiligen Programmiersprache (zum Beispiel
begin, end, var, int
) und werden vom Screener erhalten.
- Numerische Konstanten werden in eine passende Binärdarstellung umgewandelt, für Zeichenketten wird Speicher reserviert und eventuell ein Eintrag in einer speziellen Datenstruktur angelegt.
- Variablennamen wären in der weiteren Verarbeitung als Identifizierer zu ineffizient. Sie werden deshalb in eindeutige Zahlen codiert. Da der Compiler trotzdem auf die externen Namen Zugriff haben muss, werden sie in einer Datenstruktur gespeichert, die durch die vergebenen Codes effizient adressiert werden kann.
Die Ausgabe des Screeners wird dem Parser als Eingabe übergeben.
Der Screener wird meistens zusammen mit dem Scanner in ein Modul kombiniert, er kann aber auch als separate Softwarekomponente ausgeführt werden. Dennoch sollte er als eigenes Konzept aufgefasst werden. Der Screener sollte möglichst unabhängig von der Zielsprache ausgelegt werden.
In der Regel wird der Screener als ein einfacher Zustandsautomat implementiert.
Literatur
- Reinhard Wilhelm, Helmut Seidl, Sebastian Hack: Compiler Design. Springer, Berlin/Heidelberg 2013, ISBN 978-3-642-17540-4, S. 4–5, 11–12, 36–39, doi:10.1007/978-3-642-17540-4.
- Franklin L. DeRemer: Lexical Analysis. In: Friedrich L. Bauer, Jürgen Eickel (Hrsg.): Compiler Construction (= Gerhard Goos, Juris Hartmanis [Hrsg.]: Lecture Notes in Computer Science. Nr. 21). Springer, Heidelberg 1974, ISBN 3-540-06958-5, S. 109–111, doi:10.1007/978-3-662-21549-4.