February 26, 2005
Paper Reading
[01-Feb-2004]
Harper and Pfenning. On Equivalence of Canonical Forms in the LF Type Theory
[04-Apr-2004]
Simon Peyton Jones. Tackling the Awkward Squad: monadic input/output, concurrency, exceptions, and foreign-language calls in Haskell
[01-Apr-2004]
Devil: An IDL for Hardware Programming
[19-Apr-2004]
Devil Definition
[09-May-2004/"]
Todd L. Veldhuizen. "Guaranteed Optimization for Domain-Specific Programming."
Has an excellent introduction on what a good general purpose language
environment for domain specific programming should look like.
Introduces a technique called "guaranteed optimization" that promises
to be good for domain specific programming. Most interestingly it
can subsume such things as property checking.
The paper states a couple of interesting things such as the fact that
type checking should not be "baked in" to the language but rather be
considered a domain specific property check of some description.
[04-Nov-2004]
(7) Tim Sheard. Languages of the Future.
(4) Stephanie Weirich. Type safe cast.
[20-Nov-2004]
(8) Peter Achten. "The Feasibility of Interactively Probing Quiescent
Properties of GUI Applications" (Unpublished - I reviewed it)
[22-Nov-2004]
(10) Arch D. Robinson. Impact of Economics on Compiler Optimization
[26-Nov-2004]
(10) Dawson R. Engler. Interface Compilation: Steps toward Compiling
Program Interfaces as Langauges.
[27-Nov-2004]
(10) Shigeru Chiba. A Metaobject Protocol for C++
(7) Samuel Z. Guyer and Calvin Lin. An Annotation Language for
Optimizing Software Libraries.
[8-Dec-2004]
(9) Sang-Ik Lee, Troy A. Johnson, Rudolf Eigenmann. Cetus - An
Extensible Compiler Infrastructure for Source-to-Source
Transformation.
[9-Dec-2004]
(9) Shriram Krishnamurthi, Matthias Felleisen, Daniel
P. Friedmann. Synthesizing Object-Oriented and Functional Design to
Promote Re-Use.
[16-Feb-2005]
(9) Manuel Chakravarty et al. Associated Types with Class.
Review
[25-Feb-2005]
[26-Feb-2005]
Peter J. L. Wallis and Brian A. Wichmann. Requirements Analysis for Ada Compilers.
Link
Got this paper by typing "monolithic compiler" into Google and following the links. States that monolithism should end and be replaced with an architecture in which the compiler is broken up into modules with well-defined interfaces so that various tools can use these modules separately.
It also has an interesting discussion of why language specifications do not serve as a complete specification for compilers. It also clarified in my mind why portability is such a difficult issue: efficiency of hardware.
All language features must be implemented in hardware. Hardware implements very efficiently the core elements of programming languages such as arithmetic, boolean operations, and memory access/management. If a language includes floating point numbers, and most do, then the most efficient thing to do is to use the floating point arithmetic provided by the hardware. But if it differs between hardware platforms this means that identical programs will yield different behaviour on different systems. The alternative is to implement floating point arithmetic in terms of something more standard but this will be hellishly inefficient. Hence portability is compromised.