2D1372 Artificiella språk och syntaxanalys
|
|
- Per-Erik Jonsson
- för 4 år sedan
- Visningar:
Transkript
1 VK Viggo Kann A NADA Laborationer i 2D172 Artificiella språk och syntaxanalys våren 1997 Namn... Personnr... Labb 1 Godkänt den... Kvitteras... Timmar... Labb 2 Godkänt den... Kvitteras... Timmar... Labb Godkänt den... Kvitteras... Timmar... Labb 4 Godkänt den... Kvitteras... Timmar... Labb 5 Godkänt den... Kvitteras... Timmar... 1
2 Laboration 1 i Artificiella språk och syntaxanalys, våren 1997 Simulering av NFA I denna laboration ska du skriva ett program som simulerar en ickedeterministisk ändlig automat. Du kommer att behöva detta program i laboration 4 senare i kursen. En ickedeterministisk ändlig automat (förkortat NFA) beskrivs av en femtupel som består av: alfabetet Σ, mängden tillstånd Q, starttillståndet q 0 Q, mängden accepterande tillstånd F Q och övergångsrelationen N : Q Σ {ε} Q. Vad allt detta står för beskrivs i avsnitt 2. och 2.4 i Introduction to compiler construction. Vid simuleringen ställer vi för enkelhets skull några extra krav på automaten. Tillstånden är numrerade med naturliga tal där tillstånd nummer noll är speciellt och är både starttillståndet och det enda accepterande tillståndet. Högst MAXSTATES=100 tillstånd får finnas. Från varje tillstånd får det antingen gå en teckenövergång, en epsilonövergång eller två stycken epsilonövergångar, det vill säga en ickedeterministisk förgrening. Detta är ingen svår begränsning alla ickedeterministiska ändliga automater kan enkelt skrivas om på ett sånt sätt. Från tillstånd noll går en epsilonövergång till det första egentliga tillståndet och när (och om) automaten återvänder till tillstånd noll så accepterar den, även om det finns inmatning kvar. Det får inte finnas någon loop med bara epsilonövergångar i automaten. ÖvergångsrelationenN ska realiseras med dom tre vektorerna nextch[], next1[] och next2[]. q 8, A,q 17 N ska lagras som nextch[8] = A, next1[8] = 17; och q 5,ε,q 2 N lagras som nextch[5] =, next1[5] = 2; Om det finns två epsilonövergångar från tillstånd q 5 används next2[5] för att lagra den andra (i annat fall ska next2[5] vara 1). Här följer ett exempel på en automat och hur automaten lagras i vektorerna. A 5 6 C 0 4 B D A nextch A B A C D next next
3 Idén är att man samtidigt ska komma ihåg alla tillstånd som automaten i ett visst läge av inmatningen kan befinna sig i. För att hålla reda på dessa behöver man implementera en lek (deque). Denna abstrakta datastruktur fungerar som en stack som man kan pusha och poppa element från i båda ändarna. I början av leken ska numren på dom tillstånd automaten befinner sig i ligga; därefter kommer ett staket (t ex markerat med talet 1), följt av dom tillståndautomaten kan hamna i efter att ha läst nästa tecken. För varje tillstånd före staketet kollar man om det finns några övergångar därifrån. Om det finns epsilonövergångar lägger man till dom nya tillstånden före staketet, det vill säga till mängden tillstånd som man kan befinna sig i. Om det finns en teckenövergång och tecknet stämmer överens med det inmatade tecknet lägger man till nästa tillstånd efter staketet. När alla tillstånd före staketet har betats av läser man in nästa inmatningstecken och flyttar staketet sist i leken. Så håller man på tills man når ett accepterande tillstånd, det inte finns några möjliga tillstånd kvar eller inmatningen är slut. Om det finns cykler av epsilonövergångar i automaten kommer man in i en oändlig slinga. Ditt program behöver inte klara av att hantera detta problem. Uppgifter 1. Skriv i valfritt programspråk en modul Deque som innehåller rutiner för hantering av leken. På nästa sida finns en C-inkluderingsfil som specificerar gränssnittet. Leken ska representeras som en vektor (se nedanstående beskrivning). Modulen Deque ska separatkompileras. 2. Skriv i en annan modul en procedur Automat() som simulerar en automat lagrad såsom beskrivits ovan. På nästa sida finns en algoritmbeskrivning. Se till att du förstår algoritmen!. Skriv ett huvudprogram som frågar efter en fil som innehåller en automat, läser in den automaten i dom tre vektorerna samt anropar simuleringsproceduren. Automaten i exemplet ovan finns ifilen/info/syntax97/labbar/1/labb1.exempel. Titta på den för att se hur dom tre vektorerna lagras på fil. Testa exempelautomaten med några inmatningar. Ditt program ska tala om ifall inledningen av raden accepteras och i så fall om den kortaste matchningen är hela inmatningsraden eller bara början av den. Vilket reguljärt uttryck motsvarar det språk exempelautomaten accepterar? Vektorrepresentation av en lek En lek med plats för maxdeq element kan representeras som en vektor v[0..maxdeq] och två index fp och bp. fp är indexet för det första elementet i leken och bp är indexet för det sista elementet i leken. Om det bara finns ett element i leken är alltså fp bp. Om det finns två element i leken är fp 1 bp, och allmänt, om det finns k element i leken är fp k 1 bp. Ombp faller utanför vektorn, det vill säga om bp > maxdeq så låter vi leken gå runt och fortsätta från index 0, det vill säga bp fp k 1 mod maxdeq 1. Följande figurer visar hur det kan se ut i olika fall.
4 En lek med ett element En lek med flera element fp bp fp bp En tom lek En full lek fp bp fp bp Algoritmbeskrivning för simulatorn D DEQUE-NEW(2 MAXSTATES) state next1[0] stop FALSE READ(ch) if ch \n then DEQUE-PUSH-FRONT(D, FENCE) repeat if statefence then READ(ch) if ch \n then DEQUE-PUSH-BACK(D, FENCE) else if nextch[state] then DEQUE-PUSH-FRONT(D, next1[state]) if next2[state] 1 then DEQUE-PUSH-FRONT(D, next2[state]) else if nextch[state]ch then DEQUE-PUSH-BACK(D, next1[state]) if not DEQUE-POP-FRONT(D, state) then stop TRUE until state0 or stop return state0 4
5 Gränssnitt för modulen Deque /* Gr nssnitt f r datastrukturen deque. */ /* Filen finns i /info/syntax96/labbar/1/deque.h */ #ifndef boolean #define boolean int #endif #ifndef TRUE #define TRUE 1 #define FALSE 0 #endif typedef struct deque *dequetype; typedef int dequeelementtype; /* DequeNew skapar en ny lek med plats f r maxdeque element. */ extern dequetype DequeNew(int maxdeque); /* DequeFull talar om ifall leken r full. */ extern boolean DequeFull(dequetype d); /* DequeEmpty talar om ifall leken r tom. */ extern boolean DequeEmpty(dequetype d); /* DequePushFront stoppar in elementet x f rst i leken och returnerar TRUE */ /* om det g r bra, dvs leken inte r full. */ extern boolean DequePushFront(dequetype d, dequeelementtype x); /* DequePushBack stoppar in elementet x sist i leken och returnerar TRUE */ /* om det g r bra, dvs leken inte r full. */ extern boolean DequePushBack(dequetype d, dequeelementtype x); /* DequePopFront poppar det f rsta elementet i leken och l gger det p den */ /* plats dit p pekar. Om leken var tom returneras FALSE, annars TRUE. */ extern boolean DequePopFront(dequetype d, dequeelementtype *p); /* DequePopBack poppar det sista elementet i leken och l gger det p den */ /* plats dit p pekar. Om leken var tom returneras FALSE, annars TRUE. */ extern boolean DequePopBack(dequetype d, dequeelementtype *p); 5
6 Laboration 2 i Artificiella språk och syntaxanalys, våren 1997 Lexikal analys med Flex Lex/Flex är ett utmärkt verktyg om man vill göra lexikala ändringar i en text. I denna laboration ska du utnyttja Flex för att extrahera information ur en enkel databas över redovisningsbokningar och skapa en bokningslista. Databasen för bokningssystemet är på textformat och har följande utseende: NYBOK AVBOK 1.00 RTID 0 >970115;8.00;10.00;Brun;viggo :1;x94-pan;Andersson, Peter :2;y9_mad;Arvehed, Melitta :;x94-bjo;johansson, Bojan >970124;1.00;15.00;Brun;viggo >97011;1.00;15.00;Brun;viggo :1;x94-gmy;Mysk, Gottwolf :;x94-lbo;bonn, Lissa :4;y94_ntn;Tessin, Nisse Först i databasen kommer deklarationer av några variabler. Den enda som är intressant för bokningslistan är variabeln RTID som anger hur många minuter en redovisning tar. Efter deklarationerna följer bokningshuvuden och bokningar. Varje bokningshuvud är en rad som inleds med tecknet > och följs av datum, starttid och sluttid för ett redovisningspass. Sist på raden kommer en sträng som anger i vilken sal redovisningarna ska äga rum och vem som ska ta hand om redovisningarna. Fälten skiljs av semikolon. Efter bokningshuvudet kommer dom bokningar som hittills är gjorda till det redovisningstillfället, en bokning per rad. Varje bokningsrad inleds med tecknet : och följs av ordningsnumret (bokning 1 börjar på redovisningstillfälletsstarttid, bokning2 börjar RTID minuter senare och så vidare), användarnamn samt vanligt namn på den som bokat in sig på tiden. Utmatningen från programmet ska vara en bokningslista som anger namn, datum och tid för varje bokning. Ovanstående bokningsfil ska producera följande lista: Andersson, Peter Arvehed, Melitta Johansson, Bojan Mysk, Gottwolf Bonn, Lissa Tessin, Nisse Din uppgift är att skriva en sådan översättare i Flex. Programmet behöver inte hantera felaktiga indata. Använd Flex möjlighet att märka dom reguljära uttrycken med startvillkor (se avsnittet Start conditions i Flexmanualen i Info i Emacs och tal 2.6 i exempelsamlingen). Inför till exempel ett startvillkor för bokningshuvuden och ett för bokningar. Indatafilen i exemplet ovan heter /info/syntax97/labbar/2/bokning.db. 6
7 Laboration i Artificiella språk och syntaxanalys, våren 1997 Rekursiv medåkning Rekursiv medåkning (eng. recursive descent) är en metod att direkt från en grammatik skriva en enkel syntaxanalysator i ett vanligt programspråk, se avsnitt. i Introduction to compiler construction. I denna laboration ska du modifiera och bygga ut en rekursiv medåkningsanalysator för en enkel räknedosa. Du ska utgå från filen /info/syntax97/labbar//casio.c som innehåller en räknedosa med dom fem räknesätten addition, subtraktion, multiplikation, division och exponentiering enligt nedanstående EBNF-grammatik. Denna analysator gås igenom på föreläsning 7. <start> ::= ENDSYM \n <start> <expr> \n <start> <expr> ::= <term> { ( + - ) <term> } <term> ::= <factor> { ( * / ) <factor> } <factor>::= <prim> [ ^ <factor> ] <prim> ::= NUMBERSYM - <prim> ( <expr> ) Uppgifter 1. Se till att du förstår den givna analysatorn i detalj. 2. Bygg ut analysatorn med variabler och en tilldelningssats enligt följande tillägg till grammatiken: <start> ::= LET <variable> = <expr> \n <start> <prim> ::= <variable> <variable> ::= VARIABLESYM Du måste alltså lägga till tre symboler LETSYM, ASSIGNSYM och VARIABLESYM till den lexikala analysatorn. Du får själv bestämma hur en variabel ska få se ut, men det räcker om du tillåter enbokstavsnamn. Du måste också hålla reda på variablernas värden i en symboltabell med hjälp av någon lämpligt vald datastruktur. 7
8 Laboration 4 i Artificiella språk och syntaxanalys, våren 1997 Reguljära uttryck med Flex och Bison Denna laboration är en tillämpning av teorin för reguljära uttryck och kontextfria grammatiker. Du ska med hjälp av Flex och Bison skriva ett program som syntaxanalyserar ett reguljärt uttryck och skriver ut en beskrivning av en ickedeterministisk ändlig automat som känner igen språket som det reguljära uttrycket beskriver. När programmet är klart ska man kunna köra det och skriva in ett reguljärt uttryck, till exempel x(uv w)* som motsvarar xuv w med bokens notation. Programmet ska då på fil beskriva en ickedeterministisk ändlig automat som accepterar detta språk. Därefter ska man kunna använda programmet som du skrev i laboration 1 för att simulera automaten och testa om olika inmatningssträngar accepteras. Reguljära uttryck beskrivs i avsnitt 2.6 i Introduction to compiler construction. Grammatiken för reguljära uttryck kan i BNF skrivas på följande sätt. <expression>::= <term> <expression> <term> <term>::= <factor> <term><factor> <factor>::= ( <expression> ) <factor> * v Lexikala regler: v betyder en bokstav (A Ö eller a ö); blanka får förekomma var som helst i uttrycket. Grammatiken ovan har medvetet skrivits vänsterrekursiv för Yaccs och Bisons skull, se sida 14 i Introduction to compiler construction och avsnittet Recursion i kapitlet Bison Grammar Files i Bisonmanualen i Info i Emacs. Uppgifter 1. Skriv om dom kontextfria grammatiska reglerna ovan i Bison. Inför en extra regel <regexp> ::= <expression> och låt regexp vara startsymbol. Som lexikal analysator yylex() ska Flex användas. Låt LETTER vara slutsymbolen som motsvarar en bokstav. Låt huvudprogrammet bara kolla värdet av yyparse() och skriva korrekt (om det var ett riktigt reguljärt uttryck) eller felaktigt beroende på om värdet var 0 eller 1. Programmet är nu en färdig syntaxanalysator (parser) som känner igen språket av (korrekta) reguljära uttryck. Kör Flex och Bison, kompilera och prova att mata in några riktiga och felaktiga reguljära uttryck. För att tala om att ett uttryck är färdiginmatat måste man kanske (beroende på hur yylex() ser ut) trycka på CTRL-D, dvs filslut, först på en rad. 2. Nu ska syntaxanalysatorn byggas ut till en översättare, som givet ett reguljärt uttryck skapar och matar ut en ickedeterministisk automat. Uppgiften är alltså att skapa vektorerna nextch[], next1[] och next2[] (från laboration 1). Låt state vara en heltalsvariabel som håller reda på indexet för den första oanvända platsen i tillståndsvektorerna. Sätt state = 1 från början. Starttillståndet, som har nummer 0, kommer att tillverkas sist av allt. Läs om hur reguljära uttryck kan översättas till ändliga igenkännare i avsnitt 2.7 i Introduction to compiler construction. Varje regel i din grammatik känner igen ett reguljärt uttryck som är ett deluttryck i det hela reguljära uttrycket. Låt regeln bilda den delautomat som motsvarar det reguljära uttrycket. Denna delautomat har ett starttillstånd och ett sluttillstånd. För att delautomaten ska kunna kopplas ihop med andra automater måste dess starttillstånd och sluttillstånd 8
9 bli kända för dom andra reglerna. Detta går att göra genom att regeln som semantiskt värde returnerar en post som innehåller dom två heltalen enterstate och exitstate som anger numren på delautomatens starttillstånd och sluttillstånd. Alltså måste varje regel sätta värden på $$.enterstate och $$.exitstate. När nu reglerna expression, term och factor ska returnera semantiska värden som är en post istället för ett tecken (som returneras från LETTER) så måste den semantiska typen vara en union av en teckentyp och en posttyp. Deklarationen kan göras i Yaccfilen på följande sätt. %union { char letter; struct { int enterstate; int exitstate; } states; } Skapa ett nytt tillstånd genom att anropa proceduren void setstate(int state, char c, int n1, int n2) { nextch[state] = c; next1[state] = n1; next2[state] = n2; } När man skapar en delautomats sluttillstånd vet man inte ännu vart uthoppet ska gå, utan övergången måste sättas av den regel som senare kombinerar den aktuella delautomaten med nästa delautomat. Enklast blir det för den regeln om du alltid ser till att uthoppet från delautomaten går från next1[]. Initiera uthoppsövergången till 1 så är det lätt att se på automaten om något uthopp förblir otilldelat. Figuren nedan talar om för varje regel hur motsvarande ändliga automat kan byggas. Alla övergångar är epsilonövergångar utom den som läser en bokstav i den nedersta automaten. expression expression term term term factor term factor factor * factor v v 9
10 För att se till att tillstånd nr 0 är det första och sista tillståndet enligt specifikationen i laboration 1 kan man använda sig av följande Yaccregel. regexp : ; expression { setstate(0,, $1.enterState, -1); next1[$1.exitstate] = 0; } När vektorerna är färdiguppbyggda återstår bara att skriva ut dom på fil. Detta kan till exempel göras i main() efter anropet av yyparse(). När programmet är klart ska det kunna producera filer som kan läsas av simulatorn från laboration 1. Prova några reguljära uttryck och kolla att allt fungerar. Det är inte nödvändigt med någon felhantering. Syntaxanalysatorn behöver inte klara av reguljära uttryck som innehåller en onödig stjärna, tex A. Den givna beskrivningen ger nämligen en slinga av enbart epsilonövergångar för sådana reguljära uttryck, och det klarar inte simulatorn från laboration 1 av. Den som vill får givetvis råda bot på problemet genom att inte tillverka några nya tillstånd för onödiga stjärnoperatorer. 10
11 Laboration 5 i Artificiella språk och syntaxanalys, våren 1997 En valfri översättare I denna laboration ska du få tillämpa det du har lärt dig i kursen på en egen praktiskt användbar översättare. Du ska antingen skriva en översättare från en välkänd notation till en annan eller en granskare som kollar syntaxen och ger vettiga felmeddelanden om inmatningen är felaktig. Du får själv välja uppgift bland förslagen nedan. Ditt program ska använda något syntaxanalyseringsverktyg, men det är din sak att välja mellan till exempel Yacc, Bison, Ox, Jack, PCCTS och liknande verktyg. Kom ihåg att du inte kan förvänta dig att du alltid kan få hjälp av handledarna med andra verktyg än dom som använts i kursen. Uppgift 1. Välj en av nedanstående uppgifter. Skriv ner en kravspecifikation för programmet. Eftersom uppgiftsformuleringarna är korta och vaga så finns det en hel del detaljer som bör fyllas i. Om du har valt någon av dom fria uppgifterna (dom två sista i listan) så måste du visa upp din specifikation för någon av lärarna för att få klartecken att göra uppgiften. Annars så räcker det att du tar med specifikationen när du redovisar programmet. Det är viktigt att du begränsar uppgiften så att den inte blir för stor. Uppgiften bör högst ta 20 timmar att göra. Om det är ett stort språk du ska analysera kan du ta bort delar av grammatiken som är mindre viktiga och inte tillför uppgiften någon extra svårighet utan bara merarbete. 2. Ta reda på grammatiker för dom språk ditt program ska behandla. Sök gärna information i Internet. På kursens sida i www finns en del pekare till användbar information. Du kanske till och med kan hitta en färdig grammatik i det format som det syntaxanalyseringsverktyg du valt vill ha. Däremot får du förstås inte kopiera färdiga program det är du som ska lösa uppgiften och inte någon annan.. Skriv med hjälp av det syntaxanalyseringsverktyg du valt ett program som löser uppgiften (det vill säga uppfyller kravspecifikationen). Programmet måste hålla god kvalitet (vara korrekt, effektivt, lättläst, flexibelt och robust). 4. Skriv en enkel användarhandledning för programmet. Förslag på uppgifter 1. Konvertering av HTML till TEX/LATEX. 2. Konvertering av RTF (Rich text format) till HTML.. Konvertering av RTF till TEX/LATEX. 4. Konvertering av Framemaker till HTML. 5. Konvertering av KTHs lässchema i textform till veckoscheman i HTML, LATEX eller liknande. 6. Konvertering av tupelkalkyl till SQL. Kvantifikatorn för alla behöver inte implementeras. 11
12 7. Konvertering av relationsalgebra till SQL. 8. Granskning av SQL. 9. Granskning av HTML. 10. Programförskönare för C-kod, Javakod eller liknande. 11. Programstatistikgenerator för C, Pascal, ADA, Java eller något liknande språk. Statistiken kan bestå av antal parametrar per funktion, antal lokala och globala variabler, antal direkta och indirekta funktionsanrop etcetera. 12. Automatisk konstruktion av prototypdeklarationer i C. Programmet bör klara både funktioner med ANSI-C-syntax och gammal K&R-C-syntax. 1. Förbättrad Yacc-syntax. Uppfinn en snyggare och behändigare syntax till Yaccfiler och skriv en syntaxanalysatorsom översätter filer med den nya syntaxen till Yaccfiler som kan stoppas in i Yacc eller Bison. 14. Konvertera mellan två andra notationer. Välj själv vilka, men du måste få specifikationen godkänd av någon av lärarna innan du gör uppgiften. 15. Definiera ett eget programspråk och gör en granskare för det. Du måste få specifikationen godkänd av någon av lärarna innan du gör uppgiften. 12
2D1373 Artificiella språk och syntaxanalys
7 december 1998 Numerisk analys och datalogi Lars Engebretsen Laborationer i 2D1373 Artificiella språk och syntaxanalys våren 1999 Namn:.........................................................................................
Läs merÖvningsexempel i Artificiella språk och syntaxanalys 2D1373
Numerisk analys och datalogi Övningsexempel i Artificiella språk och syntaxanalys 2D1373 Lars Engebretsen Mikael Goldman Viggo Kann 12 februari 2002 2 Innehåll 0 Inledning 7 0.1 Ändliga automater.........................
Läs merMÄLARDALENS HÖGSKOLA. CD5560 Formella språk, automater och beräkningsteori. Användarmanual. för simulatorn JFLAP
MÄLARDALENS HÖGSKOLA CD5560 Formella språk, automater och beräkningsteori Användarmanual för simulatorn JFLAP Innehållsförteckning Att komma igång med JFLAP... 3 Att köra en sträng... 5 Att köra flera
Läs merFöreläsning 7: Syntaxanalys
DD2458, Problemlösning och programmering under press Föreläsning 7: Syntaxanalys Datum: 2007-10-30 Skribent(er): Erik Hammar, Jesper Särnesjö Föreläsare: Mikael Goldmann Denna föreläsning behandlade syntaxanalys.
Läs merIntroduktion 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 merDD1361 Programmeringsparadigm. Formella Språk & Syntaxanalys. Per Austrin
DD1361 Programmeringsparadigm Formella Språk & Syntaxanalys Föreläsning 4 Per Austrin 2015-11-20 Idag Rekursiv medåkning, fortsättning Olika klasser av språk och grammatiker Parsergeneratorer Sammanfattning
Läs merDD1361 Programmeringsparadigm. Formella Språk & Syntaxanalys. Per Austrin
DD1361 Programmeringsparadigm Formella Språk & Syntaxanalys Föreläsning 3 Per Austrin 2015-11-13 Huvudkoncept hittils: Snabb repetition Formellt språk en mängd strängar Reguljära språk den klass av formella
Läs merInlämningsuppgift MiniPlotter
LUNDS TEKNISKA HÖGSKOLA Institutionen för datavetenskap EDAA01 Programmeringsteknik fördjupningskurs Inlämningsuppgift MiniPlotter I den här uppgiften ska ett program som ritar grafer av matematiska funktioner
Läs merlex källkod lex.l lexkompilator lex.yy.c C- kompilator lex.yy.c a.out sekvens av tokens a.out input specifikation av tokens mha reguljära uttryck
input läs tecken stoppa tillbaka ett tecken skicka ett token och dess attribut parser Eliminera white space och kommentarer Gruppera lästa tecken till tokens identifierare, nyckelord, numeriska konstanter,
Läs merFöreläsning 6: Introduktion av listor
Föreläsning 6: Introduktion av listor Med hjälp av pekare kan man bygga upp datastrukturer på olika sätt. Bland annat kan man bygga upp listor bestående av någon typ av data. Begreppet lista bör förklaras.
Läs merLaboration 3 HI1024, Programmering, grundkurs, 8.0 hp
Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp Dataingenjörsprogrammet, elektroingenjörsprogrammet och medicinsk teknik KTH Skolan för Teknik och Hälsa Redovisning: Se Kurs-PM om hur redovisningen
Läs merIdag: Reguljära språk Beskrivs av Reguljära uttryck DFA Grammatik
Idag: Reguljära språk Beskrivs av Reguljära uttryck DFA Grammatik Först några definitioner: Alfabet = en ändlig mängd av tecken. Ex. {0, 1}, {a,b}, {a, b,..., ö} Betecknas ofta med symbolen Σ Sträng =
Läs merReguljära uttryck Grammatiker Rekursiv nedåkning Allmänna kontextfria grammatiker. Syntaxanalys. Douglas Wikström KTH Stockholm
Syntaxanalys Douglas Wikström KTH Stockholm popup-help@csc.kth.se Reguljära uttryck Reguljära uttryck förutsätter att en mängd bokstäver är givna, ett så kallat alfabet, som oftast betecknas med Σ. Uttryck
Läs merFöreläsning 3-4 Innehåll. Diskutera. Metod. Programexempel med metod
Föreläsning 3-4 Innehåll Diskutera Vad gör programmet programmet? Föreslå vilka satser vi kan bryta ut till en egen metod. Skriva egna metoder Logiska uttryck Algoritm för att beräkna min och max Vektorer
Läs merProgrammera 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 merFöreläsning 3-4 Innehåll
Föreläsning 3-4 Innehåll Skriva egna metoder Logiska uttryck Algoritm för att beräkna min och max Vektorer Datavetenskap (LTH) Föreläsning 3-4 HT 2017 1 / 36 Diskutera Vad gör programmet programmet? Föreslå
Läs merTENTAMEN 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 merTentamen. Datalogi I, grundkurs med Java 10p, 2D4112, Lördagen den 30 november 2002 kl , salar E33, E34
Tentamen Datalogi I, grundkurs med Java 10p, 2D4112, 2002-2003 Lördagen den 30 november 2002 kl 9.00 14.00, salar E33, E34 Inga hjälpmedel 30 poäng ger säkert godkänt, 40 poäng ger betyg 4 50 poäng ger
Läs meri=1 c i = B och c i = a i eller c i = b i för 1 i n. Beskriv och analysera en algoritm som löser detta problem med hjälp av dynamisk programmering.
Algoritmer och Komplexitet ht 8 Övning 3+4 Giriga algoritmer och Dynamisk programmering Längsta gemensamma delsträng Strängarna ALGORITM och PLÅGORIS har den gemensamma delsträngen GORI Denlängsta gemensamma
Läs merC++ Funktioner 1. int summa( int a, int b) //funktionshuvud { return a+b; //funktionskropp } Värmdö Gymnasium Programmering B ++ Datainstitutionen
C++ Funktioner 1 Teori När programmen blir större och mer komplicerade är det bra att kunna dela upp programmet i olika delar som gör specifika saker, vilket kan göra programmet mer lättläst. Ett sätt
Läs merKontextfria grammatiker
Kontextfria grammatiker Kontextfria grammatiker 1 Kontextfria grammatiker En kontextfri grammatik består av produktioner (regler) på formen S asb S T T # Vänsterledet består av en icke-terminal (variabel)
Läs merProgrammering, grundkurs, 8.0 hp HI1024, HI1900 etc., Tentamen TEN1. Måndagen den 10 januari 2011,
Programmering, grundkurs, 8.0 hp HI1024, HI1900 etc., Tentamen TEN1 Måndagen den 10 januari 2011, 8.15 12.15 Tentamen består av två delar, del A och del B. Del A innehåller 10 kryssfrågor på olika teman
Läs merNamn: (Ifylles av student) Personnummer: (Ifylles av student) Tentamensdatum: Tid: Hjälpmedel: Inga hjälpmedel
Data- och Programstrukturer Provmoment: Ladokkod: Tentamen ges för: Omtentamen NDP011 Systemarkitektprogrammet 7,5 högskolepoäng Namn: (Ifylles av student) Personnummer: (Ifylles av student) Tentamensdatum:
Läs merAutomatateori (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 merJohan Karlsson Datavetenskap för teknisk kemi, 10p, moment 1 Datavetenskap Umeå Universitet. Tentamen
Tentamen för teknisk kemi, 10p, moment 1 29 november 1999 Skrivtid 9-15 Hjälpmedel: av följande böcker. - U. Bilting och J. Skansholm: Vägen till C - A. Kelley & I. Pohl: A Book on C Maxpoäng: Gräns för
Läs merTypkonvertering. Java versus C
Typer Objektorienterad programmering E Typkonvertering Typkonvertering Satser: while, for, if Objekt Föreläsning 2 Implicit konvertering Antag att vi i ett program deklarerat int n=3; double x = 5.2; Då
Läs merAlfabeten, strängar och språk. String
Alfabeten, strängar och språk Objektorienterad modellering och diskreta strukturer / design Språk och reguljära uttryck Ett alfabet är en ändlig icketom mängd vars element kallas symboler. Lennart Andersson
Läs merAnvändarhandledning Version 1.2
Användarhandledning Version 1.2 Innehåll Bakgrund... 2 Börja programmera i Xtat... 3 Allmänna tips... 3 Grunderna... 3 Kommentarer i språket... 4 Variabler... 4 Matematik... 5 Arrayer... 5 på skärmen...
Läs merObjektorienterad programmering i Java I. Uppgifter: 2 Beräknad tid: 5-8 timmar (OBS! Endast ett labbtillfälle) Att läsa: kapitel 5 6
Laboration 2 Objektorienterad programmering i Java I Uppgifter: 2 Beräknad tid: 5-8 timmar (OBS! Endast ett labbtillfälle) Att läsa: kapitel 5 6 Syfte: Att kunna använda sig av olika villkors- och kontrollflödeskonstruktioner
Läs merTDIU01 - Programmering i C++, grundkurs
TDIU01 - Programmering i C++, grundkurs Pekare och Listor Eric Elfving Institutionen för datavetenskap 31 oktober 2014 Översikt 2/41 Internminne Pekare Dynamiska datastrukturer (Enkellänkade) listor Arbeta
Läs merInlämningsuppgift : Finn. 2D1418 Språkteknologi. Christoffer Sabel E-post: csabel@kth.se 1
Inlämningsuppgift : Finn 2D1418 Språkteknologi Christoffer Sabel E-post: csabel@kth.se 1 1. Inledning...3 2. Teori...3 2.1 Termdokumentmatrisen...3 2.2 Finn...4 3. Implementation...4 3.1 Databasen...4
Läs merLaboration 3 HI1024, Programmering, grundkurs, 8.0 hp
Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp Dataingenjörsprogrammet, elektroingenjörsprogrammet och medicinsk teknik KTH Skolan för Teknik och Hälsa Redovisning: Se Kurs-PM om hur redovisningen
Läs merDatastrukturer. föreläsning 3. Stacks 1
Datastrukturer föreläsning 3 Stacks 1 Abstrakta datatyper Stackar - stacks Köer - queues Dubbeländade köer - deques Vektorer vectors (array lists) All är listor men ger tillgång till olika operationer
Läs merFöreläsning 9: Turingmaskiner och oavgörbarhet. Turingmaskinen. Den maximalt förenklade modell för beräkning vi kommer använda är turingmaskinen.
Föreläsning 9: Turingmaskiner och oavgörbarhet Turingmaskinen Den maximalt förenklade modell för beräkning vi kommer använda är turingmaskinen. Data är ett oändligt långt band där nollor och ettor står
Läs merUppgift 1 (grundläggande konstruktioner)
Uppgift 1 (grundläggande konstruktioner) a) Skriv ett program som låter användaren mata in 7 heltal och som gör utskrifter enligt nedanstående körexempel. Mata in 7 heltal: 1 0 0 3 1 1 1 Tal nr 2 var en
Läs merBackcode. Jonathan Crusoe TDP019 Projekt: Datorspråk Linköpings universitet
Žƒ ƒ Ž Ž ˆ ƒ ƒ ƒ Žƒ ƒ Ž ˆ Œ ŽŽ ƒ Backcode Jonathan Crusoe TDP019 Projekt: Datorspråk Linköpings universitet Innehållsförteckning 12-05-29 Inledning... 3 Användarhandledningen... 4 Klasser... 4 Metoder...
Läs merNamn: Personnr: 1 2D1310 Programmeringsteknik i Java för B,V (1p) 13 januari 2001, kl Hjälpmedel: En Javabok. För betyget godkänt krävs at
Namn: Personnr: 1 2D1310 Programmeringsteknik i Java för B,V (1p) 13 januari 2001, kl 14.00 17.00 Hjälpmedel: En Javabok. För betyget godkänt krävs att a- eller b-delen av varje fråga (uppgift 1 4) samt
Läs merProgrammering 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 merTentamen *:58/ID100V Programmering i C Exempel 3
DSV Tentamen *:58/ID100V Sid 1(5) Tentamen *:58/ID100V Programmering i C Exempel 3 Denna tentamen består av fyra uppgifter som tillsammans kan de ge maximalt 22 poäng. För godkänt resultat krävs minst
Läs merAnmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper
Tentamen Programmeringsteknik II 2018-10-19 Skrivtid: 8:00 13:00 Tänk på följande Skriv läsligt. Använd inte rödpenna. Skriv bara på framsidan av varje papper. Lägg uppgifterna i ordning. Skriv uppgiftsnummer
Läs merSätt att skriva ut binärträd
Tilpro Övning 3 På programmet idag: Genomgång av Hemtalet samt rättning Begreppet Stabil sortering Hur man kodar olika sorteringsvilkor Inkapsling av data Länkade listor Användning av stackar och köer
Läs merUniversitetet i Linköping Institutionen för datavetenskap Anders Haraldsson
1 2 Grundläggande datavetenskap, IT1 Perspektiv på datateknik, D1 Perspektiv på datavetenskap, C1 Breddföreläsning orientering om: formella språk grammatik parsing Att läsa mer: Brookshear, Computer Science
Läs merUppgift 1 ( Betyg 3 uppgift )
2008-03-12.kl.14-19 Uppgift 1 ( Betyg 3 uppgift ) Du skall skriva ett program som läser igenom en textfil som heter FIL.TXT och skriver ut alla rader där det står ett decimaltal först på raden. Decimaltal
Läs merUppgift 1a (Aktiekurser utan poster)
Uppgift 1a (Aktiekurser utan poster) Vi har lite olika upplägg i de kurser vi håller och i vissa kurser finns det med något som vi kallar "poster" (eng. "record"). I andra har vi inte med detta. Vi har
Läs merTentamen, EDAA10 Programmering i Java
LUNDS TEKNISKA HÖGSKOLA 1(6) Institutionen för datavetenskap Tentamen, EDAA10 Programmering i Java 2019 08 21, 08.00 13.00 Anvisningar: Preliminärt ger uppgifterna 25 + 15 + 5 = 45 poäng. För godkänt betyg
Läs merDD1361 Programmeringsparadigm. Carina Edlund
DD1361 Programmeringsparadigm Carina Edlund carina@nada.kth.se Funktionell programmering Grundidéen med funktionell programmering är att härma matematiken och dess funktionsbegrepp. Matematiskt funktionsbegrepp
Läs merTuringmaskiner och oavgörbarhet. Turingmaskinen. Den maximalt förenklade modell för beräkning vi kommer använda är turingmaskinen.
Turingmaskiner och oavgörbarhet Turingmaskinen Den maximalt förenklade modell för beräkning vi kommer använda är turingmaskinen. Data är ett oändligt långt band där nollor och ettor står skrivna: Oändligt
Läs merGrammatik. BNF-grammatik
Grammatik Objektorienterad modellering och diskreta strukturer / design Grammatik Reguljära uttryck klarar inte av att beskriva mängden av aritmetiska uttryck. Lennart Andersson Reviderad 2010 10 07 2010
Läs merPython. 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 merObjektorienterad modellering och diskreta strukturer. 13. Problem. Sven Gestegård Robertz. Datavetenskap, LTH
Objektorienterad modellering och diskreta strukturer 13. Problem Sven Gestegård Robertz Datavetenskap, LTH 2014 Rekaputilation Vi har talat om satslogik och härledning predikatlogik och substitution mängder
Läs merInlämningsuppgift 1, Digsim
Inlämningsuppgift 1, Digsim Specifikation Skriv ett program som utför addition av heltal (positiva eller negativa) i binär form med hjälp av digitala grindar, som programmet ska simulera. Programmet ska
Läs merPython. 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 merKlassdeklaration. Metoddeklaration. Parameteröverföring
Syntax: Class Declaration Modifier Class Body Basic Class Member Klassdeklaration class Class Member Field Declaration Constructor Declaration Method Declaration Identifier Class Associations Motsvarar
Läs merFöreläsning REPETITION & EXTENTA
Föreläsning 18 19 REPETITION & EXTENTA Programmeringsteknik på 45 minuter Klasser och objekt Variabler: attribut, lokala variabler, parametrar Datastrukturer Algoritmer Dessa bilder är inte repetitionsbilder
Läs merTDDC77 Objektorienterad Programmering
TDDC77 Objektorienterad Programmering Föreläsning 3 Sahand Sadjadee IDA, Linköpings Universitet Hösttermin 2018 Outline Operatorer Java Standard Library Inmatning Operatorer operatorer En operator är en
Läs merKompilering 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 merDynamisk programmering
DD2354, Algoritmer och komplexitet, 27 Uppgifter till övning 4 Dynamisk programmering Talföljder Givet är två följder av positiva heltal a,a 2,,a n och b,b 2,, b n där alla tal är mindre än n 2 samt ett
Läs merDefinition. Mängden av reguljära uttryck på alfabetet Σ definieras av. om α och β är reguljära uttryck så är (α β) ett reguljärt uttryck
Lunds tekniska högskola Datavetenskap Lennart Andersson Föreläsningsanteckningar EDAF10 6 Reguljära uttryck I unix-skal finns ange enkla mönster för filnamn med * och?. En del program, t ex emacs, egrep
Läs merIntroduktion Schenker-BTL AB, Stab IT Beskrivning över informationsintegreringmed Schenker, metodbeskrivning version 1.
Schenker har interna system som handhar information som är av intresse för våra kunder/partners. Idag finns ett flertal av dem tillgängliga via Internet, sk Online-tjänster. Dessa erbjuder inte bara hämtning
Läs merProgrammering för språkteknologer II, HT2011. Rum
Programmering för språkteknologer II, HT2011 evelina.andersson@lingfil.uu.se Rum 9-2035 http://stp.ling.uu.se/~evelina/uv/uv11/pst2/ Kursplan Mål Efter avslutad kurs skall studenten för att förtjäna betyget
Läs merUppgift 1 ( Betyg 3 uppgift )
2004-03-10.kl.08-13 Uppgift 1 ( Betyg 3 uppgift ) Du skall skriva ett program som ritar ut en åtthörning på skärmen. Åtthörningen skall dock se ut enligt exemplen nedan och det är så att användaren skall
Läs merObjektorienterad Programmering (TDDC77)
Objektorienterad Programmering (TDDC77) Föreläsning II: utmatning, variabler, typer Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 Kompilera och köra programmet under terminal 2: I Skapa Hej.java
Läs mer1/15/2013. DD1310/DD1314/DA3009 Programmeringsteknik. Lärandemål... Vilka läser kursen? ...fler lärandemål VARFÖR? Föreläsning 1
Skolan för Datavetenskap och kommunikation DD1310/DD1314/DA3009 Programmeringsteknik Föreläsning 1 Kursinfo Diagnostiskt prov Python-intro: print variabler reserverade ord input kommentarer beräkningar
Läs merPascal... Pascal. Pascal... Pascal...
... Programspråk uppkallat efter Blaise. Skapat av Nicolaus Wirt. Avsett för undervisning för att lära ut typbegreppet och styrstrukturer. Har fått stor spridning p.g.a. enkelhet och att kompilatorn varken
Läs merGrundlä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 merDD1310/DD1314/DA3009 Programmeringsteknik LÄRANDEMÅL... Vilka läser kursen? ...FLER LÄRANDEMÅL. Föreläsning 1
Skolan för Datavetenskap och kommunikation DD1310/DD1314/DA3009 Programmeringsteknik Föreläsning 1 Kursinfo Python-intro: print variabler reserverade ord input kommentarer beräkningar datatyper if-satser
Läs merI Skapa Hej.java och skriv programmet. I Kompilera med javac Hej.java. I Rätta fel och repetera tills du lyckas kompilera ditt program
Kompilera och köra programmet Objektorienterad Programmering (TDDC77) Föreläsning II: utmatning, variabler, typer Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 under terminal 2: I Skapa Hej.java
Läs merkl Tentaupplägg
Tentaupplägg TIPS 1: Läs igenom ALLA uppgifterna. Välj den du känner är lättast först. Det kan gärna ta 10-20 minuter. Försök skriva saker som kan vara problem i uppgifterna. Är det något du absolut kommer
Läs merPascal. reserverade ord fördefinierade funktioner och procedurer egendefinierade funktioner, procedurer och objekt
Programspråk uppkallat efter Blaise. Skapat av Nicolaus Wirt. Avsett för undervisning för att lära ut typbegreppet och styrstrukturer. Har fått stor spridning p.g.a. enkelhet och att kompilatorn varken
Läs merLabb i Datorsystemteknik och programvaruteknik Programmering av kalkylator i Visual Basic
Labb i Datorsystemteknik och programvaruteknik Programmering av kalkylator i Visual Basic Inledning Starta Microsoft Visual Studio 2005. Välj create Project Välj VB + Vindows Application och välj ett nytt
Läs merTDDC74 Programmering: Abstraktion och modellering Tenta, kl 14 18, 11 juni 2014
TDDC74 Programmering: Abstraktion och modellering Tenta, kl 14 18, 11 juni 2014 Läs alla frågorna först, och bestäm dig för i vilken ordning du vill lösa uppgifterna. Skriv tydligt och läsligt. Använd
Läs merSkolan för Datavetenskap och kommunikation PROGRAMMERINGSTEKNIK FÖRELÄSNING 18
Skolan för Datavetenskap och kommunikation PROGRAMMERINGSTEKNIK FÖRELÄSNING 18 Dagens föreläsning Betygskriterier P-redovisning Komplettering Vad händer om man inte hinner klart? Plussa för betyg E ska
Läs merFöreläsning 3: Abstrakta datastrukturer, kö, stack, lista
Föreläsning 3: Abstrakta datastrukturer, kö, stack, lista Abstrakt stack Abstrakt kö Länkade listor Abstrakta datatyper Det är ofta praktiskt att beskriva vilka operationer man vill kunna göra på sina
Läs merFö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 merDAB760: Språk och logik
DAB76: Språk och logik /4: Finita automater och -7 reguljära uttryck Leif Grönqvist (leif.gronqvist@msi.vxu.se) Växjö Universitet (MSI) GSLT (Sveriges nationella forskarskola i språkteknologi) Göteborg
Läs mer732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Muddy. Funktioner / metoder. Punktnotation. Evalueringsordning
Varför? 732G11 Linköpings universitet 2011-02-08 Varför? 1 2 3 Varför? 4 5 Medelvärde av 5000 tal Varför? while-loopen int nrofints = 5000; int [] integers = new int [ nrofints ]; int pos = 0; while (
Läs merGrundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2
AID-nummer: Datum: 2014-12-18 Kurskod: 725G61 Provkod: LAB1 Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2 Skrivningstid: 2014-12-18 klockan 8.00-10.00. Hjälpmedel: Inga. För varje fråga
Läs merParsning. 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 merRekursion och induktion för algoritmkonstruktion
Informationsteknologi Tom Smedsaas, Malin Källén 20 mars 2016 Rekursion och induktion för algoritmkonstruktion Att lösa ett problem rekursivt innebär att man uttrycker lösningen i termer av samma typ av
Läs merDD1314 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 merF4. programmeringsteknik och Matlab
Programmeringsspråk Föreläsning 4 programmeringsteknik och Matlab 2D1312/ 2D1305 Introduktion till Java Kompilering, exekvering, variabler, styrstrukturer 1 Ett program är en eller flera instruktioner
Läs merTentamen Grundläggande programmering
Akademin för Innovation Design och Teknik Tentamen Grundläggande programmering Kurskod: DVA103 Datum 2012-06-11 Tid 14.10 16.30 Examinator: Lars Asplund Maxpoäng: 48 Betygsgränser: Betyg 3: 20 Betyg 4:
Läs merLabora&on 2 Funk&oner, if och loop övningar/uppgi:er
Labora&on 2 Funk&oner, if och loop övningar/uppgi:er 1M322 Webbteknik 2, 7,5hp Medieteknik 2017 Rune Körnefors rune.kornefors@lnu.se 1. Ladda ner arbetsdokument Till övningarna i denna labora&on finns
Läs mer12. Relationer och funktioner
Objektorienterad modellering och diskreta strukturer 12. Relationer och funktioner Sven Gestegård Robertz Institutionen för datavetenskap, LTH 2013 Laboration 4 Syntaxanalys Grammatik för (vår delmängd
Läs merÖvning från förra gången: readword
(9 september 2010 T4.1 ) Övning från förra gången: readword /** readword.c * * int readword(char w[], int n) { * * Läser tecken tills en bokstav påträffas. * Läser och lagrar sedan högst n-1 bokstäver
Läs merTDIU01 - 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 merFöreläsning 11 - Automater, textsökning, tillstånd
Föreläsning 11 - Automater, textsökning, tillstånd Automater Textsökning KMP-automat (Knuth-automat) Boyer-Moore Rabin-Karp Sökning på webben Automater En portkodsautomat med nio knappar kan se ut så här:
Läs merObjektorienterad Programmering (TDDC77)
Objektorienterad Programmering (TDDC77) Föreläsning VI: eclipse, felsökning, felhantering Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 Outline Felhantering Eclipse Felsökning Command line argumenter
Läs mer732G 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 merFöreläsningsanteckningar, Introduktion till datavetenskap HT S4 Datastrukturer. Tobias Wrigstad
1 Datatyper Tobias Wrigstad Det finns flera olika typer av (slags) data Olika datatyper har olika egenskaper. T.ex. är ett personnummer inte ett tal. (Den sista siffran skall stämma enligt den s.k. Luhnalgoritmen
Läs merDagens program. Programmeringsteknik och Matlab. Viktiga datum. Ett första exempel. Programmall, vad behöver vi i ett javaprogram?
Programmeringsteknik och Matlab Övning 2 Dagens program Övningsgrupp 2 (Sal Q22/E32) Johannes Hjorth hjorth@nada.kth.se Rum 4538 på plan 5 i D-huset 08-790 69 02 Kurshemsida: http://www.nada.kth.se/kurser/kth/2d1312
Läs merCommand line argumenter. Objektorienterad Programmering (TDDC77) Vad blir resultatet? Nu då? Ahmed Rezine. Hösttermin 2016
Command line argumenter Objektorienterad Programmering (TDDC77) Föreläsning VI: eclipse, felsökning, felhantering Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 /* Cla. java * Programmet illustrerar
Läs merTentamen 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 merFöreläsning 2 5/6/08. Reguljära uttryck 1. Reguljära uttryck. Konkatenering och Kleene star. Några operationer på språk
Reguljära uttryck Ändliga automater och reguljära uttryck Språk som är och inte är reguljära Konkatenering och Kleene star Två strängar u och v (på alfabetet )kan konkateneras till strängen uv Givet två
Läs merkl Tentaupplägg
Tentaupplägg TIPS 1: Läs igenom ALLA uppgifterna. Välj den du känner är lättast först. Det kan gärna ta 10-20 minuter. Försök skriva saker som kan vara problem i uppgifterna. Är det något du absolut kommer
Läs merLaboration: Whitebox- och blackboxtesting
Tilda11 höstterminen 2011 Laboration: Whitebox- och blackboxtesting Mål med laborationen Du ska lära dig begreppen white-box testing och black-box testing Du ska öva dig på att konstruera testfall Du ska
Läs merTentamen i. Programmering i språket C
1 of 6 Örebro universitet Akademin för naturvetenskap och teknik Thomas Padron-McCarthy (thomas.padron-mccarthy@oru.se) Tentamen i Programmering i språket C för D1 m fl, även distanskursen lördag 25 februari
Läs merTentamen DE12, IMIT12, SYST12, ITEK11 (även öppen för övriga)
Grundläggande programmering med C# Provmoment: Ladokkod: Tentamen ges för: 7,5 högskolepoäng TEN1 NGC011 Tentamen DE12, IMIT12, SYST12, ITEK11 (även öppen för övriga) (Ifylles av student) (Ifylles av student)
Läs merTentamen Programmeringsteknik II och NV2 (alla varianter) 2008-12-10. Skriv bara på framsidan av varje papper.
Tentamen Programmeringsteknik II och NV2 (alla varianter) 2008-12-10 Skrivtid: 0800-1300 Inga hjälpmedel. Tänk på följande Maximal poäng är 40. För betygen 3 krävs 18 poäng. För betygen 4, 5 kommer något
Läs merFöreläsning 10. Besiktningsprotokollet
Föreläsning 10 Besiktningsprotokollet 1 Besiktningsprotokollet 2 Användarvänlighet Informativa utskrifter Programmet ska tala om för användaren vad programmet gör i varje steg och vilken inmatning som
Läs mer