Pok-2-wyk-Slajd44
Buforowanie wejścia
Analiza leksykalna jest jedyną fazą kompilacji podczas której czytane są dane z wejścia znak po znaku. Ponieważ odczyt danych z dysku jest czasochłonną operacją a prędkość kompilatora jest istotnym jego parametrem, stosuje się różne techniki mające na celu przyspieszenie odczytywania danych. Powszechnie stosowane są więc różne implementacje buforów.
Przykładem buforowania danych wejściowych może być utworzenie bufora podzielonego na dwie części po N znaków każda. N jest równe liczbie bajtów w bloku na dysku tak, aby odczyt mógł odbywać się blok po bloku.
W implementacji tej wykorzystuje się dwa wskaźniki. Jeden wskazuje zawsze początek leksemu (na slajdzie oznaczony został kolorem niebieskim). Drugi natomiast wskazuje znak w buforze, który zostanie przekazany do analizy leksykalnej (na slajdzie oznaczony został kolorem zielonym).