Sproghistorie Syntaks struktur Semantik Indhold Sproghistorie Sprog Lavniveau
- Slides: 27
Sproghistorie • Syntaks (struktur) • Semantik (Indhold)
Sproghistorie • Sprog – Lavniveau (maskinkode) – Højniveau (C#, Java, Pascal, osv. ) Maskinuafhængig kode, som omsættes til maskinkode via kompilering, fortolkning eller en mellemting af disse
Sprogteori – Kompiler • Kompiler – Kildekode –> Kompiler –> Binær kode
Sprogteori – Kompiler • Kompilertyper – Single Pass – Multi Pass – Load and go – Debugging – Optimering
Sprogteori – Kompiler • Kompiler – Analyse (nedbryde) • Leksikalsk analyse Scanning, Tokenizing • Syntaksanalyse – Parsing Hierarkisk analyse • Semantisk analyse – Syntese (sammensætte)
Sprogteori – EBNF • BNF – Backus-Naur-Form • EBNF – Extended Backus-Naur-Form Udvidet med { } og [ ] – Findes i flere varianter
Sprogteori - Analyse • Leksikalsk analyse – Opsplitning af input i brikker • Syntaksanalyse – Parsing – Sammensætning af brikker til sætninger, som opfylder en velbeskrevet struktur (mønster)
EBNF – Elementer • En EBNF-grammatik består af – Produktionsregler – Terminaler – Nonterminaler – Startsymbol
EBNF – Produktionsregler • Produktionsregler – Afsluttes med punktum – | betegner valgmuligheder – { } betegner nul eller flere gentagelser – [ ] betegner nul eller én forekomst – ( ) anvendes til at samle enheder
EBNF – Eksempel Medlemsliste-EBNF medlemsliste medlem navn fødselsår kategori bogstav ciffer = = = = medlem {medlem}. navn fødselsår [kategori] "; ". bogstav {bogstav}. ciffer, ciffer. "junior"|"senior". "a"|. . . |"å"|"A". . . |"Å". "0"|. . . |"9"|.
EBNF • EBNF-grammatikken – Syntaktiske regler Beskriver, hvordan ”byggeklodserne” sammensættes … – Semantiske regler Beskriver hvilke sammensætninger, der giver mening …
EBNF • Semantiske krav i EBNF-grammatikken – Kan komplicere i unødig grad • Undgå derfor: – at inddrage semantiske krav, hvis det går ud overskueligheden – at rense helt for semantiske krav, hvis det går ud over forståeligheden • Balancér overskuelighed og forståelighed!
Syntaksstyret indlæsning • Syntaksstyret indlæsning – Kontrol af, hvorvidt inddata overholder de syntaktiske krav beskrevet i EBNFgrammatikken – 3 metoder • Regelstyret indlæsning • Tabelstyret indlæsning • State Pattern – "Single Symbol Lookahead"
Syntaksstyret indlæsning • Metode: – Indlæsning af brikker • Haves: – Abstrakt beskrivelse af, hvorledes inddata skal se ud (EBNF) – Konkret inddata-strøm • Mål: – Kontrol af overensstemmelse mellem konkret inddata og abstrakt beskrivelse (EBNF) • Strategi: – Konkretisér EBNF’en og abstrahér over inddata
Syntaksstyret indlæsning • Begreber – Brik: Udeleligt sprogelement. Følge af tegn, som har selvstændig betydning i forhold til inddata – Leksem: Brikkens værdi: Den originale streng, som indeholder en brik. Det er som regel det længste leksem, der afgør en brik.
Syntaksstyret indlæsning • Konkretisering af EBNF – Fjern alle produktionsregler, hvor en brik findes på venstresiden – Fjern derved overflødiggjorte produktionsregler – Indsæt de valgte brikker på pladserne svarende til terminalerne
EBNF – Eksempel 1 Medlemsliste-EBNF medlemsliste medlem navn fødselsår kategori bogstav ciffer = = = = medlem {medlem}. navn fødselsår [kategori] "; ". bogstav {bogstav}. ciffer, ciffer. "junior"|"senior". "a"|. . . |"å"|"A". . . |"Å". "0"|. . . |"9"|. Konkretiseret EBNF medlemsliste = medlem {medlem}. medlem = navn fødselsår [kategori] semikolon. kategori = junior|senior. Valgte brikker semikolon, navn, fødselsår, junior, senior, andet, slut
EBNF – Eksempel 2 Talfølge-EBNF talfølge tal ciffer fortegn = = tal {", " tal}. [fortegn] ciffer {ciffer} [". " ciffer {ciffer}]. "0" |. . . | "9". "+" | "-". Konkretiseret EBNF talfølge = tal {komma tal}. tal = [fortegn] heltal [punktum heltal]. fortegn = plus | minus. Valgte brikker komma, heltal, punktum, plus, minus, andet, slut
EBNF – Produktionsregler • Typer af produktionsregler – Rekursiv Regel, der beskrives vha. sig selv – Regulær Regel med gentagelser { } – Simpel Alle andre regler
EBNF-grammatikker • Typer af EBNF-grammatikker – Direkte rekursiv Grammatik, der indeholder en rekursiv produktionsregel – Indirekte rekursiv Grammatik, der indeholder en produktionsregel, der anvender en non-terminal, der andetsteds direkte eller indirekte refererer til reglen – Regulær Ej-rekursiv grammatik, der indeholder regulære produktionsregler – Simpel Alle andre grammatikker
Krav til EBNF-grammatikken • Krav 1 Lad n = f 1|f 2 så må der gælde, at first(f 1) first(f 2) = • En EBNF opfylder krav 1, hvis alle produktionsregler med valgmuligheder opfylder krav 1
Krav til EBNF-grammatikken • Krav 2 Hvis n kan være den tomme følge så må der gælde, at first(n) follow(n) = • En EBNF opfylder krav 2, hvis alle produktionsregler , der kan være tomme, opfylder krav 2
Krav til EBNF-grammatikken • Hvis krav 1 og 2 ikke er opfyldte – Omskriv EBNF’en vha. venstrefaktorisering – Lav ny EBNF …
Venstrefaktorisering • Givet n = ff 1 | ff 2|. . . | ffn | andet (valgmulighed med fælles præfix f) • Erstat n med følgende: n = f tmp | andet tmp = f 1 | f 2 |. . . | fn • Gentag indtil alle produktionsregler er renset for valgmuligheder med fælles præfix • Bemærk, at produktionsregler med { } og [ ] implicit indeholder en valgmulighed
Regelstyret indlæsning • Baserer sig på 7 regler: – Erklær en metode for hver produktionsregel, (non-terminal) – [ ] medfører en if-sætning – { } medfører en while-sætning – | medfører en if-elseif-konstruktion • Kan håndtere rekursive grammatikker
Tabelstyret indlæsning • Tabelstyret indlæsning – Gør brug af tilstandstabel – Gør brug af aktionstabel – Gør brug af "Single Symbol Lookahead" – Krav 1 og 2 stilles til grammatikkerne – Kan ikke håndtere rekursive grammatikker
Tabelstyret indlæsning • Tilstandstabel – Indeholder tilstandsovergange – Tilstandsovergange beskriver, hvilke tilstande der efterfølger den aktuelle tilstand ved givent inddata • Aktionstabel – Indeholder aktioner – Aktioner beskriver, hvad programmet skal udføre i en given tilstand ved givent inddata
- Sintaks kahulugan
- Syntaks escape from the keep
- Ciceros retoriske pentagram
- Hjemmeside layout dansk
- Det røde gardin komposition
- Motorik og sprog
- 3 14 phi
- Duyarsız işlemsel tanım
- Jaringan semantik keluarga
- Materi teknik kompilasi
- Jaringan semantik
- Semantik farklılıklar ölçeği
- Cbr semantik
- Ravish yasalishi
- Pengertian semantik
- V diagram newmark
- Semantic tree example
- Bilgi aktarmayı aksatan etkenler
- Pengertian semantik
- Contoh representasi terstruktur
- Metrik olmayan ölçme düzeyleri
- Notasi quadruples
- Contoh hubungan semantik dengan fonologi
- Semantik filosofi
- Gawain concept mapping
- Sintatik
- Chan semantik
- Hakikat semantik