next up previous
Next: Antwoorden tentamenvoorbeeld I Up: No Title Previous: The Environment Model of

Tentamenvoorbeeld I

Vraag 1

Een simpel (niet programmeerbaar en geen geheugenplaatsen) rekenmachientje kent ook zijn eigen ``taal''. Welke van de volgende uitspraken is waar?

a.
Deze taal kent geen ``primitive expressions''.
b.
Deze taal kent geen ``means of combination''.
c.
Deze taal kent geen ``means of abstraction''.
d.
Geen van bovenstaande uitspraken is waar.

Vraag 2

In de regelgeving van het Ministerie van Onderwijs wordt vaak de term ``De Student'' gebezigd als de verzameling van alle Nederlandse studenten wordt bedoeld. Welk taalmechanisme wordt hierbij toegepast (kies het beste antwoord)?

a.
Primitive expression.
b.
Means of combinations
c.
Means of abstraction.
d.
Geen van bovenstaande mechanismes worden toegepast.

Vraag 3

Bij programmeren wordt met twee soorten objecten gewerkt: data objecten en procedure objecten. Wat zorgt ervoor dat een object door Scheme als procedure object wordt behandeld?

a.
Als het object met ``define'' is aangemaakt.
b.
Als het object een ``lambda'' constructie bevat.
c.
Als het object primitieve operatoren bevat.
d.
Als het object de meest linker expressie in een ``combination'' is.

Vraag 4

Gegeven de volgende combinatie (combination).

( 1+   ( lambda  (x) x )   square )
  --     ------   -  -     ------
  a        b      c  d       e
Alle objecten (data en procedure) zijn voorzien van een letter. Welke object(en) wordt/worden door Scheme tijdens de evaluatie van deze combinatie als procedure object behandeld?
a.
a.
b.
a en b.
c.
a, b en e.
d.
a, b, c, d, en e.

Vraag 5

Gegeven de volgende expressie uit een Scheme programma.

( +   1  1 )
Welke van de volgende uitspraken is het meest nauwkeurig?
a.
De subexpressie ``+'' is altijd een primitieve operator en de subexpressie ``1'' is altijd een primitieve expressie.
b.
De subexpressie ``+'' is soms een primitieve operator en de subexpressie ``1'' is altijd een primitieve expressie.
c.
De subexpressie ``+'' is altijd een primitieve operator en de subexpressie ``1'' is soms een primitieve expressie.
d.
De subexpressie ``+'' is soms een primitieve operator en de subexpressie ``1'' is soms een primitieve expressie.

Vraag 6

Scheme maakt gebruik van prefix notaties. Wat zijn de, in het boek genoemde, voordelen hiervan ten opzichte van de gewoonlijk wiskundige gebruiken (infix notatie)?

a.
Leesbaarheid; onbeperkt nesting.
b.
Onbeperkt aantal operandi; onbeperkte nesting.
c.
Leesbaarheid; onbeperkt aantal operandi.
d.
Leesbaarheid; nauwkeurigheid.

Vraag 7

Gegeven de volgende regel uit een Scheme programma.

( define   size  2 )
Welke van de volgende uitspraken is het meest nauwkeurig?
a.
De naam ``size'' wordt gelijk gesteld aan het object ``2''.
b.
De naam ``size'' identificeert een variabele wiens waarde het object ``2'' is.
c.
Het object ``2'' wordt vervangen door de variabele ``size''.
d.
De variabele ``size'' krijgt de waarde ``2''.

Vraag 8

Welke van de volgende uitspraken over ``else'' is waar?

a.
``else'' is een ``special form''.
b.
``else'' evalueert naar #T.
c.
``else'' evalueert naar #F.
d.
``else'' is een primitieve procedure.

Vraag 9

Gegeven het volgende stukje Scheme code A

A:  ( if   comb1  comb2  comb3 )
en het stukje Scheme code B
B:  ( let  (( c1  comb1 )
            ( c2  comb2 )
            ( c3  comb3 ))
           ( cond  ( c1  c2 )
                   ( else  c3 )))
Welke van de volgende uitspraken is waar?
a.
A en B zijn even efficiënt, en resulteren in gelijke resultaten.
b.
B is minder efficiënt als A, maar altijd gelijke resultaten.
c.
A en B zijn even efficiënt, soms niet gelijke resultaten.
d.
B is minder efficiënt als A, soms niet gelijke resultaten.

Vraag 10

Gegeven de volgende Scheme procedure.

( define   proc
    ( lambda  (x)
        ( cond  (( =  x 0 ) 0 )
                (( <  x 0 ) ( proc ( -  ( +  x 1 ))))
                (( >  x 0 ) ( proc ( -  ( -  x 1 )))))))
Welke van de volgende uitspraken is waar?
a.
De procedure ``proc'' is iteratief.
b.
Als ( proc 10 ) wordt uitgevoerd is dat proces iteratief.
c.
Als ( proc 10 ) wordt uitgevoerd is dat proces lineair recursief.
d.
Als ( proc 10 ) wordt uitgevoerd is dat proces tree recursief.

Vraag 11

Gegeven de volgende Scheme procedure.

( define   proc
    ( lambda  (x)
        ( cond  (( =  x 0 ) 0 )
                (( <  x 0 ) ( proc ( -  ( +  x 1 ))))
                (( >  x 0 ) ( proc ( -  ( -  x 1 )))))))
Geef aan wat het resultaat is van ( proc n ), en de bijbehorende ruimte en tijd complexiteiten (n is een geheel getal).

ruimte tijd
resultaat complexiteit complexiteit
a. 0 0(n) 0(1)
b. 0 0(1) 0(n)
c. n 0(n) 0(n)
d. n 0(1) 0(1)

Vraag 12

Wat is de meest accurate beschrijving van een hogere-order procedure (higher-order procedure)?

a.
Een procedure die een proces beschrijft met een niet-lineaire tijd complexiteit.
b.
Een procedure die een proces beschrijft met een niet-lineaire ruimte complexiteit.
c.
Een procedure die andere procedures kan manipuleren.
d.
Een procedure die een willekeurig aantal invoervariabelen accepteert.

Vraag 13

Gegeven de volgende procedure.

( define  ( a  b  c  d )
    ( if  ( =  c  0 )
          d
          ( a  b  ( -  c 1 ) ( +  d  ( b c )))
    )
)

Wat zal het resultaat zijn van de volgende combinatie?

( a  ( lambda (n) ( *  n 2 ))  5  0 )
a.
0.
b.
20.
c.
30.
d.
Geen, dit is geen legaal Scheme.

Vraag 14

In een environment waarin x is gekoppeld (bound) aan 10, wat is dan het resultaat van de volgende Scheme expressie?

( let  (( x  5 ) ( y  ( *   x  2 )))
    ( +   x  y ))
a.
15.
b.
20.
c.
25.
d.
30.

Vraag 15

Gegeven de volgende Scheme procedure.

( define  ( f  n )
    ( lambda  (x)
        ( +   x  n )))
Wat is nu een correcte manier om de som van 5 en 10 te berekenen?
a.
(( f 5 ) 10 )
b.
( f 5 10 )
c.
(( f 5 10 ))
d.
( f ( 5 10 ))

Vraag 16

In de context van het manipuleren van lists, welke procedures kunnen dan als constructor en selector worden aangeduid.

a.   
Constructor: list
Selector: atom?
b.   
Constructor: list
Selectors: cdr, car
c.   
Constructor: cons
Selector: atom?
d.   
Constructor: cons
Selectors: cdr, car

Vraag 17

Welke expressie geeft hetzelfde resultaat als

( list  1  ( list  2  3 ))
a.
( cons 1 2 3 )
b.
( cons 1 ( cons 2 3 ))
c.
( cons 1 ( cons ( cons 2 3 ) '( )))
d.
( cons 1 ( cons ( cons 2 ( cons 3 '( ))) '( )))

Vraag 18

Gegeven de volgende procedure om het n-de element uit een list te halen.

( define  ( nth  n  x )
    ( if  ( =  n  0 )
          ?????
          ( nth  ( -  n  1 ) ( cdr  x ))))
Wat moet er in plaats van de vraagtekens komen?
a.
( car x )
b.
x
c.
n
d.
( cdr x )

Vraag 19

Gegeven de volgende Scheme procedure ``proc''.

( define  ( proc  a  b )
    ( if  ( null?  a )
          b
          ( cons  ( car  a ) ( proc  ( cdr  a )  b ))))
Wat zou een betere naam voor ``proc'' zijn?
a.
length.
b.
reverse.
c.
mapcar.
d.
append.

Vraag 20

Gegeven de volgende Scheme procedure ``proc''.

( define  ( proc  a )
    ( cond  (( null?  a )  0 )
            (( atom?  a )  1 )
            ( else  ( +  ( proc  ( car  a ))
                         ( proc  ( cdr  a ))))))
Wat zal de volgende expressie als resultaat geven?
( proc  '(( 1  2 )  3  ( 4  ( 5  6 ))  7  ( 8  9 )))
a.
1.
b.
5.
c.
8.
d.
9.

Vraag 21

Wat beschrijft het best de werking van de primitieve operatie ``atom?'', bijvoorbeeld

( atom?  n )
a.
Test of n een getal is.
b.
Test of n geen ``list'' is.
c.
Test of n geen ``pair'' is.
d.
Test of n ondeelbaar is.

Vraag 22

Gegeven een omgeving waarbinnen de volgende definities bestaan.

( define  r  ( list  'cons  '+ ))
Wat is het resultaat van
(( car  r )  3  4 )
a.
( 3 4 )
b.
( 3 4 )
c.
(( 3 4 ))
d.
Syntax fout.

Vraag 23

Wat is het resultaat van de volgende expressie?

( cadr  '(( x1  x2 ) ( y1  y2 )))
a.
( x2 )
b.
( y1 y2 )
c.
y1
d.
Geen, syntactisch incorrect.

Vraag 24

Het ``principle of least commitment'' heeft met name te maken met (kies het beste antwoord):

a.
het zo efficiënt mogelijk implementeren van programma's met betrekking tot geheugengebruik.
b.
het zo efficiënt mogelijk implementeren van programma's met betrekking tot tijd complexiteit.
c.
het zo veel mogelijk afschermen van de gebruikte algoritmes.
d.
het zo veel mogelijk afschermen van de gekozen data representatie.

Vraag 25

Welke term hoort niet in het onderstaande rijtje thuis.

a.
Manifest type.
b.
Data-directed programming.
c.
Message passing.
d.
Bound variables.

Vraag 26

Het introduceren van ``assignment'' in een taal als Scheme introduceert problemen. Welke van de onderstaande problemen is echter niet het gevolg van de introductie van ``assignment''?

a.
Het bepalen of twee objecten gelijk (``same'') zijn, wordt bemoeilijkt.
b.
``Special forms'' zijn nu nodig om bepaalde expressies te kunnen maken.
c.
Het substitutie model is niet meer bruikbaar.
d.
Lijsten kunnen veranderen zonder dat er expliciet naar wordt gerefereerd.

Vraag 27

Gegeven het volgende stukje Scheme code.

( define  l1  '( 1  ( 2  3 )  4 ))
( define  l2  '( 5  6  ( 7  8 )))
( set-car!  ( cdr  ( cdr  l2 )) ( cdr  l1 ))
Wat zal na uitvoer van deze code de waarde van l2 zijn?
a.
( 5 6 ( 1 ( 2 3 ) 4 ))
b.
( 5 6 1 ( 2 3 ) 4 )
c.
( 5 6 ( 2 3 ) 4 )
d.
( 5 6 (( 2 3 ) 4 ))

Vraag 28

Welke van onderstaande termen heeft niet direkt te maken met het environment model?

a.
Manifest.
b.
Frame.
c.
Binding.
d.
Shadowing.

Vraag 29

( define  ( new-obj )
    ( define  x  0 )
    ( define  ( get? )  x )
    ( define  ( put!  val ) ( set!  x  val ))
    ( define  ( dispatch  cond )
        ( cond  (( eq?  cmd  'get? )  get? )
                (( eq?  cmd  'set! )  set! )))
      dispatch )
( define  obj  ( new-obj ))

figure363

Na evaluatie van de bovengenoemde Scheme code is de omgeving geschetst in bovenstaand figuur. Welke van de pointers a, b, c of d wijst naar de body van de ``dispatch'' procedure.

a.
a, b, c, d.
b.
b, c, d.
c.
c, d.
d.
b.

Vraag 30

( define  ( new-obj )
    ( define  x  0 )
    ( define  ( get? )  x )
    ( define  ( put!  val ) ( set!  x  val ))
    ( define  ( dispatch  cond )
        ( cond  (( eq?  cmd  'get? )  get? )
                (( eq?  cmd  'set! )  set! )))
      dispatch )
( define  obj  ( new-obj ))

figure363

Pointers I en II wijzen naar environments. Naar welke environments wijzen zij?

a.
I naar E1, II naar E1.
b.
I naar E1, II naar E2.
c.
I naar E2, II naar E1.
d.
I naar E2, II naar E2.


next up previous
Next: Antwoorden tentamenvoorbeeld I Up: No Title Previous: The Environment Model of

Henk Corporaal
Fri Jun 5 18:56:04 MET DST 1998