| Token-Ring | |||||
|
Token Ring ist ein von IBM 1984 vorgestelltes Netzwerkprotokoll. Ein Token-Ring-Netzwerk ist ein lokales Netzwerk, bei dem die Datenpakete (Token) in einer logischen Ringstruktur von Computer zu Computer weitergeschickt werden. Um Kollisionen zu vermeiden, gibt es nur ein Token (Zeichenfolge) im Netzwerk, das die Sendeberechtigung und den Adressaten der Datenpakete enthält. Ein Rechner kann nur dann Daten senden, wenn er im Besitz des Token ist. Ist der nächste Rechner im Ring nicht der Empfänger, werden die Daten im logischen Ring weitergesendet, bis das Paket an der Empfängerstation angelangt ist, oder wieder zum Sender zurückkommt, wo es wieder gelöscht wird. |
|||||
| Siehe auch: Transfer-Protocol LAN Netzwerkkarte Ethernet netzwerk Datenpaket IBM | |||||
| Compiler | |||||
|
Ein Compiler (oder Übersetzer) ist eine Software, die einen Quelltext in ein lauffähiges Programm übersetzt. Die Übersetzung erfolgt meist von einer strukturierten höheren Programmiersprache in eine semantisch äquivalente Zielsprache wie Assembler, Bytecode oder Maschinensprache. Die Kompilierung erfolgt meist in 3 Phasen: 1. Lexikalische Analyse: Durchsuchen des Quelltextes und Zerteilen in Tokens verschiedener Klassen wie: Schlüsselwörter, Operatoren, Bezeichner, Zahlen und Formulierungen. Dieser Teil des Compilers wird auch als Scanner oder Lexer bezeichnet. 2. Syntaktische Analyse und 3. Semantische Analyse: Validierung der Befehle, der Variablen, der Datentypen und der korrekten Beziehung der Befehle untereinander. Codegenerierung: Auswertung der Datenstrukturen aus Phase 2 und Erzeugung des korrekten Maschinencodes (Bytecode, Assemblercode). Einige Compiler erzeugen einen Zwischencode. Dieser ist schon maschinennah. Auf diesem Zwischencode werden z. B. Optimierungen durchgeführt, wenn mehrere Zielplattformen unterstützt werden. Wenn ein Compiler den Code für die Plattform, auf der er selber ausgeführt wird, erzeugt, so spricht man von einem Native Compiler. Ansonsten handelt es sich um einen Cross-Compiler. Ein Single-pass Compiler erzeugt den Zielcode in einem Durchlauf. Ein Multi-pass Compiler benötigt dafür mehrere Zwischenschritte und kann daher auch weitergehendere Optimierungen durchführen. Wenn ein Compiler aus dem Quellcode einer Programmiersprache den Quellcode einer anderen erzeugt (z. B. C in C++) so spricht man von einem Transcompiler. Ein Compiler-Compiler ist in der Lage, einen Compiler oder Compilerteile zu erzeugen. Der Compreter erzeugt aus dem Quellcode zunächst einen Zwischencode, welcher dann nicht in einen fertigen, lauffähigen Bytecode übersetzt wird, sondern zur Laufzeit interpretiert wird. Bekannte Compiler-Sprachen sind COBOL, Fortran, PASCAL, C, C++ oder Java. |
|||||
| Siehe auch: Assembler Byte Interpreter Parser Linker Lexer Programmiersprache-C JIT-Compiler C-Plus-Plus Java | |||||
| Lexer | |||||
|
Ein Lexer ist ein lexikalischer Scanner, welcher beispielsweise in der Phase der lexikalischen Analyse von Compilern eingesetzt wird. Dabei wird eine Folge von Eingaben nach den Regeln einer regulären Grammatik in sog. Tokens umgewandelt. Ein Token ist eine lexikalische Grundeinheit welche von einem Parser bearbeitet wird: ein Textfragment mit einer grammatikalischen Bedeutung. In der Phase des Parsens wird das Token mit einem Terminalsymbol einer bestimmten Grammatik abgeglichen. Falls das Token zu dem Terminalsymbol passt, kann die dazugehörige Regel dieser Grammatik umgesetzt werden. Der Scanner filtert aus dem Quellcode Schlüsselwörter, Operatoren, Konstanten und Bezeichner heraus. Er ist ein oft vorgeschalteter spezieller Parser, welcher Tokens erkennt und mit dem jeweiligen Typ ausgibt, wonach der eigentliche Parser seine Arbeit aufnimmt. |
|||||
| Siehe auch: Parser Compiler Interpreter Semantik Syntax | |||||