1/A4 - Katedra informatiky FEI VÅ B-TUO
1/A4 - Katedra informatiky FEI VÅ B-TUO 1/A4 - Katedra informatiky FEI VÅ B-TUO
Lexikální analýza - Implementace lexikálního analyzátoru • Přímá • Efektivita na úkor složitosti návrhu • Stav je reprezentován pozicí v programu • Simulace konečného automatu • Vhodné spíš pro konstruktory • Využití konstruktoru • Snadná modifikovatelnost • Především v počátečních fázích implementace • LEX (FLEX), JavaCC Programovací jazyky a překladače 46
Lexikální analýza - Přímá implementace for(;;) { skipSpaces(); skipNote(); if( isEof ) return Tokens.EOF; if( Character.isLetter(ch) ) { StringBuffer buf = new StringBuffer(); do { buf.append(ch); getch(); } while( !isEof && Character.isLetterOrDigit(ch) ); stringAttr = buf.toString(); if( stringAttr.compareToIgnoreCase("div") == 0 ) return Tokens.DIV; if( stringAttr.compareToIgnoreCase("mod") == 0 ) return Tokens.MOD; return Tokens.IDENT; } if( Character.isDigit(ch) ) { StringBuffer buf = new StringBuffer(); do { buf.append(ch); getch(); while( !isEof && Character.isDigit(ch) ); numberAttr = Integer.parseInt(buf.toString()); return Tokens.NUMBER; } Programovací jazyky a překladače 47
- Page 1 and 2: Programovací jazyky a překladače
- Page 3 and 4: Úvod - Úloha překladače (1) •
- Page 5 and 6: Úvod - Zdrojový jazyk • Přiroz
- Page 7 and 8: Úvod - Využití technologie přek
- Page 9 and 10: Úvod - Typy překladačů (2) Inte
- Page 11 and 12: Úvod - Typy překladače (4) • I
- Page 13 and 14: Úvod - Historie • Základní pri
- Page 15 and 16: Úvod - Modely zdrojového programu
- Page 17 and 18: Úvod - Modely zdrojového programu
- Page 19 and 20: Úvod - Organizace překladu • F
- Page 21 and 22: Úvod - Vliv na strukturu překlada
- Page 23 and 24: Úvod - Optimalizující překlada
- Page 25 and 26: Úvod - Další pomocné programy
- Page 27 and 28: Úvod - Implementace překladače
- Page 29 and 30: Lexikální analýza - Úkoly •
- Page 31 and 32: Lexikální analýza - Základní p
- Page 33 and 34: Lexikální analýza - Reprezentace
- Page 35 and 36: Lexikální analýza - Specifikace
- Page 37 and 38: Lexikální analýza - Příklad re
- Page 39 and 40: Lexikální analýza - Regulární
- Page 41 and 42: Lexikální analýza - Konečné au
- Page 43 and 44: Lexikální analýza - Konečný au
- Page 45: Lexikální analýza - Speciální
- Page 49 and 50: Lexikální analýza - Využití ko
- Page 51 and 52: Syntaktická analýza - Úkoly synt
- Page 53 and 54: Syntaktická analýza - Příklad (
- Page 55 and 56: Syntaktická analýza - Bezkontexto
- Page 57 and 58: Syntaktická analýza - Analýza sh
- Page 59 and 60: Syntaktická analýza - Analýza zd
- Page 61 and 62: Syntaktická analýza - LL(1) grama
- Page 63 and 64: LL(1) gramatiky - Motivace • Vstu
- Page 65 and 66: LL(1) gramatiky - Definice G = (N,
- Page 67 and 68: LL(1) gramatiky - Definice Množina
- Page 69 and 70: LL(1) gramatiky - Příklad (1) A -
- Page 71 and 72: LL(1) gramatiky - Algoritmus pro FO
- Page 73 and 74: LL(1) gramatiky - Omezení LL(1) gr
- Page 75 and 76: LL(1) gramatiky - Důsledky • A -
- Page 77 and 78: LL(1) gramatiky - Syntaktická anal
- Page 79 and 80: LL(1) gramatiky - Rozkladová tabul
- Page 81 and 82: LL(1) gramatiky - Příklad (2) (ab
- Page 83 and 84: LL(1) gramatiky - Příklad S -> aA
- Page 85 and 86: LL(1) gramatiky - Implementace LL(1
- Page 87 and 88: LL(1) gramatiky - Rekurzivní sestu
- Page 89 and 90: LL(1) gramatiky - Příklad rekurzi
- Page 91 and 92: LL(1) gramatiky - Příklad (1) E -
- Page 93 and 94: LL(1) gramatiky - Příklad (3) voi
- Page 95 and 96: LL(1) gramatiky - Algoritmus interp
Lexikální analýza - Implementace<br />
lexikálního analyzátoru<br />
• Přímá<br />
• Efektivita na úkor složitosti návrhu<br />
• Stav je reprezentován pozicí v programu<br />
• Simulace konečného automatu<br />
• Vhodné spíš pro konstruktory<br />
• Využití konstruktoru<br />
• Snadná modifikovatelnost<br />
• Především v počátečních fázích implementace<br />
• LEX (FLEX), JavaCC<br />
Programovací jazyky a překladače 46