Spisu treści:
Definicja - Co oznacza Parser?
Analizator składni jest kompilatorem lub komponentem tłumacza, który dzieli dane na mniejsze elementy w celu łatwego tłumaczenia na inny język. Analizator składni pobiera dane wejściowe w postaci sekwencji tokenów lub instrukcji programu i zwykle buduje strukturę danych w postaci drzewa analizowania lub abstrakcyjnego drzewa składni.
Techopedia wyjaśnia Parser
Analizator składni jest powszechnie używany jako składnik interpretera lub kompilatora. Ogólny proces analizowania składa się z trzech etapów:
- Analiza leksykalna: Analizator leksykalny służy do generowania tokenów ze strumienia znaków wejściowych, które są dzielone na małe komponenty w celu utworzenia znaczących wyrażeń.
- Analiza syntaktyczna: sprawdza, czy wygenerowane tokeny tworzą znaczące wyrażenie. Wykorzystuje to gramatykę bezkontekstową, która definiuje procedury algorytmiczne dla komponentów. Pracują one nad sformułowaniem wyrażenia i zdefiniowaniem określonej kolejności, w jakiej należy umieszczać tokeny.
- Analiza semantyczna: ostatni etap analizy, w którym określa się znaczenie i implikacje zatwierdzonego wyrażenia oraz podejmuje niezbędne działania.
Głównym celem analizatora składni jest ustalenie, czy dane wejściowe można uzyskać z symbolu początkowego gramatyki. Jeśli tak, to w jaki sposób można uzyskać te dane wejściowe? Osiąga się to w następujący sposób:
- Parsowanie z góry na dół: Polega na przeszukaniu drzewa parsowania w celu znalezienia najbardziej lewych pochodnych strumienia wejściowego za pomocą rozszerzenia z góry na dół. Przykłady obejmują parsery LL i parsery rekurencyjno-opadające.
- Analiza od dołu do góry: Obejmuje przepisywanie danych wejściowych z powrotem do symbolu początkowego. Ten typ analizowania jest również znany jako analizowanie z redukcją shift. Jednym z przykładów jest parser LR.
Parsery są szeroko stosowane w następujących technologiach:
- Java i inne języki programowania
- HTML i XML
- Interaktywny język danych i język definicji obiektów
- Języki baz danych, takie jak SQL
- Języki modelowania, takie jak język modelowania rzeczywistości wirtualnej
- Języki skryptowe
- Protokoły, takie jak HTTP i internetowe wywołania funkcji zdalnych
