Ada papers available for WWW browsing
A number of papers in hypertext format relevant to Ada programming
and/or Ada implementations are now available for browsing on the World
Use1Var.html (WWW hypertext)
- "'Use-Once' Variables and Linear Objects--Storage Management,
Reflection and Multi-Threading". Submitted to ACM Sigplan
Notices, September, 1994. A high-level discussion of 'linear'
and 'non-linear' (traditional) names/variables/objects in programming
LRefCounts.html (WWW hypertext)
- "Minimizing Reference Count Updating with Deferred and Anchored
Pointers for Functional Data Structures". ACM Sigplan Notices
29, 9 (September 1994), 38-43. Safe mechanisms for reducing
reference count updating overhead.
ObjectIdentity.html (WWW hypertext)
- "Equal Rights for Functional Objects or, The More Things Change, The
More They Are the Same". ACM OOPS Messenger 4, 4
(October 1993), 2-27. Programming language types should
include the notion of whether an object is mutable or immutable.
LimitedRoots.html (WWW hypertext)
- "Safe and Leakproof Resource Management using Ada83 Limited Types".
ACM Ada Letters XIII, 5 (Sep/Oct 1993), 32-42. How to do
resource management and garbage collection safely 'on top of'
Ada, rather than 'underneath' (in the implementation).
Encode.html (WWW hypertext)
- "Strategies for the Lossless Encoding of Strings as Ada Identifiers".
ACM Ada Letters XIII, 5 (Sep/Oct 1993), 43-47.
Interesting ways to translate identifiers from one programming
language into another without losing readability or
Iterator.html (WWW hypertext)
- "Iterators: Signs of Weakness in Object-Oriented Languages". ACM
OOPS Messenger 4, 3 (July 1993), 18-25. If your language
requires iterators in order to get anything done, your
language's control structures are grossly deficient.
LimitedRobbery.html (WWW hypertext)
- "How to Steal from a Limited Private Account--Why Mode IN OUT
Parameters for Limited Types Must be Passed by Reference". ACM
Ada Letters XIII, 3 (May/June 1993), 91-95. Passing IN
OUT parameters of limited type by copy-in, copy-out opens up a major
loophole in Ada's type safety, which can be closed only by requiring
that such parameters be passed by reference.
Inlines.html (WWW hypertext)
- "Inlining Semantics for Subroutines which are Recursive". ACM
Sigplan Notices 27, 12 (December 1992), 39-46. A
semantics for subroutine 'inlining' which handles recursive
subroutines and 'unrolls' tail-recursive loops.
SigAda92Positions.html (WWW hypertext)
- "Ada9X Issues for AI Systems". Issues paper for Ada/AI/RT WG
Workshop, Summer '92 SigAda Meeting, June 24-25, 1992.
NoMotionGC.html (WWW hypertext)
- "The Treadmill: Real-Time Garbage Collection without Motion Sickness".
ACM Sigplan Notices 27, 3 (March 1992), 66-70. How to do
real-time garbage collection without copying.
LazyAlloc.html (WWW hypertext)
- "CONS Should not CONS its Arguments". ACM Sigplan Notices
27, 3 (March 1992), 24-34. How to safely allocate
stuff on the stack.
OOAdaLetters.html (WWW hypertext)
- "Object-Oriented Programming in Ada83--Genericity Rehabilitated". ACM
Ada Letters XI, 9 (Nov/Dec 1991), 116-127. How to do
single inheritance OO programming in Ada83 using overloading and
LPprogram.html (WWW hypertext)
- "Structured Programming with Limited Private Types in Ada". ACM
Ada Letters XI, 5 (Jul/Aug 1991), 79-90. How to program
with Ada's 'limited' (assignment-less) types.
TreeShadow.html (WWW hypertext)
- "Worlds in Collision: A Mostly Functional Model of Concurrency Control
and Recovery". Unpublished, 1990. Shallow binding and concurrency
control. Write-ahead and write-behind for database and transaction
recovery are simply various versions of shallow binding.
Bitvectors.html (WWW hypertext)
- "Efficient Implementation of Bit-vector Operations in Common Lisp".
ACM Lisp Pointers 3, 2-4 (Apr-Jun 1990), 8-22. How to
implement bit vector operations efficiently.
RealTimeGC.html (WWW hypertext)
- "List Processing in Real Time on a Serial Computer",
Communications of the ACM 21, 4 (April 1978), 280-294.
Discusses copying garbage collection, incremental (real-time) garbage
collection, real-time reference counting, etc.
Futures.html (WWW hypertext)
- "The Incremental Garbage Collection of Processes", with Carl Hewitt,
ACM Sigplan Notices 12, 8 (August 1977), 55-59. An early
discussion of the concept of 'futures' in a parallel functional
programming language. Naively uses 'reachability' for eliminating
garbage processes, which is now known to be insufficient in the
presence of shared cells with assignment.