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

Relevanta dokument
OMTENTAMEN I PROGRAMSPRÅK -- DVG C kl. 08:15-13: 15

DVG C01 TENTAMEN I PROGRAMSPRÅK PROGRAMMING LANGUAGES EXAMINATION :15-13: 15

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

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

FACIT TILL OMTENTAMEN I PROGRAMSPRÅK DVG C01

FACIT TILL OMTENTAMEN I PROGRAMSPRÅK DVG C kl. 08:15-13:15

FACIT TILL OMTENTAMEN I PROGRAMSPRÅK -- DVG C kl. 08:15-13: 15

FACIT TILL OMTENTAMEN I PROGRAMSPRÅK -- DVG C kl. 08:15-13: 15

FACIT TILL/TO DVG C01 OMTENTAMEN I PROGRAMSPRÅK PROGRAMMING LANGUAGES RESIT EXAMINATION :15-13: 15

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

Tentamen i. TDDC67 Funktionell programmering och Lisp

Tentamen i. TDDA 69 Data och programstrukturer

OMTENTAMEN I DATASTRUKTURER OCH ALGORITMER DVG B kl. 14:15 19:15

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

Universitetet i Linköping Institutionen för datavetenskap Anders Haraldsson

FACIT TILL OMTENTAMEN I PROGRAMSPRÅK DVG C kl. 08:15-13:15

DAT043 Objektorienterad Programmering

TENTAMEN OOP

TDDC77 Objektorienterad Programmering

ORDINARIE TENTAMEN I DATASTRUKTURER OCH ALGORITMER DVG B kl. 08:15 13:15

Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Grammatik. BNF-grammatik

OMTENTAMEN I DATASTRUKTURER OCH ALGORITMER DVG B kl. 08:15-13:15

Tentamen Programmeringsteknik II Skrivtid: Hjälpmedel: Java-bok (vilken som helst) Skriv läsligt! Använd inte rödpenna!

OMTENTAMEN I DATASTRUKTURER OCH ALGORITMER DVG B kl. 08:15 13:15

Dagens föreläsning. Modeller för programmeringsspråk. - Olika modeller programspråk Interpretator - kompilator. - Syntax - semantik.

Tentamen Programmeringsteknik II och NV2 (alla varianter) Skriv bara på framsidan av varje papper.

Universitetet i Linköping Institutionen för datavetenskap Anders Haraldsson

OOP Omtenta

Imperativ programmering. Imperativ programmering konstruktioner i Lisp. Datastrukturer (kap ) arraystruktur poststruktur

Obligatorisk uppgift: Numerisk kalkylator

TENTAMEN I DATASTRUKTURER OCH ALGORITMER DVG B kl. 14:00-19:00

TENTAMEN PROGRAMMERING I JAVA, 5P SOMMARUNIVERSITETET

Dagens föreläsning Programmering i Lisp Fö 5

Universitetet i Linköping Institutionen för datavetenskap Anders Haraldsson 2

Tentamen i Grundläggande programmering STS, åk 1 lördag

Lambdas. (och fler design patterns) Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2017

ORDINARIE TENTAMEN I DATASTRUKTURER OCH ALGORITMER DVG B kl. 08:15 13:15

Tentamen i Algoritmer & Datastrukturer i Java

Klassdeklaration. Metoddeklaration. Parameteröverföring

OMTENTAMEN I DATASTRUKTURER OCH ALGORITMER DVG B kl. 09:00 14:00

OOP Tentamen

Uppgift 4A - Definition av enkla funktioner

Inlämningsuppgift MiniPlotter

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

Tentamen. DD2385 Programutvecklingsteknik vt 2014 Måndagen den 2 juni 2014 kl Hjälpmedel: penna, suddgummi, linjal

Högskolan Dalarna sid 1 av 7 DI-institutionen Hans-Edy Mårtensson Sten Sundin

Hjälpmedel för kompilatorkonstruktion, DVB004

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

Parsing med Recursive Descent, Avbildningsklasser. Syntaxdiagram. Syntaxdiagram och kodning expression. Betrakta följande uttryck

Uppgift 6A - Frekvenstabell

Att skriva till och läsa från terminalfönstret

Tentamen i Programmeringsteknik I

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

12. Relationer och funktioner

Tentamen i Grundläggande programmering STS, åk 1 fredag

Tentamen i Grundläggande Programvaruutveckling, TDA548

Tentamen. Datalogi I, grundkurs med Java 10p, 2D4112, Lördagen den 30 november 2002 kl , salar E33, E34

Objektorienterad Programmering (TDDC77)

OOP Tenta

Omtentamen för TDA540 Objektorienterad Programmering. Institutionen för Datavetenskap CTH HT-16, TDA540. Dag: , Tid:

Command line argumenter. Objektorienterad Programmering (TDDC77) Vad blir resultatet? Nu då? Ahmed Rezine. Hösttermin 2016

Föreläsning 8: Exempel och problemlösning

Tentamen Programmering fortsättningskurs DIT950

OOP Tentamen

a. Vilka av följande påståenden är riktiga? Observera att felaktigt valda påståenden ger poängavdrag. (4p)

Tentamen FYTA11 Javaprogrammering

Tänk på följande: Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Tentamen i Programmering

Det är principer och idéer som är viktiga. Skriv så att du övertygar rättaren att du har förstått dessa även om detaljer kan vara felaktiga.

Objektorienterad Programkonstruktion, DD1346. Tentamen , kl

Recitation 4. 2-D arrays. Exceptions

OOP Omtenta

Variabler som hör till enskilda objekt. Deklareras på översta nivån i klassen och i regel som private.

Tentamen. DD2385 Programutvecklingsteknik vt 2013 Onsdagen den 22 maj 2013 kl Hjälpmedel: penna, suddgummi, linjal

LÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Interface. Interface. Tobias Wrigstad (baserat på bilder från Tom Smedsaas) 3 december 2010

OBJEKTORIENTERAD PROGRAMVARUUTVECKLING. Övningstentamen 1

Lösningsförslag till exempeltenta 2

Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Det är principer och idéer som är viktiga. Skriv så att du övertygar rättaren om att du har förstått dessa även om detaljer kan vara felaktiga.

ITK:P1 Föreläsning 1. Programmering. Programmeringsspråket Java. Stark typning Explicit typning Strukturerat Hög säkerhet

Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Tentamen OOP

Föreläsnings 9 - Exceptions, I/O

Universitetet i Linköping Institutionen för datavetenskap Anders Haraldsson

Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

1 Uppgift 1. a) Skapar ett Company-objekt med hjälp av den överlagrade konstruktorn. Du kan själv välja värden på instansvariablerna.

Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Tentamen Programmeringsteknik II Skrivtid: Hjälpmedel: Java-bok (vilken som helst) Skriv läsligt! Använd inte rödpenna!

Föreläsning 3-4 Innehåll

Omtentamen för TDA540 Objektorienterad Programmering. Institutionen för Datavetenskap CTH HT-17, TDA540. Dag: , Tid:

OOP Omtenta

Objektorienterad programmering i Java Undantag Sven-Olof Nyström Uppsala Universitet Skansholm: Kapitel 11

Objektorienterad programmering i Java

Föreläsning 1 Datastrukturer (DAT037)

Transkript:

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 40p, Godkänd 30p (varav minimum 20p från tentan, 10p från labbarna) Tenta: Max 40p, Med beröm godkänd 34p, Icke utan beröm godkänd 27p, Godkänd 20p Labbarna: Max 20p, Med beröm godkänd 18p, Icke utan beröm godkänd 14p, Godkänd 10p SKRIV TYDLIGT LÄS UPPGIFTERNA NOGGRANT 1. Ange kortfattade svar på följande uppgifter: (a) Ge en definition av (i) aktuell parameter samt (ii) formell parameter (b) Vad är skillnaden mellan den lokala omgivningen (engelska: local environment) och den icke-lokala omgivningen (engelska: non-local environment)? (c) Vad betyder G = (S, P, NT, T)? (d) Vad är förhållandet mellan ett lexem och en token? (e) Vad är skillnaden mellan en derivation (engelska: derivation) och en parsning (engelska: parse)? (f) I en RDPP (engelska: Recursive Descent Predictive Parser) vad innebär Predictive? Ge ett exempel för att förklara denna aspekt. (g) Vad är ett reguljäruttryck (engelska: regular expression)? Ge ett exempel. (h) Vad är skillnaden mellan syntax och semantiken? (i) Ge ett exempel av en typkonstruktor (engelska: type constructor). (j) Vad betyder uttrycket referential transparency? Totalt 2. Symboltabell Vad är förhållandet mellan symboltabellen och den exekvering-tids omgivning (engelska: run-time environment)? Ge gärna exempel i Ditt svar. Vilka eventuella organisationer finns för en symboltabell? DFR/AA/ND 140605 PS tentamen Sidan 1 av 6

3. Felhantering och återhämting Titta på programmet nedan och resultatet från en parsning. program testp (input, output); var A, B, C: integer; A := B + C * 2 end. $ SEMANTIC: ID already declared: A SYNTAX: Symbol expected : found := SYNTAX: Type name expected found := SYNTAX: Symbol expected ; found := SYNTAX: Symbol expected begin found := SYNTAX: ID expected found := SEMANTIC: Assign types: error := integer Med hjälp av grammatiken i Bilaga A förklara vad har hänt under parsningen. Ge en trace (spår) av parsningsprocessen för just detta program. 3p Föreslå eventuella lösningar för att kunna få en bättre återhämtning än den som togs ovan. 4. Typer Diskutera ingående de olika aspekterna av typer i programspråk. 2p Totalt 5. Parametrar Diskutera ingående hur parametrar hanteras vid exekverings-tid (engelska: run-time environment). DFR/AA/ND 140605 PS tentamen Sidan 2 av 6

6. Lisp Vad är resultatet på varje print operation i följande kod i Lisp? (setf q (last (cons '(A B) (append (list '(A B) '(A B)) '(A B)) ) ) ) (setf q (remove-if-not #'listp (cons '(A B) (append (list '(A B) '(A B)) '(A B)) ))) (setf x 'A) (let* ((x 'B) (y x)) (setf q (list x y)) ) (setf q (mapcar #'(lambda (n) (* (+ n 1) 2)) '(5 6 7 8))) 1p 1p (defun p (a b c) (list (list 'a a) (list 'b b) (list 'c c) ) ) (defun q (r s) (if (eql 'b (first (first r))) (cons (list 's (list (second (first r)) s)) (rest r)) (cons (first r) (q (rest r) s)) ) ) (setf b (p '(a b) '(c d) '(e f))) (print b) (setf q (q b 'b)) Förklara stegvis hur proceduren q ovan fungerar med de givna parametrarna. 1p 2p Totalt DFR/AA/ND 140605 PS tentamen Sidan 3 av 6

7. Objektorienterat A. Vad betyder det att en klass är abstrakt? 0, B. Varför deklarerar man vissa klasser som abstrakta? 1,0p C. Vad är skillnaden mellan metoder och funktioner? 0, D. Vad är virtuella metoder? 0, E. Givet följande program skrivet i Java. Vad skrivs ut när programmet körs och varför? Utöver att ange rätt utskrift från programmet så skall du även redovisa för de mekanismer som gör att utskriften blir som den blir. 2, class A { void print() { System.out.println("A"); class B extends A { void print() { System.out.println("B"); public class Program { static void print(a a) { a.print(); public static void main(string[] args) { A a = new A(); B b = new B(); A ab = new B(); print(a); print(b); print(ab); Totalt DFR/AA/ND 140605 PS tentamen Sidan 4 av 6

8. Prolog 1. Skriv ett predikat, vand(+inlista, -Utlista), som tar en lista, Inlista, som parameter och returnerar en lista, Utlista, med elementen i omvänd ordning. Exempel på körning:?- vand([1, 2, 3], X). X = [3, 2, 1] Alla predikat som används måste definieras. 3p 2. Beskriv utförligt med egna ord och med kodexempel hur lexerdelen i laborationen omvandlar listan av lexem till en lista av tokens. 2p Totalt DFR/AA/ND 140605 PS tentamen Sidan 5 av 6

Bilaga A - Grammatik: Pascallik språk 1. [prog] ::= [prog header] [var part] [stat part] 2. [prog header] ::= program id ( input, output ) ; 3. [var part] ::= var [var dec list] 4. [stat part] ::= begin [stat list] end. 5. [var dec list] ::= [var dec] [var dec list] [var dec] 6. [var dec] ::= [id list] : [type] ; 7. [stat list] ::= [stat] [stat list] ; [stat] 8. [stat] ::= [assign stat] 9. [assign stat] ::= id := [expr] 10. [expr] ::= [term] [R1] 11. [R1] ::= e + [term] [R1] 12. [term] ::= [factor] [R2] 13. [R2] ::= e * [factor] [R2] 14. [factor] ::= ( [expr] ) [operand] 15. [type] ::= integer 16. [id list] ::= id [id list], id 17. [operand] ::= id number DFR/AA/ND 140605 PS tentamen Sidan 6 av 6