Sintaksa - razmeroma neproblematično Sintaksa - razmeroma neproblematično - Gramatike
- BNF zapis
- Sintaksni diagrami
Semantika - bolj problematično Številni pristopi - Atributne gramatike
- Prevajalska semantika
- Operacijskasemantika
- Denotacijska semantika
- Aksiomatska semantika
- Naravna semantika (natural semantics)
Neterminalni simboli gramatike: dodamo atribute Neterminalni simboli gramatike: dodamo atribute Atributi so nosilci pomena Npr. DCG v prologu (Definite Clause Grammar)
Prevajalska semantika = Translational semantics Prevajalska semantika = Translational semantics Program P0 v jeziku L0 Program P1 v jeziku L1 Pomen P0 = P1, pri čemer P1 da enake rezultate kot P0
Prednost: prevajalsak semantika pokaže, kako naj bo narejen prevajalnik za P0 Prednost: prevajalsak semantika pokaže, kako naj bo narejen prevajalnik za P0
Semantika je interpreter za jezik L0 Semantika je interpreter za jezik L0 Program P0 v L0 Podatki Operacijska semantika Rezultati P0 Prednosti: - Daje intuitiven opis jezika (kaj naredijo posamezni konstrukti jezika?)
- Privlačno za programerja - semantika (interpreter) = algoritem
- Prototipno programiranje, izvedljiva specifikacija
Slabost: Omejitve, ki sledijo iz konkretne implementacije (računalnik in jezik interpreterja)
Pomen programa so matematični objekti v semantični domeni”programa Pomen programa so matematični objekti v semantični domeni”programa Semantična domena odvisna od tematike programa Semantične funkcije preslikajo sintaksno strukturo programa v semantično domeno Denotacijski princip definiranja semantičnih funkcij: pomen celote je kombinacija pomenov sestavnih delov
Sintaktična domena: binarna števila B Sintaktična domena: binarna števila B Semantična domena: naravna števila N Semantična funkcija num: B N Sintaksa B ::= 0 | 1 | B 0 | B 1 Semantična funkcija num [ 0 ] = 0, num [ 1 ] = 1 num [ B 0 ] = 2 * num [ B ] num [ B 1 ] = 2 * num [ B ] + 1
Program Matematični objekt (običajno funkcija) Pomen x z Program y = Pomen [ Program ] ( x ) Pomen [ Program ] : X Y Oglati oklepaji - sintaktični argumenti; Pomen[ Program ]
Dostları ilə paylaş: |