Projects Bib
Projects Bib
451
452 Project Suggestions
perhaps an LALR (1) version with sophisticated error recovery. Good compiler
texts, such as Aho et al. (1986), describe the necessary techniques.
Compiling projects are always popular. Select a small subset of ML and write
an interpreter for it. The SECD machine yields call-by-value semantics, while
graph reduction yields call-by-need. Field and Harrison (1988) describe such
implementation methods, as well as type checking. Unless the syntax is trivial,
use a parser generator such as ML-Yacc (Tarditi and Appel, 1994).
You should be familiar at least with Chapters 2–5, preferably also Chapters 7
and 8, before attempting any substantial project. Good luck!
454 Project Suggestions
BIBLIOGRAPHY
455
456 Bibliography
Grant, P. W., Sharp, J. A., Webster, M. F., and Zhang, X. (1995). Experiences
of parallelising finite-element problems in a functional style.
Software—Practice and Experience, 25(9), 947–974.
Grant, P. W., Sharp, J. A., Webster, M. F., and Zhang, X. (1996). Sparse matrix
representations in a functional language. Journal of Functional
Programming, 6(1), 143–170.
Greiner, J. (1996). Weak polymorphism can be sound. Journal of Functional
Programming, 6(1), 111–141.
Gunter, C. A. (1992). Semantics of Programming Languages: Structures and
Techniques. MIT Press.
Halfant, M. and Sussman, G. J. (1988). Abstraction in numerical methods. In
LISP and Functional Programming, pages 1–7. ACM Press.
Harper, R. (1994). A simplified account of polymorphic references.
Information Processing Letters, 51(4), 201–206.
Harper, R., MacQueen, D., and Milner, R. (1986). Standard ML. Technical
Report ECS-LFCS-86-2, Department of Computer Science, University of
Edinburgh.
Hartel, P. and Plasmeijer, R. (1996). State-of-the-art applications of pure
functional programming. Journal of Functional Programming, 5(3). Special
issue.
Hennessy, M. (1990). The Semantics of Programming Languages: An
Elementary Introduction Using Structural Operational Semantics. Wiley.
Hinchey, M. and Bowen, J. P., editors (1995). Applications of Formal Methods.
Prentice-Hall.
Hoare, C. A. R. (1989a). Computer science. In Hoare and Jones (1989), pages
89–101. Inaugural lecture, Queen’s University of Belfast, 1971.
Hoare, C. A. R. (1989b). Hints on programming-language design. In Hoare
and Jones (1989), pages 193–216. First appeared in 1974.
Hoare, C. A. R. (1989c). An overview of some formal methods for program
design. In Hoare and Jones (1989), pages 371–387. Reprinted from
Computer 20 (1987), 85–91.
Hoare, C. A. R. and Jones, C. B., editors (1989). Essays in Computing Science.
Prentice-Hall.
Hoogerwoord, R. (1992). A logarithmic implementation of flexible arrays. In
R. S. Bird, C. C. Morgan, and J. C. P. Woodcock, editors, Mathematics of
Program Construction: Second International Conference, LNCS 669, pages
191–207. Springer.
Hudak, P., Jones, S. P., and Wadler, P. (1992). Report on the programming
Bibliography 459