Download præsentationen
Præsentation er lastning. Vent venligst
Offentliggjort afJohan Asmussen Redigeret for ca. et år siden
1
Grammatikker, sprog og parsing Rasmus D. Lehrmann DM67 2010 1
2
Indhold Compiler Parsing Contextfri gramatik Backus-Naur Form Regular expression State pattern opsummering 2
3
Hvad er en compiler? Et eller flere programmer som transformere source code. Fra et sprog til et andet High-level (C#, C++ etc) Low-level (assembly, machine code etc) Decompiler Langauge translator 3
4
Hvad gør en compiler? Omformer kode til et lower-level langauge. Source langauge Target Langauge Front end: – Line reconstruction – Lexical Analysis – Syntax Analysis – Semantic analysis Back end: – Optimazation – Code generation 4
5
Compilerens struktur 5
6
Parsing Syntax analyse Syntax struktueren bestemmes Syntaxen bestemmes af gramatiske contextfri regler Reglerne er defineret som regular expressions, men kører rekursivt. Top-down Bottom-up 6
7
Contextfri gramatik Specifikation for syntax struktur Bestemmer programmerings sprog Sammensætter strings Terminal and nonterminal symbols – P -> a, P -> b – Q -> 0, Q -> 1 – R -> PQ – S -> R, S -> Rc Terminals: a, b, 0, 1, c Non-terminals P, Q, R and S 7
8
Backus-Naur Form ::= – ::= – | ::= | ".” ::= – ::= "," ::= "Sr." | "Jr." | | "" 8
9
Extended Backus-Naur Form Normal BNF: – ::= 0│1│2│3│4│5│6│7│8│9 – ::= │ Kan omformuleres i EBNF til: – ::= { } – Tuborg parenteser betyder 0 til mange – Firkantet parenteser betyder 0 til 1 9
10
Regular expression Anvendes til at finde match ud fra bestemte kriterier F.eks. Match, contains, followed by, infront of Kendt fra blandt andet texteditors og browsers 10
11
State pattern Giver en struktureret tilgang til objekters opførsel. Ved en specifik hændelse kan objekter skifte tilstand. F.eks. et tegneprogram 11
12
State pattern diagram 12
13
Opsummering Grammatiker, sprog og parsing Gennemgang af en compiler Uddybning af virkemidlerne i en compiler En compiler bruges til at lave et program 13
Lignende præsentationer
© 2024 SlidePlayer.dk Inc.
All rights reserved.