Assignments
Ist
To be handed in on October 28, 9:00 PM, by email to
doaitse@cs.uu.nl
Start working from the file
Infer.hs: and perform the following tasks:
- Define a sufficiently rich
StateMonad
instance, and construct a working type inferencer.
- Change the definitions so you also count the number of unifications needed when inferencing the code. For inspiration you may read some papers by Phil Wadler about the use of Monads (e.g. in LNCS 925), or by grabbing a paper from his home page.
- For those who have done IPT write a one page summary in which you compare this approach with the one using attribute grammars to solve the same problem.
With respect to the workflow system perform the following (
AnswersToSomeQuestions):
- using the IO Monad in Haskell add code for the main loop of the program Workflow.hs:, which:
- asks the user for his identity
- shows which tasks can be performed since all ingredients are available
- ask the user to type an identification of the taks he chooses to do
- removes the needed items from the state of the system, and starts the loop again
- define a set of attributes and predicates that corresponds to the problem described below, at the beginning of the course
I got
If you like this exercise you may extend it with the possibility to enter new items, and even a rule system for automatically generating more new items upon insertion of an item.
I will write some more detailed documentation for this program in the weekend, which should make your life a bit easier.
--
DoaitseSwierstra - 17 Oct 2002
To be handed in on October 14, 9:00 PM, by email to
jur@cs.uu.nl and if necessary the mail box of
JurriaanHage in CGN
See the
ProgramAnalysis page for the assignment.
--
JurriaanHage - 18 Oct 2002
To be handed in on October 11, 9:00 PM, by email to
visser@cs.uu.nl
See the
ProgramTransformation page for the assignment.
--
EelcoVisser - 26 Sep 2002
To be handed in on september 26, 9.00 pm, preferably by email to
johanj@cs.uu.nl
There exist several kinds of polymorphism: parametric polymorphism, ad-hoc polymorphism, inheritance polymorphism, etc. Search the literature and the web, and describe at least these kinds of polymorphism. Illustrate the different concepts with examples. Discuss and compare how the different concepts are or can be implemented in functional and object-oriented programming languages. Your paper should be no longer than 4 pages.
--
JohanJeuring - 18 Sep 2002
To be handed in on september 19, 9.00 pm, preferably by email to
wishnu@cs.uu.nl
Do the Array Overflow (1.2.3) challenge (it is in IST_LN_main.pdf downloadable from the
Program Verification page). Write a
4 pages paper explaining your idea and how you think your solution can be (partially) automated.
--
WishnuPrasetya - 11 Sep 2002
To be handed in on september 10, 9.00 pm, preferably by email to
doaitse@cs.uu.nl
- a one page summary of the paper Strategic Directions in programming language research What is Software Technology
- a 2-3 page design of a domain specific language for a workflow system:
- you may find information about such systems on the web or in the library (try searching the ACM digital library on a computer in the library)
- browse through a few descriptions and try to locate common, important concepts like task, actor, date due etc
- think about properties and relationships between these concepts
- give a context free grammar of a language that might serve as the input language for some hypothetical workflow system
- as a case study you might think about the workflow in our department that is associated with an exam session, such as:
- assigning and notifying proctors
- making a room
- reseving a room, enetering it on the web site
- having the exam checked by someone else
- having the exam session (who are e.g. the actors here)
- distributing the exam for marking, and collecting and computing final results
- communicating the preliminary results to the students and having them entered in Osiris
- checking that the marks were entered correctly
- signing the final exam form
- communicating the definitive results to the students
- ... etc
- of course you are free to take some oher case study, for example one with many actors and a branching structure
Important things to notice are:
- this exercise is not about designing the perfect workflow system, but only serves
- to give you a feeling of what is involved when modelling and formalising something you have probably experienced and
- to look back at, when you have followed more of this course so you may then reflect on how you have changed over time
--
DoaitseSwierstra - 04 Sep 2002