vi Spis treści
3.1.3. Hierarchia Chomsky’ego...................... 28
3.1.4. Gramatyki bezkontekstowe..................... 29
3.1.5. Drzewa wyprowadzenia....................... 30
3.1.6. Jednoznaczność gramatyk...................... 30
3.2. Operatory i wyrażenia............................. 31
3.2.1. Składnia wyrażeń.......................... 32
3.2.2. Operatory infiksowe......................... 33
3.2.3. Opis wyrażeń za pomocą gramatyki bezkontekstowej ....... 33
3.3. Notacje używane do opisu języków programowania............. 35
3.3.1. Notacja BNF............................. 35
3.3.2. Notacja z opisu języka C ...................... 35
3.3.3. Notacja EBNF............................ 36
3.3.4. Diagramy syntaktyczne....................... 37
3.3.5. Przykład opisu składni: wyrażenia arytmetyczne.......... 37
3.4. Parser..................................... 39
3.5. Lekser..................................... 43
3.6. Notacja postfiksowa.............................. 47
3.6.1. Stos ................................. 47
3.6.2. Implementacja stosu liczb całkowitych w języku C......... 47
3.6.3. Obliczanie wyrażeń w notacji postfiksowej............. 50
3.6.4. Test na poprawność wyrażenia w notacji postfiksowej....... 53
3.6.5. Przekład wyrażeń z notacji infiksowej na postfiksową....... 53
3.7. Języki regularne................................ 62
3.7.1. Deterministyczne automaty skończone............... 62
3.7.2. Implementacja automatów skończonych.............. 63
3.7.3. Wyszukiwanie wzorca w tekście .................. 65
3.7.4. Wyrażenia regularne......................... 66
3.7.5. Wyrażenia regularne w Unix-ie................... 67
3.8. Struktura leksykalna języków programowania................ 69
3.8.1. Sposób formatowania tekstu programu............... 70
3.8.2. Białe znaki i komentarze ...................... 71
3.8.3. Identyfikatory i słowa kluczowe................... 71
3.8.4. Literały................................ 74
3.8.5. Zasada zachłanności......................... 75
3.8.6. Struktura leksykalna języka w praktyce............... 75
3.8.7. Struktura leksykalna języka Standard ML.............. 75
3.9. Wyrażenia w językach programowania.................... 77
3.9.1. Operatory infiksowe w SML-u ................... 77
3.9.2. Wyrażenia w innych językach programowania........... 80
3.10. Problemy składni języków.......................... 83
3.10.1. Średniki............................... 83
3.10.2. Instrukcje puste........................... 83
3.10.3. Niejednoznaczność składni..................... 84