FACIT TILL OMTENTAMEN I PROGRAMSPRÅK DVG C01

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

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

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

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 C kl. 08:15-13:15

FÖRBERED UNDERLAG FÖR BEDÖMNING SÅ HÄR

Tentamen i. TDDA 69 Data och programstrukturer

Schenker Privpak AB Telefon VAT Nr. SE Schenker ABs ansvarsbestämmelser, identiska med Box 905 Faxnr Säte: Borås

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

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

Styrteknik: Binära tal, talsystem och koder D3:1

Webbregistrering pa kurs och termin

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

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

1. Compute the following matrix: (2 p) 2. Compute the determinant of the following matrix: (2 p)

1. Varje bevissteg ska motiveras formellt (informella bevis ger 0 poang)

State Examinations Commission

LUNDS TEKNISKA HÖGSKOLA Institutionen för Elektro- och Informationsteknik

Beijer Electronics AB 2000, MA00336A,

Sri Lanka Association for Artificial Intelligence

Webbreg öppen: 26/ /

VHDL Basics. Component model Code model Entity Architecture Identifiers and objects Operations for relations. Bengt Oelmann -- copyright

Support Manual HoistLocatel Electronic Locks

Grafisk teknik IMCDP IMCDP IMCDP. IMCDP(filter) Sasan Gooran (HT 2006) Assumptions:

Fortsatt Luftvärdighet

x 2 2(x + 2), f(x) = by utilizing the guidance given by asymptotes and stationary points. γ : 8xy x 2 y 3 = 12 x + 3

Kursplan. EN1088 Engelsk språkdidaktik. 7,5 högskolepoäng, Grundnivå 1. English Language Learning and Teaching

Discovering!!!!! Swedish ÅÄÖ. EPISODE 6 Norrlänningar and numbers Misi.se

PORTSECURITY IN SÖLVESBORG

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

Tentamen Grundläggande programmering

Styrteknik : Funktioner och funktionsblock

Installation av F13 Bråvalla

denna del en poäng. 1. (Dugga 1.1) och v = (a) Beräkna u (2u 2u v) om u = . (1p) och som är parallell

Swedish adaptation of ISO TC 211 Quality principles. Erik Stenborg

6 th Grade English October 6-10, 2014

Högskolan i Skövde (SK, JS) Svensk version Tentamen i matematik

2.1 Installation of driver using Internet Installation of driver from disk... 3

8 < x 1 + x 2 x 3 = 1, x 1 +2x 2 + x 4 = 0, x 1 +2x 3 + x 4 = 2. x 1 2x 12 1A är inverterbar, och bestäm i så fall dess invers.

Isometries of the plane

Viktig information för transmittrar med option /A1 Gold-Plated Diaphragm

Grafisk teknik IMCDP. Sasan Gooran (HT 2006) Assumptions:

Adding active and blended learning to an introductory mechanics course

Preschool Kindergarten

Tentamen i Matematik 2: M0030M.

Michael Q. Jones & Matt B. Pedersen University of Nevada Las Vegas

Calculate check digits according to the modulus-11 method

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

Vässa kraven och förbättra samarbetet med hjälp av Behaviour Driven Development Anna Fallqvist Eriksson

Materialplanering och styrning på grundnivå. 7,5 högskolepoäng

Schenker Privpak AB Telefon VAT Nr. SE Schenker ABs ansvarsbestämmelser, identiska med Box 905 Faxnr Säte: Borås

Inlämningsuppgift MiniPlotter

Grafisk teknik. Sasan Gooran (HT 2006)

Introduktion till Entity Framework och LINQ. Källa och läs mer

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

Datavetenskapligt program, N1COS

This exam consists of four problems. The maximum sum of points is 20. The marks 3, 4 and 5 require a minimum

Rastercell. Digital Rastrering. AM & FM Raster. Rastercell. AM & FM Raster. Sasan Gooran (VT 2007) Rastrering. Rastercell. Konventionellt, AM

GU / Chalmers Campus Lindholmen Tentamen Programutveckling LEU 482 / TIG167

TDDC74 Programmering: Abstraktion och modellering Dugga 2, , kl 14-16

Övning 1 - Abstrakta datatyper

Isolda Purchase - EDI

2(x + 1) x f(x) = 3. Find the area of the surface generated by rotating the curve. y = x 3, 0 x 1,

E: 9p D: 10p C: 14p B: 18p A: 22p

Schenker Privpak AB Telefon VAT Nr. SE Schenker ABs ansvarsbestämmelser, identiska med Box 905 Faxnr Säte: Borås


TDDC30. Kursledning Kursledare: Jonas Lindgren. Labassistent: Jonas Lindgren Labassistent: Niklas Holma Labassistent: Erik Nilsson

Theory 1. Summer Term 2010

Småprat Small talk (stressed vowels are underlined)

Data- och programstrukturer

Solutions to exam in SF1811 Optimization, June 3, 2014

Swell code book (error taxonomy + examples)

Introduction to the Semantic Web. Eva Blomqvist

Repetition C-programmering

Immigration Studying. Studying - University. Stating that you want to enroll. Stating that you want to apply for a course.

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

Immigration Studera. Studera - Universitet. Ange att du vill anmäla dig. Ange att du vill anmäla dig till en kurs. Kurs.

Immigration Studera. Studera - Universitet. Ange att du vill anmäla dig. Ange att du vill anmäla dig till en kurs. Kurs. Typ av kurs.

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)

Förändrade förväntningar

TDDC74 Programmering: Abstraktion och modellering Tenta, kl 14 18, 11 juni 2014

12.6 Heat equation, Wave equation

Make a speech. How to make the perfect speech. söndag 6 oktober 13

Karlstads Universitet, Datavetenskap 1

EXTERNAL ASSESSMENT SAMPLE TASKS SWEDISH BREAKTHROUGH LSPSWEB/0Y09

TDDC74 Lab 04 Muterbara strukturer, omgivningar

Övning 5 ETS052 Datorkommuniktion Routing och Networking

Chapter 2: Random Variables

Stiftelsen Allmänna Barnhuset KARLSTADS UNIVERSITET

Libers språklåda i engelska Grab n go lessons

Second handbook of research on mathematics teaching and learning (NCTM)

Hjälpmedel för kompilatorkonstruktion, DVB004

Dokumentnamn Order and safety regulations for Hässleholms Kretsloppscenter. Godkänd/ansvarig Gunilla Holmberg. Kretsloppscenter

F ξ (x) = f(y, x)dydx = 1. We say that a random variable ξ has a distribution F (x), if. F (x) =

TDDC74 Programmering: Abstraktion och modellering Dugga 2, , kl 17-19

Manhour analys EASA STI #17214

Transkript:

FACIT TILL OMTENTAMEN I PROGRAMSPRÅK DVG C01 120112 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) Ange skillnaden mellan en lexem (lexeme), en delsträng (substring) och ett mönster (pattern) (c) Ange en definition av en icke-terminal symbol (non-terminal symbol) (d) Ange en definition av en terminal symbol (terminal symbol) (e) Ange exempel av begreppen lokal och icke-lokal inom programspråk Totalt (a) (i) aktuell parameter (actual parameter) an expression (may be an id) (ii) formell parameter (formal parameter) an id used in the body of a function (b) en lexem en delsträng av inputsträngen (källkoden) som matchar ett mönster en delsträng en sträng formad genom att ta bort en prefix/suffix från en annan sträng ett möster ett reguljäruttryck som beskriver en sträng (c) icke-terminal en symbol i grammatiken G som kan omdefieneras som en sententiell form (d) terminal en symbol i grammatiken G som representerar en token i parsern (e) lokal / icke-lokal dataobjekt: lagras antingen i en lokal omgivning eller en icke-local omgivning det sistnämnda hanteras via pekare i run-timestacken (static/dynamic) DFR/ND 120112 PS omtentamen FACIT Sidan 1 av 8

2. BNF-definitioner Titta noggrant på grammatiken i bilaga A. Utöka denna BNF-definition för att hantera funktioner. Ange alla antagande. [function def list] ::= e [function def] [function def list] [function def] [function def] ::= [function header] [var part] [stat part] [function header] ::= function id ( [parameter list] ) : [ type] ; [parameter list] [param dec list] [param dec] ::= e [param dec list] ::= [param dec] [param dec list], [param dec] ::= { var } [id list] : [type] Now add the [function def list] into the grammar [program] ::= [prog header] [var part] [function def list] [stat part] NB it is also an idea to update [operand] [operand] ::= id number [function call] [function call] ::= id ( actual param list ) [actual param list] ::= e [expression list] [expression list] ::= [expr] [expression list], [expr] By analogy with a program The parameter list may be empty (design decision) This is also similar to a [var dec list] except that it is separated by a comma and not terminated by a semicolon The var part is optional here I use EBNF [param dec] ::= var [id list] : [type] [id list] : [type] Would be the alternative DONE! DFR/ND 120112 PS omtentamen FACIT Sidan 2 av 8

3. Programmering Diskutera ingående förhållandet mellan programmering och modellering. Hur bra är dagens programmeringsspråk att representera verklighet? Svar ingående. Assumption: a program is an implementation of a model which is an abstraction from some system taken from the real world. Firstly define modelling. The identification of entities and their attributes from a real-world system, sufficient to create and manipulate a workable description of part of the real-world system. A MODEL Then define programming in the context of modelling. A program is the translation of a the model into a language capable of describing and manipulating the part of the real-world system in a machine executable form How good are current PLs at representing reality? not very good (i.e. quite limited) Aspects to consider are:- The level of abstraction provided by the programming language (PL) o E.g. compare C with Prolog and Lisp The objects provided by the PL to represent reality o Often these consist of numbers, strings (primitives) and collections of primitives o Code objects to manipulate the data objects (or symbolic objects) Give examples o A student may be represented by a tuple (name, address, p-number, course) o Operations are get/set on these attributes (i.e. the student level) o Operations on collections of student objects (e.g. a database) Total number of students Number of students in course X Number of students from town XXX DFR/ND 120112 PS omtentamen FACIT Sidan 3 av 8

4. Parameterhantering Ge detaljerade och konkreta programexempel för att illustrera hur värdeanrop ( call-byvalue ), referensanrop ( call-by-reference ) samt värderetur ( call-by-valuereturn ) fungerar. I varje fall, förklara vilka mekanismer man använder sig av när man implementerar parameteröverförning ( parameter passing ) och rita bilder av stackrammar ( stack frames ) för att visa hur detta fungerar i ett exekveringssystem. See the revision notes (or previous facits) for examples of these marks for good illustrations and explanations. Points to note Discuss both f(ap) and f(2+2) i.e. an actual parameter which is an ID and one which is an expression What happened in call-by-reference with expressions? DFR/ND 120112 PS omtentamen FACIT Sidan 4 av 8

5. Syntax och semantik Ge konkreta exempel i Pascalkod (enligt den BNF-definition i bilaga A) som illustrerar skillnaderna mellan syntax och semantik när man ska skriva en parser till detta språk. Ge en definition av dessa två begrepp. Svar ingående. SYNTAX has to do with the grammatical structure of each program as defined by the grammar usually defined using BNF-notation (for programming languages). A subset of all possible programs is defined to be syntactically correct i.e. this is the role of the parser. Parser: program text Boolean. Examples of syntax errors are missing keywords often indicated with the message X expected, Y found according to how the parser has been implemented. SEMANTICS has to do with the meaning of the program and is defined using a separate set of rules from the syntactic rules, usually written in some natural language. Examples of this are Checking for double definitions in ID-lists (using a symbol table (ST)) Keeping track of which identifiers have been used (declared) by the programmer using a ST Storing and returning attributes of the id e.g. type, address, storage size (a function of the type), the id s role in the program (program name, data object name, function name) The results of type operations on arguments of different/the same types and what the results is e.g. +: int x int int and +: int x real real (if allowed) where the int argument would need to be implicitly coerced to a real data object. These checks may be performed using an operator table. Checking the left and right sides of an assignment operation to see whether they are type compatible (under whichever rules apply for the particular language) 6. OO Vad är ett Objekt-Orienterat språk? Svar ingående. Open Question Marks for good answers. Explain inheritance, reuse, polymorphism. DFR/ND 120112 PS omtentamen FACIT Sidan 5 av 8

7. PROLOG I bilaga A finner du de regler som definierar hur Pascal-program får skrivas. I den PROLOGparser som du förhoppningsvis skrivit utgörs del tre av syntaxkontroll. Indata är en lista av lexem som kommer från lexern. a) Reglerna kan i stort sett göras om direkt till Pascal-regler men vissa regler måste göras om för att parsern skall fungera. Vilka regler måste göras om och hur ska de se ut? Förklara utförligt. (2 p) b) Reglerna för terminala respektive icke-terminala symboler får olika utseende när de skrivs som PROLOG-regler. Visa exempel, skrivna i PROLOG, på en regel för terminal symbol och en regel för rekursiv icke-terminal och en regel för icke-rekursiv icketerminal symbol. (3 p) Totalt DFR/ND 120112 PS omtentamen FACIT Sidan 6 av 8

8. Lisp Läs noggrant Lispkoden nedan. 1. Förklara hur procedurerna p och q fungerar. Vad är utskriften efter varje setf? Svar ingående och ange alla antagande. 4p 2. Om man skriver om (if (eql y (first (first x))) till (if (eql y (second (first x))) vad är skillnaden i utskriften? (defun p (x y z) (list (list 'x x) (list 'y y) (list 'z z) ) ) 1p (defun q (x y z) (if (eql y (first (first x))) (cons (list y z) (rest x)) (cons (first x) (q (rest x) y z)) ) ) (setf x (p 'x 'y 'z)) (setf x (q x 'x 'y)) (setf x (q x 'y 'z)) (setf x (q x 'z 'x)) (exit) Answers: Totalt ((X X) (Y Y) (Z Z)) ((X Y) (Y Y) (Z Z)) ((X Y) (Y Z) (Z Z)) ((X Y) (Y Z) (Z X)) ((X X) (Y Y) (Z Z)) ((X Y) (Y Y) (Z Z)) ((Y Z) (Y Y) (Z Z)) ((Z X) (Y Y) (Z Z)) DFR/ND 120112 PS omtentamen FACIT Sidan 7 av 8

Bilaga A - Grammatik: Pascallikt 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/ND 120112 PS omtentamen FACIT Sidan 8 av 8