This preview has intentionally blurred sections. Sign up to view the full version.
View Full DocumentThis preview has intentionally blurred sections. Sign up to view the full version.
View Full Document
Unformatted text preview: CMSC330 Fall 2009 Final Exam Name Do not start this exam until you are told to do so! Instructions • You have 120 minutes for to take this midterm. • This exam has a total of 120 points. An average of 1 minute per point. • This is a closed book exam. No notes or other aids are allowed. • If you have a question, please raise your hand and wait for the instructor. • Answer essay questions concisely using 12 sentences. Longer answers are not necessary and a penalty may be applied. • In order to be eligible for partial credit, show all of your work and clearly indicate your answers. • Write neatly. Credit cannot be given for illegible answers. Problem Score Max Score 1 Programming languages 9 2 Ruby 6 3 RE, CFL, automata 12 4 OCaml types & type inference 6 5 Lambda calculus 6 6 Scoping 6 7 Parameter passing 8 8 Lazy evaluation 6 9 Garbage collection 5 10 Multithreading 14 11 Ruby Multithreading 20 12 OCaml programming / GC 22 Total 120 1. (9 pts) Programming languages a. (3 pts) Briefly describe the difference between syntax and semantics of programming languages. b. (3 pts) Explain briefly what type inference is. c. (3 pts) List one of two possible scoping rules we discussed in class, and briefly describe a disadvantage for this approach. 2. (6 pts) Ruby What is the output (if any) of the following Ruby programs? Write FAIL if code does not execute. a. “CMSC 330” =~ /([azAZ]+)/ # Output = puts $1 b. a = { 1 => 2 } # Output = a.keys.each{ x puts a[x] } 3. (12 pts) Regular expressions, contextfree grammars, and finite automata a. (6 pts) Convert the following NFA to a DFA using the subset construction algorithm. Be sure to label each state in the DFA with the corresponding state(s) in the NFA. 3 a 2 1 b 4 a & & b 3 a 2 1 b 4 a & & b b. (3 pts) Write a regular expression for the NFA above c. (3 pts) Write a contextfree grammar for all binary numbers (strings consisting of 0s and 1s) of the form 0 n 1 m , where n = m+2 and m & 0. E,g,: 00, 0001, 00000111 4. (6 pts) OCaml types and type inference a. (3 pts) Give the type of f in the following OCaml expression let f x y = x + y in f 3 4 Type = b. (3 pts) Write an OCaml expression with the following type ‘a > 'a Code = 5. (6 pts) Lambda calculus (3 pts each) Evaluate the following ¡expressions as much as possible a. ( ¡ x.x) ( ¡ y.y) ( ¡ z.z) b. ( ¡ x. ¡ y.x) y 6. (6 pts) Scoping Consider the following OCaml code....
View
Full Document
 Fall '08
 staff
 pts, returns

Click to edit the document details