Grammatikker, sprog og parsing Rasmus D. Lehrmann DM67 2010 1.

Slides:



Advertisements
Lignende præsentationer
Web 2.0 Teoretisk viden.
Advertisements

Notation Oversigt Kapitel 18.
Programmeringsparadigmer.
Af: Michael Jørgensen. Entity Life Cycle: Hvad er det ?  Er en måde, hvordan man, eventuelt tidligt i programmeringsforløbet, kan bestemme hvordan et.
Begreber og Redskaber 1 BRP.
KONCEPT Klasser og objekter En klasse beskriver et World ArrayList
Distribueret programmering, specielt.NET Remoting Rasmus D. Lehrmann DM
1 Parsing. 2 Mål: Et program til indlæsning og beregning af aritmetiske udtryk Eksempel: Beregn (3*5 + 4/2) - 1 Løs et lettere problem først: Læs en streng.
Lavet af: Paw Petersen Design Design Class Diagram (DCD)
Automater, sprog og compilere
01 – Java platform for starters. 2 NOEA2009Java-kursus – Java Platform Introduktion til Java Baggrund Hvad er Java? Faciliteter i Java.
Introduktion til Java programmering
ASP.NET Cache, State DataGrid og Diagnostics. Agenda – ASP.NET Cache, State og Cookies ( 1 del ) –Cache –Static member –Application State –Session State.
Sproghistorie Syntaks (struktur) Semantik (Indhold)
FEN IntroJava AAU1 Opsamling: afvikling af Java-programmer Input fra keyboard og fil Fra en prompt Fra BlueJ Fra NetBeans.
18 – Java Server Faces. 2 NOEA2009Java-kursus – JSF 2 Web-applikationer - 1 Brugere interagerer med en Web-browser Browseren sender forespørgsler til.
Arrays ● Arrangere erklærede ens datatyper ● Giver mulighed for indeksering med tal ● Valgfri størrelse ved oprettelse ● Er integreret i sproget/compileren.
Endelige Automater Simple sprog (regulære sprog) kan beskrives vha. Regulære udtryk. Regulære sprog kan altid parses vha endelige automater. Nondeterministik.
CLR (.NET) og JVM 1.NET vs. Java.NET har fokus på sprog-uafhængighed … Java har fokus på platforms-uafhængighed … Windows OS.NET CLR IL kode (.exe,.dll)
Det semantiske web Costanza Navarretta Center for Sprogteknologi, Københavns Universitet
Hoved komponenter Activity (kode+UI) En sammenhængende task Har et default vindue App = ∑activities (en stak af aktiviteter ift afvikling) Broadcast reciever.
Compiler/fortolker struktur Mellem- kode Mellemk.- optimering Kode- generering Kode- optimering Lexikalsk- analyse Syntax- analyse Semantik- analyse -
XML Rasmus D. Lehrmann DM Indhold Hvad er XML? XML standarder Hvor bruges XML? XML struktur Træ struktur Element & Attribute Syntaks i XML Stylesheets.
Buttom-up parsning: Hvor er vi Mellem- kode Kald til Runtimesys. Mellemk.- optimering Kode- generering Kode- optimering Leksikalsk- analyse Syntax- analyse.
VPG/Otto Knudsen1 VPR - Repetition Trådning Distribueret Programmering Sprogteori Grafer.
FEN Sprog1 Lidt om sprog Definition: Et sprog over et endeligt alfabet  (sigma) er en mængde af strenge dannet af tegn fra . Eksempel: Lad.
Sprog og grammatik Et sprog L(G) er mængden af sætninger afledt af grammatikken G. Grammatik er en 4-tupel: G={N, ,P,S}. Hvor: N er et sæt af non-terminale.
1..NET Arkitektur. Mål “Microsoft.NET is based on the Common Language Runtime (CLR) and an extensive set of Framework Class Libraries (FCL). The CLR defines.
Sproghistorie Syntaks (struktur) Semantik (Indhold)
Aspekt-orienteret programmering (AOP) Lars Christensen Daniel Simonsen.
Compiler/fortolker struktur Mellem- kode Mellemk.- optimering Kode- generering Kode- optimering Lexikalsk- analyse Syntax- analyse Semantik- analyse -
1..NET Arkitektur. 2 Nordjyllands Erhvervakademi Mål “Microsoft.NET is based on the Common Language Runtime (CLR) and an extensive set of Framework.
Objekter og klasser Rasmus D. Lehrmann DM
Use Case Modellering. En form for requirements engeneering – dvs. fastlæggelse af systemkrav.
Paradigmer i Programmering 2. Sammensatte typer Tupler og lister Programmering med rekursion Programmering med pipe-lines Programmering med polymorfe.
Begreber og Redskaber 1 BRP.
JavaCC Top-down (Recursive descent). Mest populære mht Java. Regulær grammatik og Context-free grammatik i en fil. Tillader EBNF: (..)*, (..)+ og (..)?
DIEB3.1 Kursusgang 3 Oversigt: Sidste kursusgang Design og dialognotationer ­ Fra analyse til design (Dix) ­ Notation: state transition networks (STN)
Algoritmer og Datastrukturer 2 Grådige Algoritmer [CLRS ] Gerth Stølting Brodal.
DIEB7.1 Kursusgang 7 Oversigt: Sidste kursusgang Opgaver Værktøjer til udvikling og implementering af HCI-design Oversigt over Java Swing.
DIEB6.1 Kursusgang 6 Oversigt: Sidste kursusgang Værktøjer til udvikling og implementering af HCI-design Oversigt over Java Swing.
DAIMIIntroducerende objektorienteret programmering2C.1 Syntaksbeskrivelse Syntaksdiagrammer og EBNF-notation.
DAIMIIntroducerende objektorienteret programmering1B.1 Skildpadder Modeller, objekter og opførsel.
Trinvis forfinelse Systematisk, gradvis udvikling af programmer.
Indledende Programmering Uge 6 - Efterår 2006
Design af brugerflader13.1 Kursusgang 13 Oversigt: Sidste kursusgang Beskrivelser af komponenter Typiske komponenter Arkitektur for en GUI.
Grafik Modeller, objekter og opførsel. dIntProg, F08Grafik.2 Nye begreber Repetition (iteration) –gentagelse af opførsel Parametrisering –generalisering.
 Bærbak & Caspersen, 2000Introducerende objektorienteret programmering2B.1 Syntaksbeskrivelse Syntaksdiagrammer og EBNF-notation.
DIEB8.1 Kursusgang 8 Oversigt: Sidste kursusgang Beskrivelser af komponenter Typiske komponenter Arkitektur for en GUI.
 Jens Bennedsen 2001Multimedie programmering1.1 Skildpadder Modeller, objekter og opførsel.
DAIMIIntroducerende objektorienteret programmering4A.1 Kontrakter og Design Kontraktbaseret design, JavaDoc dokumentation,
Syntaksbeskrivelse Syntaksdiagrammer og EBNF-notation.
Paradigmer i Programmering 0. Plan for kurset 4 x Mads R, 4 x Torben B, 2 x opgave MR: Funktionsprogrammering, SML TB: Logikprogrammering, Prolog Opgave:
Skildpadder Modeller, objekter og opførsel.  Michael E. Caspersen, 2000Introducerende objektorienteret programmeringSkildpadder.2 Model Modeller bruges.
FEN IntroJava AAU1 Introduktion til programmering Et program: HelloWorld Objekter og klasser.
XML Formål Grammatik Strukturering af XML 1Rasmus D. Lehrmann.
Parallel programming Rasmus D. Lehrmann DM
01.1 Mathiassen, Munk-Madsen, Nielsen & Stage, 2001 © Objektorienteret Analyse & Design (OOA&D) Grundbegreber, principper og metode Kapitel 1.
Fromelle sprog Per P. Madsen Afd. for proceskontrol.
Regulær udtryk Lad T være det terminale alfabet. og T* angive et sæt af strenge over T ex: T={a,b,c} så er: aaa, bab,bbbbbbaaaa er indeholdt i T* Et sporg.
Computerens talsystem
Anvendelse.
Sproghistorie Syntaks (struktur) Semantik (Indhold)
IOT – Elkedel på internettet
Forelæsning Uge 2 – Torsdag
Algoritmer og Datastrukturer 2 Grådige Algoritmer [CLRS ]
Programmering.
Binomialfordelinger i NetLogo
Algoritmer og Datastrukturer Grådige Algoritmer [CLRS ]
2F – EFTERÅR 2017.
Præsentationens transcript:

Grammatikker, sprog og parsing Rasmus D. Lehrmann DM

Indhold Compiler Parsing Contextfri gramatik Backus-Naur Form Regular expression State pattern opsummering 2

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

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

Compilerens struktur 5

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

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

Backus-Naur Form ::= – ::= – | ::= | ".” ::= – ::= "," ::= "Sr." | "Jr." | | "" 8

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

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

State pattern Giver en struktureret tilgang til objekters opførsel. Ved en specifik hændelse kan objekter skifte tilstand. F.eks. et tegneprogram 11

State pattern diagram 12

Opsummering Grammatiker, sprog og parsing Gennemgang af en compiler Uddybning af virkemidlerne i en compiler En compiler bruges til at lave et program 13