CS 334: Additional Reading Material
Some of these articles may be assigned as part of homework. They may
also be useful to you as a supplement to lectures and other reading.
None of the readings listed on this page are required unless they are
explicitly assigned in homework or in lecture.
Articles and Reports
- Why Undergraduates Should Learn the Principles of Programming
Languages (Draft).
- J. McCarthy, Recursive functions of symbolic expressions and their
computation by
machine, Comm.
ACM 3, 4 (1960) 184-195.
- Paul Wilson, Uniprocessor garbage collection
techniques.
- Benjamin Zorn, Comparing mark-and sweep and stop-and-copy garbage
collection,
ACM conference on LISP and functional programming, 1990.
- Tony Printezis, Garbage Collection in the Java HotSpot Virtual
Machine, . For a more technical discussion:
here
or here.
- Stephen M. Blackburn and Kathryn S. McKinley, Immix: A Mark-Region
Garbage Collector with Space Efficiency, Fast Collection, and Mutator
Performance,
ACM SIGPLAN Conference on Programming Language Design and
Implementation, 2008.
- E. D. Berger, B. G. Zorn, and K. S. McKinley, Composing
High-Performance Memory
Allocators,
ACM SIGPLAN Conference on Programming Language Design and
Implementation, 2001.
- Jeffrey Dean and Sanjay Ghemawat, MapReduce: Simplified Data
Processing on Large
Clusters, OSDI'04:
Sixth Symposium on Operating System Design and Implementation, San
Francisco, CA, December, 2004.
- Rob Pike, Sean Dorward, Robert Griesemer, Sean Quinlan,
Interpreting the Data: Parallel Analysis with
Sawzall, Scientific
Programming Journal Special Issue on Grids and Worldwide Computing
Programming Models and Infrastructure 13:4, pp. 227-298.
- The Java HotSpot Virtual
Machine,
Sun Microsystems.
- J. Backus, Can programming be liberated from the von Neuman
style?, Comm. ACM 21, 8 (1978) 613-641.
(large file)
- R. Harper, Introduction to Standard
ML, Report
ECS-LFCS-86-14, Dept. Computer Science, Univ. Edinburgh, 1989. (Link
is to updated web version.)
- B. Kernighan, Why Pascal is Not My Favorite Programming
Language, Bell Labs
CSTR 100, July 1981.
- A. Koenig, An anecdote about ML type
inference,
USENIX Symposium on Very High Level Languages,1994.
- Westley Weimer and George C. Necula Finding and Preventing Run-Time
Error Handling
Mistakes. In
Proceedings of the Conference on Object-Oriented Programming
Systems, Languages and Applications, 2004.
- N. Wirth, Program development by stepwise
refinement, Communications of
the ACM, 14, 4 (1971) 221--227.
- D. Parnas, On the criteria to be used in decomposing systems into
modules, Communications of the
ACM, 15, 12 (1972) 1053-1058.
- Guy Steele, Growing a
Language,
Invited talk at OOPSLA 1998.
- D. Ingalls, Design principles behind
Smalltalk, BYTE Special Issue on
Smalltalk, August 1981. (Scanned by Dwight Hughes.)
- 15 Years Ago in BYTE: The Smalltalk
Environment by Larry Tessler, BYTE,
August 1996.
- Bjarne Stroustrop, excerpt from Design and Evolution of
C++, 1994
- W.R. Cook, Interfaces and specifications for the Smalltalk-80
collection
classes,.Proc
ACM Conf. Object-Oriented Programming Systems, Languages, and
Applications (OOPSLA '92). ACM SIGPLAN Notices ,Vol. 27, No. 10
(Oct. 1992), Pages 1-15.
- Henry James Gosling, Java: An
Overview, 1995.
- Henry McGilton and James Gosling, The Java Language Environment: A
White Paper, 1996.
- Michael Hicks and Scott M. Nettles, Dynamic Software
Updating,
ACM Transactions on Programming Languages and Systems (TOPLAS),
27(6), November 2005.
- Java 1.5:
- Scala:
- Tim Harris and Kier Fraser, Language Support for Lightweight
Transactions,
Object-Oriented Programming: Systems, Languages, and
Applications, 2003.
- Security readings:
Books
- E. Gamma et al., Design Patterns: Elements of Reusable
Object-Oriented Software, Addison-Wesley, 1995.
- B. Stroustrup, The Design and Evolution of C++, Addison-Wesley,
1994, 461 pages.
- K. Arnold and J. Gosling, The Java Programming Language,
Addison-Wesley, 1996.