/ Compilerbau & Formale Sprachen

Token-Länge Lexer

Gesamtlänge des Quellcodes aus Tokenanzahl und durchschnittlicher Tokenlänge: Gesamtlänge = Tokens · DurchschnLänge.

Token-Länge Lexer
01 · Eingabe

Token-Länge Lexer berechnen

Gesamtlänge des Quellcodes aus Tokenanzahl und durchschnittlicher Tokenlänge: Gesamtlänge = Tokens · DurchschnLänge.

Lösen für
Gesamtlänge = Tokens · DurchschnLänge
Zeichen

Worum geht es?

Ein Lexer zerlegt den Eingabestrom in eine Folge von Tokens. Multipliziert man die Tokenanzahl mit der durchschnittlichen Tokenlänge, erhält man die Gesamtanzahl Zeichen, die der Lexer ohne Whitespace und Kommentare gelesen hat:

Gesamtlänge = Tokens · Ø-Länge

Die Beziehung ist nützlich für Performance-Schätzungen (Bytes pro Sekunde), für die Speicherauslegung des Token-Puffers und für die Frage, welche durchschnittliche Tokenlänge der Lexer in einem konkreten Korpus tatsächlich erreicht.

Die Formel

Formel Token-Gesamtlänge
Gesamtlänge = Tokens · DurchschnLänge

Umstellungen:
    Tokens          = Gesamtlänge / DurchschnLänge
    DurchschnLänge  = Gesamtlänge / Tokens

Die Variablen

SymbolBedeutungEinheitErklärung
TokensTokenanzahlAnzahl vom Lexer erzeugter Tokens.
DurchschnLängeØ TokenlängeZeichenDurchschnittliche Länge eines Tokens.
GesamtlängeGesamtlängeZeichenSumme aller Tokenzeichen im Quellcode.

Minimal-Beispiel

5 000 Tokens mit Ø 4 Zeichen pro Token:

Rechnung Mini-Korpus
Gesamtlänge = 5000 · 4
            = 20 000 Zeichen

Praxis-Beispiele

Beispiel 1 — Größere Quelldatei

12 500 Tokens, Ø-Länge 5,2 Zeichen:

Rechnung Quelldatei
Gesamtlänge = 12 500 · 5,2
            = 65 000 Zeichen ≈ 65 kB

Beispiel 2 — Tokenanzahl aus Dateigröße

Eine Datei mit 81 000 Zeichen, gemittelte Tokenlänge 6,75:

Rechnung Rückwärts
Tokens = 81 000 / 6,75
       = 12 000 Tokens

Beispiel 3 — Ø-Länge messen

Im Lexer-Profil: 9 600 Tokens auf 38 400 Zeichen:

Rechnung Ø-Länge
DurchschnLänge = 38 400 / 9600
               = 4 Zeichen/Token