Språkgranskningsverktyg, vt 2008

Storlek: px
Starta visningen från sidan:

Download "Språkgranskningsverktyg, vt 2008"

Transkript

1 , vt 2008 Föreläsning 7 Chartparsning i allmänhet och UCP i synnerhet evapet@stp.lingfil.uu.se 1

2 Djupstruktur och ytstruktur Jag läste en bok igår Igår läste jag en bok 2

3 Chartparsning - bakgrund Utvecklades i slutet av 60-talet och början av 70-talet (Martin Kay och Ron Kaplan) Generell datastruktur för satsanalys Utforskar alla alternativa analyser vid varje steg i parsningsprocessen Alla alternativa analyser sparas i en chart (av eng. tabell/diagram/grafisk bild) Delanalyserna kan sedan användas vid lösning av större segment i satsen 3

4 Chartparsning Den centrala datastrukturen i en chartparser är en chart En chart är en riktad graf, som består av noder (vertices) och bågar (edges) Noderna utgörs av ord eller tecken Bågarna är aktiva eller passiva: aktiva bågar representerar delanalyser under uppbyggnad (regeltillämpningar och partiellt analyserade konstituenter) passiva bågar representerar kompletta (del)analyser 4

5 Samspelet mellan aktiva och passiva bågar (1) Analysen byggs upp genom ett samspel mellan aktiva och passiva bågar Chartparsningens fundamentala lag: När en aktiv båge träffar på en passiv båge (dvs den högraste noden i en aktiv båge är samma nod som den vänstraste noden i en passiv båge) bildas ett bearbetningssteg, en task Bearbetningsstegen läggs på en agenda (scheduling) Från agendan hämtas de för exekvering (selecting) i den ordning som bestämts av systemet 5

6 Samspelet mellan aktiva och passiva bågar (2) Ett bearbetningssteg involverar alltid exakt en aktiv och en passiv båge Utförandet av ett bearbetningssteg leder vanligen till nya bågar och nya bågkonstellationer, som genererar nya bearbetningssteg När agendan är uttömd är parsningen avslutad Resultatet av en komplett parsning representeras av en passiv båge från första till sista noden 6

7 Processkontroll Bearbetningen i en chartparser styrs av: tillståndet i charten principer för scheduling och selection bredden först (i den ordning de skapades) djupet först (vänstraste/högraste symbolen först) Formalismens uppgift bygga strukturbeskrivningar i form av särdragsstrukturer införa nya bågar i charten och därmed föra bearbetningen framåt 7

8 UCP (Uppsala Chart Parser) UCP1/UCP2 skrivet i LISP chartparsning tecken för tecken lexikonsökning, stavelseanalys, morfologisk och syntaktisk analys UCP2 används på labben UCP3 (UCP light) mindre och snabbare variant, konverterad till C chartparsning ord för ord hanterar syntaktisk analys (lexikon hanteras av andra moduler) används för t.ex. maskinöversättning 8

9 Tillämpningar av UCP böjnings- och sammansättningsanalys för lexikonbyggande grammatikkontroll SCARRIE Scania Checker maskinöversättning Convertus-systemet (föregångare: Multra, MATS) ordpredicering Fasty-projektet 9

10 Uppbyggnad av charten i UCP UCP bygger en initial passiv chart av inputsträngen och lägger in en aktiv båge från och till startnoden Fortsatt uppbyggnad av charten styrs av regler i språkbeskrivningen, dvs i lexikon och grammatik start.rule är ett reserverat namn på den regel som inleder parsningen 10

11 Bågar i UCP alla bågar i en UCP-chart innehåller uppgift om ursrpungstask (creator) start- och slutnod aktiva bågar innehåller en särdragsstruktur (features) med ett toppsärdrag & passiva bågar innehåller en särdragsstruktur (features) med ett toppsärdrag * aktiva bågar innehåller en LR-Action (regelsekvens eller lexikonpekare) en initial aktiv båge går från och till sig själv 11

12 Exempel på en UCP-regel (define sve.gram-entry np_noun #u <* word.cat> = 'NOUN, <& phr.cat>:=:'np, <& numb> :=: <* numb>, <& gender>:=:<* gender>, <& case>:=:<* case>, <& def>:=:<* def>, <& head lem>:=:<* lem>, <& head word.cat>:=:<* word.cat>, store; #! word.cat; ) 12

13 Exempel på en passiv båge 1--7 Creator: 112 Features: (* = (START = 1 END = 7 PHR.CAT = NP NUMB = SING GENDER = UTR CASE = BASIC DEF = DEF HEAD = (WORD.CAT = NOUN LEM = SOL.NN))) 13

14 Exempel på en UCP-regel (define sve.gram-entry cl.decl #u <& phr.cat>:=:'cl, <& type>:=:'main, <& mode>:=:'decl, <* phr.cat>='np, <* case>:=:'basic, <& subj>:=:<*>, advance, <* word.cat>='verb, <* inff>='fin, <& verb>:=:<*>, store; #! phr.cat or word.cat; ) 14

15 Exempel på en aktiv båge 1--7 Creator: 78 Features: (& = (PHR.CAT = CL TYPE = MAIN MODE = DECL NP = (START = 1 END = 7 PHR.CAT = NP NUMB = SING GENDER = UTR CASE = BASIC DEF = DEF HEAD = (LEM = SOL.NN WORD.CAT = NOUN)))) LR-Action: <* PHR.CAT> = 'VP, <* INFF> = 'FIN, <& VP> :=: <*>, STORE, MAJORPROCESS(SENT); 15

16 Regelformat (define grammatiknamn-entry regelnamn #u rule.body; #! passivt.filter; #! aktivt.filter; ) (define sve.gram-entry np_noun #u <* word.cat> = 'NOUN, <& phr.cat>:=:'np, <& numb> :=: <* numb>, <& gender>:=:<* gender>, <& case>:=:<* case>, <& def>:=:<* def>, <& head lem>:=:<* lem>, <& head word.cat>:=:<* word.cat>, store; #! word.cat; ) 16

17 Konstanter och särdragsstrukturer Konstanter, dvs atomiska värden i en särdragsstruktur, föregås av ' Bågar skrivs inom < > (define sve.gram-entry np_noun #u <* word.cat> = 'NOUN, <& phr.cat>:=:'np, <& numb> :=: <* numb>, <& gender>:=:<* gender>, <& case>:=:<* case>, <& def>:=:<* def>, <& head lem>:=:<* lem>, <& head word.cat>:=:<* word.cat>, store; #! word.cat; ) 17

18 Operatorer i UCP operatorer för test och tilldelning av attribut och värden operatorer för kontroll operatorer för att införa nya bågar i charten 18

19 Operatorer för test och tilldelning Likhetsoperatorn: attribut = värde testar att två särdragsstrukturer är ekvivalenta om attributet är ospecificerat eller har ett annat värde än det som står till höger om likhetsoperatorn så misslyckas regeln Unifieringsoperatorn: attribut :=: värde testar och tilldelar på samma gång om attributet är ospecificerat tilldelas det värdet till höger om unifieringsoperatorn om attributet har ett annat värde än det som står till höger om unifieringsoperatorn så misslyckas regeln 19

20 Operatorer för test och tilldelning (define sve.gram-entry cl.decl #u <& phr.cat>:=:'cl, <& type>:=:'main, <& mode>:=:'decl, <* phr.cat>='np, <* case>:=:'basic, <& subj>:=:<*>, advance, <* word.cat>='verb, <* inff>='fin, <& verb>:=:<*>, store; #! phr.cat or word.cat; ) 20

21 nil-värdet atomen nil betecknar underspecificerade värden ordformen barn kan vara antingen singular eller plural, och kan därför initialt tilldelas nil-värdet för sitt numerussärdrag vid unifiering med en struktur där värdet är specificerat, skrivs nil-värdet över med det specificerade värdet 21

22 Operatorer för kontroll (1) konjunktion: expr1,..., exprn uttryck åtskilda med kommatecken testas i sekvens om ett uttryck misslyckas, testas inte följande uttryck, utan hela regeln misslyckas 22

23 Konjunktion (define sve.gram-entry cl.decl #u <& phr.cat>:=:'cl, <& type>:=:'main, <& mode>:=:'decl, <* phr.cat>='np, <* case>:=:'basic, <& subj>:=:<*>, advance, <* word.cat>='verb, <* inff>='fin, <& verb>:=:<*>, store; #! phr.cat or word.cat; ) 23

24 Operatorer för kontroll (2) beroende disjunktion: expr1 /... / exprn uttryck åtskilda med / testas i sekvens om ett uttryck i disjunktionen misslyckas, testas följande uttryck istället om ett uttryck i disjunktionen lyckas, testas inte följande uttryck rekommenderas att disjunktionen skrivs inom parentes: (expr1 /... / exprn) 24

25 Beroende disjunktion (define sve.gram-entry np_noun #u <* word.cat> = 'NOUN, <& phr.cat>:=:'np, (<& numb> :=: 'plur/<& numb> :=:'sing), <& gender>:=:<* gender>, <& case>:=:<* case>, <& def>:=:<* def>, <& head lem>:=:<* lem>, <& head word.cat>:=:<* word.cat>, store; #! word.cat; ) 25

26 Operatorer för kontroll (3) oberoende disjunktion: expr1 //... // exprn uttryck åtskilda med // testas var och en för sig, oberoende av varandra rekommenderas att disjunktionen skrivs inom parentes: (expr1 //... // exprn) 26

27 Oberoende disjunktion (define sve.gram-entry np_noun #u <* word.cat> = 'NOUN, <& phr.cat>:=:'np, (<& numb> :=: 'plur//<& numb> :=:'sing), <& gender>:=:<* gender>, <& case>:=:<* case>, <& def>:=:<* def>, <& head lem>:=:<* lem>, <& head word.cat>:=:<* word.cat>, store; #! word.cat; ) 27

28 Operatorer för kontroll (4) villkorssatser: if condition then expr1 else expr2 om villkoret condition är uppfyllt, så utförs expr1, annars utförs expr2 else-satsen är optionell 28

29 Villkorssatser (define sve.gram-entry cl.decl #u <& phr.cat>:=:'cl, <& type>:=:'main, <& mode>:=:'decl, <* phr.cat>='np, <* case>:=:'basic, <& subj>:=:<*>, advance, <* word.cat>='verb, <* inff>='fin, <& verb>:=:<*>, store; #! phr.cat or word.cat; ) (define sve.gram-entry cl.decl #u <& phr.cat>:=:'cl, <& type>:=:'main, <& mode>:=:'decl, <* phr.cat>='np, <* case>:=:'basic, <& subj>:=:<*>, advance, if (<* word.cat>='verb, <* inff>='fin) then (<& verb>:=:<*>, store) #! phr.cat or word.cat; ) 29

30 Sanningsvärden och negation continue (sant) failure (falskt, regeln misslyckas) not (negation) if (not <* numb>='sing) then continue else failure 30

31 Operatorer för kontroll (5) regelanrop: regelnamn(arg1,..., argn) bearbetar den anropade regeln innan nästa instruktion utförs argument är optionella om argument skickas med, kan de anropas från den nya regeln med hjälp av indexerade variabler:?1,?2,?3 etc. 31

32 Regelanrop (define form.dic-entry "studenten" #u noun.entry('student.nn, 'utr, 'sing, 'def, 'basic); ) (define sve.gram-entry noun.entry #u end.of.word, <& word.cat>:=:'noun, <& lem> :=:?1, <& gender> :=:?2, <& numb> :=:?3, <& def> :=:?4, <& case> :=:?5, majorprocess(np_noun), store.form; ) 32

33 Operatorer för att skapa nya aktiva bågar (1) process(arg) startar en ny process i ändpunkten på den aktiva bågen i aktuell task arg utgörs av namnet på en grammatikregel (define sve.gram-entry start.rule #u process(form.dic), majorprocess(cl.decl); #! char; ) 33

34 Operatorer för att skapa nya aktiva bågar (2) majorprocess(arg) startar en ny process i startpunkten på den aktiva bågen i aktuell task (define sve.gram-entry noun.entry #u end.of.word, <& word.cat>:=:'noun, <& lem> :=:?1, <& gender> :=:?2, <& numb> :=:?3, <& def> :=:?4, <& case> :=:?5, majorprocess(np_noun), store.form; ) 34

35 Operatorer för att skapa nya aktiva bågar (3) advance(arg) för pågående process vidare genom att lägga in en ny aktiv båge från startpunkten i den aktiva bågen i aktuell task till slutpunkten i den passiva bågen 35

36 advance (define sve.gram-entry cl.decl #u <& phr.cat>:=:'cl, <& type>:=:'main, <& mode>:=:'decl, <* phr.cat>='np, <* case>:=:'basic, <& subj>:=:<*>, advance, <* word.cat>='verb, <* inff>='fin, <& verb>:=:<*>, store; #! phr.cat or word.cat; ) 36

37 Operatorer för att skapa nya passiva bågar (1) store(arg) lagrar resultatet av bearbetningen i aktuell task genom att lägga in en ny passiv båge från startpunkten i den aktiva bågen till slutpunkten i den passiva bågen ( konsumerar den passiva bågen) 37

38 store (define sve.gram-entry cl.decl #u <& phr.cat>:=:'cl, <& type>:=:'main, <& mode>:=:'decl, <* phr.cat>='np, <* case>:=:'basic, <& subj>:=:<*>, advance, <* word.cat>='verb, <* inff>='fin, <& verb>:=:<*>, store; #! phr.cat or word.cat; ) 38

39 Operatorer för att skapa nya passiva bågar (2) minorstore(arg) lagrar resultatet av bearbetningen i aktuell task genom att lägga in en ny passiv båge från startpunkten i den aktiva bågen till dess slutpunkt 39

40 Grammatikkontroll med UCP Lokala felregler ReportChart Chartscanner som söker efter felsärdrag i charten Tre grundläggande principer: Simplicity Principle Sök endast efter fel på toppnivån i särdragsstrukturen Longest Span Principle Välj alltid den längsta analysen Right-Before-Wrong Principle Om det finns flera analyser av samma längd, så välj alltid en analys utan fel i framför en analys med fel i 40

41 ett student - brott mot genuskongruens i NP (define sve.gram-entry np_art_noun #u <& phr.cat> :=: 'np, <* word.cat> = 'art, <& art> :=: <*>, advance, <* word.cat> = 'noun, (<& art gender> :=: <* gender> / <& err :new> :=: 'np-gender), <& head> :=: <*>, store; #! word.cat; ) (setq *error-acts* '(:VAL (np-gender. "Brott mot genuskongruens i NP") (felkod1. "beskrivning av felet") (felkod2. "beskrivning av ett annat fel") ))

42 ett student - brott mot genuskongruens i NP (* = (START = 1 END = 13 NUMB = SING GENDER = NEUTR DEF = INDEF PHR.CAT = NP DET = (LEM = EN.AL WORD.CAT = ART) ERR = (1 = NP-GENDER) CASE = BASIC HEAD = (LEM = STUDENT.NN WORD.CAT = NOUN)))

43 Uppärvning av särdrag Chartscannern söker endast efter felsärdraget på toppnivån i charten Felsärdrag som ligger på fraser under toppninvån måste ärvas upp till toppnivån för att ge effekt ett student NP-kongruensfel pluggar verb deklarativ huvudsats NP + verb 43

44 ett student pluggar - inga felmeddelanden från grammatiken! (define sve.gram-entry np_art_noun #u <& phr.cat> :=: 'np, <* word.cat> = 'art, <& art> :=: <*>, advance, <* word.cat> = 'noun, (<& art gender> :=: <* gender> / <& err :new> :=: 'np-gender), <& head> :=: <*>, store; #! word.cat; ) (define sve.gram-entry cl.decl #u <& phr.cat>:=:'cl, <& type>:=:'main, <& mode>:=:'decl, <* phr.cat>='np, <* case>:=:'basic, <& subj>:=:<*>, advance, <* word.cat>='verb, <* inff>='fin, <& verb>:=:<*>, store; #! phr.cat or word.cat; )

45 (* = (START = 1 END = 21 PHR.CAT = CL TYPE = MAIN MODE = DECL SUBJ = (START = 1 END = 13 NUMB = SING GENDER = NEUTR DEF = INDEF PHR.CAT = NP DET = (LEM = EN.AL WORD.CAT = ART) ERR = (1 = NP-GENDER) CASE = BASIC HEAD = (LEM = STUDENT.NN WORD.CAT = NOUN)) VERB = (START = 13 END = 21 WORD.CAT = VERB LEM = PLUGGA.VB DIAT = ACT INFF = FIN TENSE = PRES VERB.TYPE = MAIN)))

46 ett student pluggar - brott mot genuskongruens i NP (define sve.gram-entry np_art_noun #u <& phr.cat> :=: 'np, <* word.cat> = 'art, <& art> :=: <*>, advance, <* word.cat> = 'noun, (<& art gender> :=: <* gender> / <& err :new> :=: 'np-gender), <& head> :=: <*>, store; #! word.cat; ) (define sve.gram-entry cl.decl #u <& phr.cat>:=:'cl, <& type>:=:'main, <& mode>:=:'decl, <* phr.cat>='np, <* case>:=:'basic, <& subj>:=:<*>, (<& subj err>, <& err>:=:<& subj err>/ not <& subj err>), advance, <* word.cat>='verb, <* inff>='fin, <& verb>:=:<*>, store; #! phr.cat or word.cat; )

47 (* = (START = 1 END = 21 PHR.CAT = CL TYPE = MAIN MODE = DECL SUBJ = (START = 1 END = 13 NUMB = SING GENDER = NEUTR DEF = INDEF PHR.CAT = NP DET = (LEM = EN.AL WORD.CAT = ART) ERR = (1 = NP-GENDER) CASE = BASIC HEAD = (LEM = STUDENT.NN WORD.CAT = NOUN)) ERR = <* SUBJ ERR> VERB = (START = 13 END = 21 WORD.CAT = VERB LEM = PLUGGA.VB DIAT = ACT INFF = FIN TENSE = PRES VERB.TYPE = MAIN)))

48 Referenser Anna Sågvall Heins föreläsningsbilder från Maskinöversättning och språkgranskning 2006 Weijnitz, Per: Uppsala Chart Parser Light System Documentation, in Working Papers in Computational Linguistics & Language Engineering 12 Sågvall Hein, Anna: A Test Version of the Grammar Checker for Swedish, in Working Papers in Computational Linguistics & Language Engineering 12 48

Djupstruktur och ytstruktur

Djupstruktur och ytstruktur Djupstruktur och ytstruktur En gammal man bodde på vinden. På vinden bodde en gammal man. Chomsky 1965 baskomponent transformationskomponent Föregångare till UCP Augmented Transition Network (Woods 1970)

Läs mer

Språkgranskningsverktyg. Grammatikkontroll med Scarrie

Språkgranskningsverktyg. Grammatikkontroll med Scarrie Språkgranskningsverktyg Grammatikkontroll med Scarrie Strategi för grammatikkontroll Vision Fullständig parsning enligt en heltäckande grammatik som skiljer ut avvikande konstruktioner och diagnosticerar

Läs mer

Maskinöversättning och språkgranskning

Maskinöversättning och språkgranskning Maskinöversättning och språkgranskning Föreläsning 7 Regelbaserad maskinöversättning Eva Pettersson Institutionen för lingvistik och filologi Uppsala universitet e-post: evapet@stp.lingfil.uu.se Föreläsningsöversikt

Läs mer

Maskinöversättning och språkgranskning. F6: Grammatikkontroll

Maskinöversättning och språkgranskning. F6: Grammatikkontroll Maskinöversättning och språkgranskning F6: Grammatikkontroll Grammatikkontroll av svenska För svenska finns huvudsakligen tre olika modeller Word Scarrie Granska Scarrie och Granska är forskningsprototyper.

Läs mer

SATSLÖSNING I EN LEXIKONORIENTERAD PARSER FÖR SVENSKA. Mats Dahllöf

SATSLÖSNING I EN LEXIKONORIENTERAD PARSER FÖR SVENSKA. Mats Dahllöf SATSLÖSNING I EN LEXIKONORIENTERAD PARSER FÖR SVENSKA Mats Dahllöf Februari 1989 1 1 Inledning: bakgrund och syfte Det arbete som här framläggs är utfört inom projektet en Lexikonorienterad Parser för

Läs mer

Svårigheter med kurslitteraturen

Svårigheter med kurslitteraturen Svårigheter med kurslitteraturen Forskningsanknuten kurs Litteraturen är skriven i syfte att presentera forskningsresultat och ofta argumentera för vissa lösningar; undantag: uppfriskningslitteraturen

Läs mer

språkgranskning, ht 2007

språkgranskning, ht 2007 Maskinöversättning och språkgranskning, ht 2007 Föreläsning 3 Grammatikkontroll evapet@stp.lingfil.uu.se 1 Föreläsningsöversikt Allmänt om grammatikkontroll Allmänt om stilkontroll Språkgranskningssystem

Läs mer

Anna Sågvall Hein Centrum för datorlingvistik Sturegatan 13 B, 5 tr U P P S A L A

Anna Sågvall Hein Centrum för datorlingvistik Sturegatan 13 B, 5 tr U P P S A L A Anna Sågvall Hein Centrum för datorlingvistik Sturegatan 13 B, 5 tr 752 23 U P P S A L A REGELA K T I V E RI N G I EN P A R S E R F Ö R S V ENSKA (SVE.UCP) 1. Inledning. Parsing är den process i vilken

Läs mer

För närmare upplysningar om bakgrunden till UCP samt om hur den är relaterad till tidigare arbeten, se Sägvall 80b.

För närmare upplysningar om bakgrunden till UCP samt om hur den är relaterad till tidigare arbeten, se Sägvall 80b. 95 Anna StAgvall Hein UCDL Centrum för Hatorlingvistik Uppsala Universitet UPPSALA CHART PARSER, Version 2 (UCP-2) - En översikt. 1. Inledning Uppsala Chart Parser är en lingvistisk processor för analys

Läs mer

Obesvarade frågor från F1

Obesvarade frågor från F1 Obesvarade frågor från F1 Antal ord i sista upplaga av SAOL Ex. på ord som försvunnit Ex. på nyord Varför är SAOL bättre som norm för stavningskontroll än SAOB? Språkgranskningsverktyg F4: Grammatikkontroll

Läs mer

MÖSG ht 2005 Maskinöversättningssystemet MATS

MÖSG ht 2005 Maskinöversättningssystemet MATS MÖSG ht 2005 Maskinöversättningssystemet MATS Per Weijnitz perweij@stp.ling.uu.se Om detta kursmoment främja förståelse av översättningsproblem MÖ-arbete regelbaserade MÖ-system godtyckligt valt system?

Läs mer

stinaka@stp.ling.uu.se

stinaka@stp.ling.uu.se !"# $ %& ' % )(* +-,/.1032 5#687:9'; 4 stinaka@stp.ling.uu.se = 2@? 7 0AB2 9'687, 7.)C 2D,FE 9'G.10 ;IH.1A',J.LK +NM 9 2@K-, 4 7 KN0E G E ;.1M 9 E ;O9 2I?P? 7, Q MMAB2 G 2SR0. HT7:9 A!.U, 7,VWX0A',J.U,JRY,J.LEZ0

Läs mer

Introduktion till språkteknologi. Datorstöd för språkgranskning

Introduktion till språkteknologi. Datorstöd för språkgranskning Introduktion till språkteknologi OH-serie 2: Datorstöd för språkgranskning oktober 2008 Mats Dahllöf (efter Sofia Gustafson-Capková) Institutionen för lingvistik och filologi UPPSALA UNIVERSITET Huvudpunkter

Läs mer

Grundläggande textanalys, VT 2011 Stavnings- och grammatikkontroll i Microsoft Word. Eva Pettersson UU/Convertus

Grundläggande textanalys, VT 2011 Stavnings- och grammatikkontroll i Microsoft Word. Eva Pettersson UU/Convertus Grundläggande textanalys, VT 2011 Stavnings- och grammatikkontroll i Microsoft Word Eva Pettersson UU/Convertus evapet@stp.lingfil.uu.se Föreläsningsöversikt Allmänt om grammatikkontroll Allmänt om stilkontroll

Läs mer

Dagens föreläsning. Repetition. Repetition - Programmering i C. Repetition - Vad C består av. Repetition Ett första C-program

Dagens föreläsning. Repetition. Repetition - Programmering i C. Repetition - Vad C består av. Repetition Ett första C-program Dagens föreläsning Programmeringsteknik för Ingenjörer VT05 Föreläsning 3-4 Repetition Datatyper Uttryck Operatorer Satser Algoritmer Programmeringsteknik VT05 2 Repetition Repetition - Programmering i

Läs mer

Grundläggande logik och modellteori

Grundläggande logik och modellteori Grundläggande logik och modellteori Kapitel 6: Binära beslutsdiagram (BDD) Henrik Björklund Umeå universitet 22. september, 2014 Binära beslutsdiagram Binära beslutsdiagram (Binary decision diagrams, BDDs)

Läs mer

Grammatisk teori III Praktisk analys

Grammatisk teori III Praktisk analys Grammatisk teori III Praktisk analys 1. Satser Till skillnad från fraser har satser inga givna strukturella huvuden. Olika teorier gör olika antaganden om vad som utgör satsens huvud. Den lösning som förespråkas

Läs mer

Partiell parsning Parsning som sökning

Partiell parsning Parsning som sökning Språkteknologi: Parsning Parsning - definition Parsningsbegrepp Chartparsning Motivering Charten Earleys algoritm (top-down chartparsning) Partiell parsning (eng. chunking) med reguljära uttryck / automater

Läs mer

Grammatisk teori II Attributvärdesgrammatik

Grammatisk teori II Attributvärdesgrammatik Grammatisk teori II Attributvärdesgrammatik 1. Lexikon and syntaktiska regler Inom lingvistisk teori delas den mentala representationen av språket upp i två centrala komponenter: lexikon och syntaktiska

Läs mer

Två fall: q Tom sekvens: () q Sekvens av element: (a b c) ; (sum-rec '(2 4 6)) = 12. q Första elementet uppfyller vissa villkor: (2 a b c)

Två fall: q Tom sekvens: () q Sekvens av element: (a b c) ; (sum-rec '(2 4 6)) = 12. q Första elementet uppfyller vissa villkor: (2 a b c) Programmönster: # Listan som sekvens, Rekursiv process Enkel genomgång av sekvens (element på toppnivån i en lista)) TDDC60 Programmering: abstraktion och modellering Föreläsning 5 Rekursiva och iterativa

Läs mer

Syntaktisk parsning (Jurafsky & Martin kapitel 13)

Syntaktisk parsning (Jurafsky & Martin kapitel 13) Syntaktisk parsning (Jurafsky & Martin kapitel 13) Mats Wirén Institutionen för lingvistik Stockholms universitet mats.wiren@ling.su.se DH2418 Språkteknologi DA3010 Språkteknologi för datorlingvister Föreläsning

Läs mer

Tekniker för storskalig parsning

Tekniker för storskalig parsning Tekniker för storskalig parsning Grundläggande begrepp och metoder Joakim Nivre Uppsala Universitet Institutionen för lingvistik och filologi joakim.nivre@lingfil.uu.se Tekniker för storskalig parsning

Läs mer

F5 Selektion och iteration. ID1004 Objektorienterad programmering Fredrik Kilander

F5 Selektion och iteration. ID1004 Objektorienterad programmering Fredrik Kilander F5 Selektion och iteration ID1004 Objektorienterad programmering Fredrik Kilander fki@kth.se Boolska uttryck Boolska uttryck använder sig av jämförelseoperatorer < > = ==!= Resultatets datatyp är boolean

Läs mer

Utsagor (Propositioner) sammansatta utsagor sanningstabeller logisk ekvivalens predikat (öppna utsagor) kvantifierare Section

Utsagor (Propositioner) sammansatta utsagor sanningstabeller logisk ekvivalens predikat (öppna utsagor) kvantifierare Section Föreläsning 1 Utsagor (Propositioner) sammansatta utsagor sanningstabeller logisk ekvivalens predikat (öppna utsagor) kvantifierare Section 1.1-1.3 i kursboken Definition En utsaga (proposition) är ett

Läs mer

Föreläsning 5: Modellering av frasstruktur. 729G09 Språkvetenskaplig databehandling Lars Ahrenberg

Föreläsning 5: Modellering av frasstruktur. 729G09 Språkvetenskaplig databehandling Lars Ahrenberg Föreläsning 5: Modellering av frasstruktur 729G09 Språkvetenskaplig databehandling Lars Ahrenberg 2014-05-05 1 Översikt Introduktion generativ grammatik och annan syntaxforskning Att hitta mönster i satser

Läs mer

Programmeringsteknik med C och Matlab

Programmeringsteknik med C och Matlab Programmeringsteknik med C och Matlab Kapitel 2: C-programmeringens grunder Henrik Björklund Umeå universitet Björklund (UmU) Programmeringsteknik 1 / 32 Mer organisatoriskt Imorgon: Datorintro i lab Logga

Läs mer

DD1361 Programmeringsparadigm HT17

DD1361 Programmeringsparadigm HT17 DD1361 Programmeringsparadigm HT17 Logikprogrammering 1 Dilian Gurov, KTH Delkursinnehåll Logisk versus procedurell läsning Kontrollflöde: Unifiering, Backtracking, Snitt Induktiva datatyper och rekursion

Läs mer

Språkgranskningsverktyg. Grammatikkontroll i Word

Språkgranskningsverktyg. Grammatikkontroll i Word Språkgranskningsverktyg Grammatikkontroll i Word Allmänt om grammatikkontroll Grammatikkontrollprogrammen inriktas mot en i förväg definierad felrepertoar. Fastställs vanligen genom analys av korpusmaterial.

Läs mer

Dagens föreläsning. Repetition. Repetition - Programmering i C. Repetition - Vad C består av. Repetition Ett första C-program

Dagens föreläsning. Repetition. Repetition - Programmering i C. Repetition - Vad C består av. Repetition Ett första C-program Dagens föreläsning Programmeringsteknik för Ingenjörer VT05 Föreläsning 3-4 Repetition Datatyper Uttryck Operatorer Satser Algoritmer Programmeringsteknik för ingenjörer, VT06 2 Repetition Repetition -

Läs mer

Automatateori (2) Idag: Sammanhangsfria språk. Dessa kan uttryckas med Grammatik PDA

Automatateori (2) Idag: Sammanhangsfria språk. Dessa kan uttryckas med Grammatik PDA Automatateori (2) Idag: Sammanhangsfria språk Dessa kan uttryckas med Grammatik PDA Grammatik = språkregler Ett mer kraftfullt sätt att beskriva språk. En grammatik består av produktionsregler (andra ord

Läs mer

TDP007 Konstruktion av datorspråk Hemtentamen

TDP007 Konstruktion av datorspråk Hemtentamen TDP007 Konstruktion av datorspråk Hemtentamen 2008-08-20 Hemtentamen är kompletterings- och omexaminationstillfälle för de studenter som missat hela eller delar av inlämningar och seminarier, moment LAB1,

Läs mer

DE GRAMMATISKA BESKRIVNINGARNA I SVE.UCP

DE GRAMMATISKA BESKRIVNINGARNA I SVE.UCP Lars Ahrenberg Institutionen för lingvistik Uppsala universitet Box 513 751 20 UPPSALA DE GRAMMATISKA BESKRIVNINGARNA I SVE.UCP 1. Inledning. SVE.UCP är en parser för svenska som är under utveckling vid

Läs mer

Parsning. TDP007 Konstruktion av datorspråk Föreläsning 6. Peter Dalenius Institutionen för datavetenskap

Parsning. TDP007 Konstruktion av datorspråk Föreläsning 6. Peter Dalenius Institutionen för datavetenskap Parsning TDP007 Konstruktion av datorspråk Föreläsning 6 Peter Dalenius Institutionen för datavetenskap 2017-02-14 2 Analys av källkod Lexikalisk analys Bildar tokensutifrån källkodens text. Syntaktisk

Läs mer

Språket Python - Del 1 Grundkurs i programmering med Python

Språket Python - Del 1 Grundkurs i programmering med Python Hösten 2009 Dagens lektion Ett programmeringsspråks byggstenar Några inbyggda datatyper Styra instruktionsflödet Modulen sys 2 Ett programmeringsspråks byggstenar 3 ETT PROGRAMMERINGSSPRÅKS BYGGSTENAR

Läs mer

Dugga Datastrukturer (DAT036)

Dugga Datastrukturer (DAT036) Dugga Datastrukturer (DAT036) Duggans datum: 2012-11-21. Författare: Nils Anders Danielsson. För att en uppgift ska räknas som löst så måste en i princip helt korrekt lösning lämnas in. Enstaka mindre

Läs mer

Föreläsning 2 Programmeringsteknik och C DD1316. Programmering. Programspråk

Föreläsning 2 Programmeringsteknik och C DD1316. Programmering. Programspråk Föreläsning 2 steknik och C DD1316 python introduktion Variabler Datatyp Aritmetiska operatorer av typer Reserverade ord logiska operatorer If-sats kommentarer betyder att instruera en dator Ett program

Läs mer

TENTAMEN I PROGRAMSPRÅK -- DVG C kl. 08:15-13:15

TENTAMEN I PROGRAMSPRÅK -- DVG C kl. 08:15-13:15 TENTAMEN I PROGRAMSPRÅK -- DVG C01 140605 kl. 08:15-13:15 Ansvarig Lärare: Donald F. Ross Hjälpmedel: Bilaga A: BNF-definition Betygsgräns: Kurs: Max 60p, Med beröm godkänd 50p, Icke utan beröm godkänd

Läs mer

Extra övningar på SDD:er/SDT:er

Extra övningar på SDD:er/SDT:er Extra övningar på SDD:er/SDT:er Bakvända meningar Grammatik: sentence word sentence sentence ε sentence space sentence word char word char 1 char 2 word char 1 word 1 char 2 Symbolen sentence producerar

Läs mer

Grammatisk teori III - Seminarium

Grammatisk teori III - Seminarium Grammatisk teori III - Seminarium Attributvärdesanalys Gör en attributvärdesanalys av satserna nedan: 1. Länsstyrelsen vill ha fler spår. 2. Piraterna är klara för slutspel. 3. En buss och en stadsjeep

Läs mer

Föreläsning 2 Programmeringsteknik och C DD1316. Mikael Djurfeldt

Föreläsning 2 Programmeringsteknik och C DD1316. Mikael Djurfeldt Föreläsning 2 Programmeringsteknik och C DD1316 Mikael Djurfeldt Föreläsning 2 Programmeringsteknik och C Python introduktion Utskrift Inläsning Variabler Datatyp Aritmetiska operatorer Omvandling

Läs mer

Dependensregler - Lathund

Dependensregler - Lathund Dependensregler - Lathund INTRODUKTION I textprogrammet TeCST är det möjligt för en skribent att skriva, redigera och klistra in text för att få ut läsbarhetsmått och få förslag på hur texten kan skrivas

Läs mer

Datatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek

Datatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek De åtta primitiva typerna Java, datatyper, kontrollstrukturer Skansholm: Kapitel 2) Uppsala Universitet 11 mars 2005 Typ Innehåll Defaultvärde Storlek boolean true, false false 1 bit char Tecken \u000

Läs mer

Repetition C-programmering

Repetition C-programmering Repetition C-programmering Viktor Kämpe C Historik Utvecklades först 1969 1973 av Dennis Ritchcie vid AT&T Bell Labs. Högnivå språk med kontakt mot maskinvara. Ett utav de mest använda språken. Repetition

Läs mer

Multipel tilldelning. Introduktion till programmering D0009E. Föreläsning 6: Iteration. while-satsen. Kom ihåg. Snurror kontra rekursion

Multipel tilldelning. Introduktion till programmering D0009E. Föreläsning 6: Iteration. while-satsen. Kom ihåg. Snurror kontra rekursion Introduktion till programmering D0009E Föreläsning 6: Iteration Multipel tilldelning Helt ok att tilldela en variabel flera gånger: bruce = bruce, bruce = 7 bruce Output: 7 Som tillståndsdiagram: bruce

Läs mer

Programmera i C Varför programmera i C när det finns språk som Simula och Pascal??

Programmera i C Varför programmera i C när det finns språk som Simula och Pascal?? Programmera i C Varför programmera i C när det finns språk som Simula och Pascal?? C är ett språk på relativt låg nivå vilket gör det möjligt att konstruera effektiva kompilatorer, samt att komma nära

Läs mer

Ordklasser. Särdrag, lexikon och syntax. Ordklasskriterier II. Ordklasskriterier. Öppna klasser. Slutna klasser

Ordklasser. Särdrag, lexikon och syntax. Ordklasskriterier II. Ordklasskriterier. Öppna klasser. Slutna klasser Ordklasser Särdrag, lexikon och syntax Ola Knutsson knutsson@nada.kth.se Slutna klasser: prepositioner, konjunktioner, subjunktioner m.fl. (funktionsord) Inga nya ord bildas. Öppna klasser: substantiv,

Läs mer

Introduktion till programmering SMD180. Föreläsning 4: Villkor och rekursion

Introduktion till programmering SMD180. Föreläsning 4: Villkor och rekursion Introduktion till programmering Föreläsning 4: Villkor och rekursion 1 1 Några inbyggda funktioner (med resultat!) Konverterar mellan de grundläggande typerna: >>> int("32") 32 >>> int(3.999) 3 >>> float(32)

Läs mer

Språkgranskningsverktyg, vt 2009

Språkgranskningsverktyg, vt 2009 , vt 2009 Föreläsning 8 Scania Checker evapet@stp.lingfil.uu.se 1 Föreläsningsöversikt Kontrollerat språk Scania-svenska Scania Checker Demo 2 Kontrollerat språk Delmängd av naturligt språk Restriktioner

Läs mer

Föreläsning 7 Datastrukturer (DAT037)

Föreläsning 7 Datastrukturer (DAT037) Föreläsning 7 Datastrukturer (DAT037) Fredrik Lindblad 1 2016-11-21 1 Slides skapade av Nils Anders Danielsson har använts som utgångspunkt. Se http://www.cse.chalmers.se/edu/year/2015/course/dat037 Förra

Läs mer

Särdrag, lexikon och syntax. Ordklasser. Ordklasskriterier II. Ordklasskriterier. Öppna klasser. Slutna klasser

Särdrag, lexikon och syntax. Ordklasser. Ordklasskriterier II. Ordklasskriterier. Öppna klasser. Slutna klasser Särdrag, lexikon och syntax Ordklasser Slutna klasser: prepositioner, konjunktioner, subjunktioner m.fl. (funktionsord) Inga nya ord bildas. Ola Knutsson knutsson@nada.kth.se Öppna klasser: substantiv,

Läs mer

Föreläsning 2 Programmeringsteknik DD1310. Programmering. Programspråk

Föreläsning 2 Programmeringsteknik DD1310. Programmering. Programspråk Föreläsning 2 steknik DD1310 Python introduktion Variabler Datatyper Aritmetiska operatorer av typer Reserverade ord logiska operatorer If-sats kommentarer betyder att instruera en dator Ett program är

Läs mer

Objektorienterad programmering

Objektorienterad programmering Objektorienterad programmering Föreläsning 14 Copyright Mahmud Al Hakim mahmud@dynamicos.se www.webacademy.se Agenda Exceptionella händelser Vanliga Programfel Exception-klasser Automatiskt genererade

Läs mer

Introduktion C-programmering

Introduktion C-programmering Introduktion C-programmering Viktor Kämpe C Historik Utvecklades först 1969 1973 av Dennis Ritchcie vid AT&T Bell Labs. Högnivå språk med kontakt mot maskinvara. Ett utav de mest använda språken. 2 C Standarder

Läs mer

Parsningens olika nivåer

Parsningens olika nivåer Parsning Språkteknologi DH418 Ola Knutsson 008 Varför parsning? Grammatikkontroll Fråge-svarsystem Maskinöversättning Semantisk analys (vad menas?) Testa grammatikformaliser och grammatiker (undvika länsstolslingvistik)

Läs mer

Outline. For. I istället för att följa det normala ordningen, man ändra den. I i Java får man inte göra hopp hur som helst

Outline. For. I istället för att följa det normala ordningen, man ändra den. I i Java får man inte göra hopp hur som helst Outline Objektorienterad Programmering (TDDC77) Föreläsning IV: while, for, do while, switch, arrayer Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 Ordning Villkorliga hopp I Normalt sett så

Läs mer

Pythons standardbibliotek

Pythons standardbibliotek Pythons standardbibliotek Python 3 skall, enligt standarddokumenten http://docs.python.org/py3k/library/index.html ha stöd för vissa funktioner, typer och datastrukturer Så länge man håller sig till detta

Läs mer

n Detta för att kunna koncentrera oss på n Tal: number? n Symboler: symbol? n Strängar: string? n Tecken: char? n Boolskt: boolean?

n Detta för att kunna koncentrera oss på n Tal: number? n Symboler: symbol? n Strängar: string? n Tecken: char? n Boolskt: boolean? Tidigare TDDC74 Programming: Abstraktion och modellering Föreläsning 4 Symboler, Par, Listor Representation av par, Grafisk notation för par Representation av listor mha par Typiska listhanteringsprocedurer

Läs mer

2. Utgångspunkter och angreppssätt för automatisk språkgranskning

2. Utgångspunkter och angreppssätt för automatisk språkgranskning Översikt och läsanvisning 2. Utgångspunkter och angreppssätt för automatisk språkgranskning Detta kapitel beskriver utgångspunkter och angreppssätt för automatisk språkgranskning för svenska. I kapitlet

Läs mer

Ordklasser. Särdrag, lexikon och syntax. Öppna klasser. Slutna klasser. Vilka ord i lexikon? Vad skall man med en grammatik till?

Ordklasser. Särdrag, lexikon och syntax. Öppna klasser. Slutna klasser. Vilka ord i lexikon? Vad skall man med en grammatik till? Ordklasser Särdrag, lexikon och syntax Slutna klasser: prepositioner, konjunktioner, subjunktioner m.fl. (funktionsord) Inga nya ord bildas. Öppna klasser: substantiv, adjektiv, verb, adverb Ständiga nybildningar

Läs mer

BEGREPP HITTILLS FÖRELÄSNING 2 SAMMANSATTA UTTRYCK - SCHEME DATORSPRÅK

BEGREPP HITTILLS FÖRELÄSNING 2 SAMMANSATTA UTTRYCK - SCHEME DATORSPRÅK FÖRELÄSNING 2 Viss repetition av Fö1 Rekursivt fallanalys Rekursiva beskrivningar BEGREPP HITTILLS Konstant, Namn, Procedur/Funktion, LAMBDA, Parameter, Argument, Kropp, Villkor/Rekursion, Funktionsanrop,

Läs mer

Två-nivåmodellen, TWOL. 2D1418 Språkteknologi, Nada KTH Höstterminen 2004 Lisa Lagerkvist, Me-01

Två-nivåmodellen, TWOL. 2D1418 Språkteknologi, Nada KTH Höstterminen 2004 Lisa Lagerkvist, Me-01 Två-nivåmodellen, TWOL 2D1418 Språkteknologi, Nada KTH Höstterminen 2004 Lisa Lagerkvist, Me-01 Inledning Morfologisk parsning är nödvändig i de flesta språkteknologiska tillämpningar eftersom man nästan

Läs mer

Logik och kontrollstrukturer

Logik och kontrollstrukturer Logik och kontrollstrukturer Flödet av instruktioner i ett programmeringsspråk bygger vi upp med hjälp av dess kontrollstrukturer. I C har vi exemplen if, if else, while, do while. Dessutom finns switch

Läs mer

MATEMATIKENS SPRÅK. Avsnitt 1

MATEMATIKENS SPRÅK. Avsnitt 1 Avsnitt 1 MATEMATIKENS SPRÅK Varje vetenskap, liksom varje yrke, har sitt eget språk som ofta är en blandning av vardagliga ord och speciella termer. En instruktionshandbok för ett kylskåp eller för en

Läs mer

En introduktion till logik

En introduktion till logik rasmus.blanck@gu.se FT1200, LC1510 och LGFI52 VT2017 Först: Tack till Martin Kaså, som gett mig tillstånd att använda och bearbeta dessa ljusbilder. Vad är logik? Slogan: Logik undersöker vilka argument

Läs mer

Föreläsning 3: Booleans, if, switch

Föreläsning 3: Booleans, if, switch TDA 545: Objektorienterad programmering Föreläsning 3: Booleans, if, switch Magnus Myréen Chalmers, läsperiod 1, 2015-2016 Påminnelse om klasser och objekt Boll boll1 = new Boll(5,12); skapar ett nytt

Läs mer

Typsystem. Typsystem... Typsystem... Typsystem... 2 *

Typsystem. Typsystem... Typsystem... Typsystem... 2 * Typsystem Typsystem finns i alla programmeringsspråk. Avsikten med typsystem är att kontrollera att uttryck är säkra i den bemärkelsen att innebörden i operanderna är klar och inte är motsägelsefull och

Läs mer

Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p

Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p Skriven av Michael Andersson Introduktion Programmering I högnivåspråk fokuserar på själv problemet (algoritmen) istället

Läs mer

Variabler och konstanter

Variabler och konstanter Variabler och konstanter Deklareras automatisk när man stoppar in data i dem. X = 7 Y = A Z = Kalle Definieras av att de har: ett namn (X) en datatyp (Integer) ett värde (t.ex. 7) Lagras i datorns minne!

Läs mer

Några inbyggda funktioner (med resultat!) Introduktion till programmering D0009E. Föreläsning 4: Villkor och rekursion. Modulus-operatorn.

Några inbyggda funktioner (med resultat!) Introduktion till programmering D0009E. Föreläsning 4: Villkor och rekursion. Modulus-operatorn. Några inbyggda funktioner (med resultat!) Introduktion till programmering D0009E Föreläsning 4: Villkor och rekursion Konverterar mellan de grundläggande typerna: >>> int("") >>> int(.999) >>> float().0

Läs mer

Typsystem. DA2001 (Föreläsning 23) Datalogi 1 Hösten / 19

Typsystem. DA2001 (Föreläsning 23) Datalogi 1 Hösten / 19 Typsystem Typsystem finns i alla programmeringsspråk. Avsikten med typsystem är att kontrollera att uttryck är säkra i den bemärkelsen att innebörden i operanderna är klar och inte är motsägelsefull och

Läs mer

Datorn har utvecklats till vårt viktigaste. Datorn som språkgranskare SPRÅKTEKNOLOGI OLA KNUTSSON

Datorn har utvecklats till vårt viktigaste. Datorn som språkgranskare SPRÅKTEKNOLOGI OLA KNUTSSON SPRÅKTEKNOLOGI Datorn som språkgranskare OLA KNUTSSON Datorerna kan inte bara rätta stavfel utan också särskrivningar, böjningsfel, syftningsfel och grammatiska fel. Men fortfarande förslår språkgranskningsprogrammen

Läs mer

TDIU01 - Programmering i C++, grundkurs

TDIU01 - Programmering i C++, grundkurs TDIU01 - Programmering i C++, grundkurs Sammanfattning period 1 Eric Elfving Institutionen för datavetenskap 1 oktober 2013 Översikt Ett C++-programs uppbyggnad Variabler Datatyper Satser Uttryck Funktioner

Läs mer

Föreläsning 9 Innehåll

Föreläsning 9 Innehåll Föreläsning 9 Innehåll Binära sökträd algoritmer för sökning, insättning och borttagning, implementering effektivitet balanserade binära sökträd, AVL-träd Abstrakta datatyperna mängd (eng. Set) och lexikon

Läs mer

Introduktion till formella metoder Programmeringsmetodik 1. Inledning

Introduktion till formella metoder Programmeringsmetodik 1. Inledning Introduktion till formella metoder Programmeringsmetodik 1. Inledning Fokus på imperativa program (ex. C, Java) program betyder härefter ett imperativt program Program bestäms i en abstrakt mening av hur

Läs mer

Föreläsning 5 Mer om funktioner, villkor

Föreläsning 5 Mer om funktioner, villkor Föreläsning 5 Mer om funktioner, villkor Grundkurs i programmering Jan Lönnberg Institutionen för datateknik -universitetets högskola för teknikvetenskaper 15.9.2011 Varför? Det finns sammanhang där ett

Läs mer

Dagens föreläsning Programmering i Lisp. - Bindning av variabler (avs 14.6) fria variabler statisk/lexikalisk och dynamisk bindning

Dagens föreläsning Programmering i Lisp. - Bindning av variabler (avs 14.6) fria variabler statisk/lexikalisk och dynamisk bindning 1 Dagens föreläsning Programmering i Lisp - Block, räckvidd - Bindning av variabler (avs 14.6) fria variabler statisk/lexikalisk och dynamisk bindning - Felhantering (kap 17) icke-normala återhopp catch

Läs mer

Python. Python är, som Scheme, ett interpreterat språk men det finns kompilatorer för Python.

Python. Python är, som Scheme, ett interpreterat språk men det finns kompilatorer för Python. är, som Scheme, ett interpreterat språk men det finns kompilatorer för. När man interpreterar ett språk tillhandahåller man en interpretator som läser sats för sats och försöker tolka den. När man kompilerar

Läs mer

Python. Python är, som Scheme, ett interpreterat språk men det finns kompilatorer för Python.

Python. Python är, som Scheme, ett interpreterat språk men det finns kompilatorer för Python. är, som Scheme, ett interpreterat språk men det finns kompilatorer för. När man interpreterar ett språk tillhandahåller man en interpretator som läser sats för sats och försöker tolka den. När man kompilerar

Läs mer

Föreläsning 2. Variabler, tilldelning och kodblock{} if-satsen Logiska operatorer Andra operatorer Att programmera

Föreläsning 2. Variabler, tilldelning och kodblock{} if-satsen Logiska operatorer Andra operatorer Att programmera Föreläsning 2 Variabler, tilldelning och kodblock if-satsen Logiska operatorer Andra operatorer Att programmera Variabler Det är i variabler som all data (information) lagras. Genom att ändra värde på

Läs mer

i LabVIEW. Några programmeringstekniska grundbegrepp

i LabVIEW. Några programmeringstekniska grundbegrepp Institutionen för elektroteknik Några programmeringstekniska grundbegrepp 1999-02-16 Inledning Inom datorprogrammering förekommer ett antal grundbegrepp som är i stort sett likadana oberoende om vi talar

Läs mer

Översikt över Visual Basic

Översikt över Visual Basic Översikt över Visual Basic Om denna översikt Denna översikt ger en kort introduktion till de viktigaste delarna i programspråket Visual Basic 6.0. På alla ställen där det beskrivs hur man skriver kod gäller

Läs mer

Objektorienterad Programmering (TDDC77)

Objektorienterad Programmering (TDDC77) Objektorienterad Programmering (TDDC77) Föreläsning II: utmatning, variabler, typer Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2017 Outline Java Språket Utmatning av Sträng litteraler Variabler

Läs mer

729G04 Programmering och diskret matematik

729G04 Programmering och diskret matematik Tentamen 729G04, 2013-02-15 1(9) 729G04 Programmering och diskret matematik Tentamen 2013 02 15 kl 14.00 19.00 Tillåtna hjälpmedel: Dator, penna, papper, linjal, suddgummi, godkänd(a) bok/böcker Uppgifter:

Läs mer

Grundläggande datalogi - Övning 9

Grundläggande datalogi - Övning 9 Grundläggande datalogi - Övning 9 Björn Terelius January 30, 2009 Ett formellt språk är en (oftast oändlig) mängd strängar. Språket definieras av en syntax som är en samling regler för hur man får bilda

Läs mer

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Felsökning. Datatyper. Referenstyper. Metoder / funktioner

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Felsökning. Datatyper. Referenstyper. Metoder / funktioner 732G11 Linköpings universitet 2011-01-21 1 2 3 4 5 6 Skapa program Kompilera: Källkod Kompilator bytekod Köra: Bytekod Virtuell maskin Ett riktigt program Hej.java class Hej { public static void main (

Läs mer

Föreläsning Datastrukturer (DAT037)

Föreläsning Datastrukturer (DAT037) Föreläsning Datastrukturer (DAT037) Nils Anders Danielsson 2015-11-23 Idag Mer om grafer: Minsta uppspännande träd (för oriktade grafer). Djupet först-sökning. Minsta uppspännande träd Träd (utan rot)

Läs mer

Datorlingvistisk grammatik

Datorlingvistisk grammatik Datorlingvistisk grammatik Svenskans satser m.m. http://stp.lingfil.uu.se/~matsd/uv/uv11/dg/ Mats Dahllöf Institutionen för lingvistik och filologi Januari 2011 Satser Satserna utgör den mest mångfacetterade

Läs mer

Deklarativ programmering

Deklarativ programmering Deklarativ programmering TDP007 Konstruktion av datorspråk Föreläsning 7 Peter Dalenius Institutionen för datavetenskap 2014-03-03 Deklarativ programmering Program skrivet i ett deklarativt språk logikspråk,

Läs mer

Parsningens olika nivåer

Parsningens olika nivåer Parsning Språkteknologi DH418 Ola Knutsson Varför parsning? Grammatikkontroll Fråge-svarsystem Maskinöversättning Semantisk analys (vad menas?) Testa grammatikformaliser och grammatiker (undvika länsstolslingvistik)

Läs mer

Dagens föreläsning Programmering i Lisp Fö 7. Sammanfattning funktionell programmering Exempel på funktionella programspråk

Dagens föreläsning Programmering i Lisp Fö 7. Sammanfattning funktionell programmering Exempel på funktionella programspråk 1 Dagens föreläsning Programmering i Lisp Fö 7 Kopplingen funktionella programmering och diskret matematik. Jämför vad ni hittills gjort i denna kurs och i den diskreta matematiken, med referenser in i

Läs mer

Pre-editering och maskinöversättning. Convertus AB

Pre-editering och maskinöversättning. Convertus AB Pre-editering och maskinöversättning Bakgrund Convertus roll i DigInclude är att utveckla och tillhandahålla översättningstjänster för översättning av användarorienterad myndighetsinformation Översättning

Läs mer

Deklarativ programmering

Deklarativ programmering Kursens mål Deklarativ programmering Peter Dalenius petda@ida.liu.se Institutionen för datavetenskap Linköpings universitet 2008-02-26 redogöra för och använda reguljära uttryck använda XML för att definera

Läs mer

729G74 IT och programmering, grundkurs. Tema 2, Föreläsning 2 Jody Foo,

729G74 IT och programmering, grundkurs. Tema 2, Föreläsning 2 Jody Foo, 729G74 IT och programmering, grundkurs Tema 2, Föreläsning 2 Jody Foo, jody.foo@liu.se Föreläsningsöversikt Kursinfo: återkoppling Muddy Cards och kompletteringar Diskret matematik Python: Programmering

Läs mer

Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering

Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering Föreläsning 1 Objektorienterad programmering DD1332 Introduktion till Java Kompilering, exekvering, variabler, styrstrukturer Kompilering och exekvering Ett program måste översättas till datorns språk

Läs mer

Tentamen i. TDDC67 Funktionell programmering och Lisp

Tentamen i. TDDC67 Funktionell programmering och Lisp 1 Linköpings tekniska högskola Institutionen för datavetenskap Anders Haraldsson Tentamen i TDDC67 Funktionell programmering och Lisp och äldre kurser TDDC57 Programmering, Lisp och funktionell programmering

Läs mer

Föreläsning 6 Datastrukturer (DAT037)

Föreläsning 6 Datastrukturer (DAT037) Föreläsning 6 Datastrukturer (DAT037) Fredrik Lindblad 1 15 november 2017 1 Slides skapade av Nils Anders Danielsson har använts som utgångspunkt. Se http://www.cse.chalmers.se/edu/year/2015/course/dat037

Läs mer

Kungl. Tekniska högskolan NADA Grundformer med Stava

Kungl. Tekniska högskolan NADA Grundformer med Stava Kungl. Tekniska högskolan NADA Grundformer med Stava Språkteknologi 2D1418 Höstterminen 2004 Författare: Andreas Pettersson az@kth.se 1. Bakgrund Om man automatiskt ska plocka ut de informationsbärande

Läs mer

DD1314 Programmeringsteknik

DD1314 Programmeringsteknik Skolan för Datavetenskap och kommunikation DD1314 Programmeringsteknik Föreläsning 1 o print o variabler o reserverade ord o input o kommentarer o beräkningar o datatyper o if-satser Kursinformation Programmering:

Läs mer

Modellering med kontextfri grammatik Kontextfri grammatik - definition En enkel kontextfri grammatik Klasser av formella språk

Modellering med kontextfri grammatik Kontextfri grammatik - definition En enkel kontextfri grammatik Klasser av formella språk Modellering med kontextfri grammatik Kontextfri grammatik - definition Kontextfri grammatik (CFG) definition modellering av frasstruktur andra exempel Dependensgrammatik Trädbanker Varianter av kontextfri

Läs mer

Tentamen i. TDDA 69 Data och programstrukturer

Tentamen i. TDDA 69 Data och programstrukturer 1 Linköpings tekniska högskola Institutionen för datavetenskap Anders Haraldsson Tentamen i TDDA 69 Data och programstrukturer Torsdag den 14 januari 2009, kl 14-18 Hjälpmedel: Inga. Poänggränser: Maximalt

Läs mer