COMPGC16
COMPGC16/3011
Functional Programming
Revision Lecture 2014
The Exam 2014
May 22nd 2014
EXAMCHA – Chemistry Auditorium
2½ hours
Answer 3 questions from 5
Eg: 30 minutes reading + 40 minutes per question
(about 1.2 minutes writing per mark)
Timing!!! If part of a question is worth 10 marks, don’t exceed 12 minutes !!!
How to gain marks
Again – get you timing right!
For each question, write as much as you can think of in connection with the question
Don’t give one-line answers
Don’t stop just because you think the question/answer is simple
Be guided by timing (1.2 minutes per mark) but thereafter, the more you write the more marks you might gain.
Frequently Asked Questions
Will the questions be like last year?
Yes and No. Similar structure, different questions.
What kinds of question will you ask
See the past papers!!!!
Analyse the last 7-10 years – it will be similar
Growing trend – more problem solving
Growing trend – more programming
Syllabus Reminder
Programming
Lambda Calculus
Miranda
Implementation
Graph Reduction
Memory Management
Example revision topics (this is NOT a complete list)
The Lambda Calculus – syntax; a, b, h, d reduction; reduction orders (normal, applicative, parallel), normal forms (NF, WHNF, HNF); binding (“bound”, “free”)
Miranda – functions, types, type checking, accumulating parameter, parameter of recursion, forms of recursion, tuples, lists, recursive types, currying, partial functions, partial applications, pattern matching, structural induction, polymorphism, high-order functions, combinators, map, filter, foldr, foldl, algebraic types, linked lists, trees, sorted trees, functional representation of data
Some revision topics (examples continued)
Implementation – strict and lazy evaluation, combinators (fixed & variable set), graph reduction, shared pointers and cyclic pointers, tagged binary cells, redexes, roots and indirections, b reduction
Automatic memory management – memory allocation, pointer-increment, free list, first-fit, next-fit, best-fit, coalescing, Knuth boundary tags, blocks, block headers, bits, fragmentation, compaction, garbage collection, mark-scan, two-space, reference counting, root pointers, comparison,
COMPGC16/3011
Functional Programming
Revision Lecture 2014
/docProps/thumbnail.jpeg