Technical Bibliography

This bibliography gives URL pointers and LaTeX-formatted citations for my papers. The citations only give URL references for documents that are stored on reasonably stable file systems. The documents are simply listed in reverse chronological order; they are not grouped by topic or kind (e.g., journal papers vs. conference papers vs. other kinds of publication). This is not just recent publications or "significant" papers. It's all of them.

From this page, you should be able to:

Each LaTeX-format citation has four blocks: (1) title, (2) author, (3) reference, and (3) auxiliary references, separated by \newblock commands. The citations listed here are exhaustive: if it was a group note before it was a tech report before the journal accepted the paper, and is additionally available over the net, you get all of these secondary access paths in the "auxiliary references" block. This block can safely be trimmed if a shorter citation is preferred.

One reason I provide both hand-typeset citations and BibTeX entries is that when I write a paper, I prefer to do the typesetting of the bibliography myself. BibTeX is a nice tool, but things come out better when I do the typesetting myself. It's a miniscule percentage of the total effort to write a good paper, so the labor savings is nugatory.

Olin Shivers / shivers at ccs dot neu dot edu

Contents

Click on these titles to jump to the full citation in this document:

Papers


What's in a name?

A blog post I wrote while at Jane Street Capital in 2014, on the subject of names in Computer Science.

What's in a name? \newblock
Olin Shivers. \newblock
Essay posted to Jane Street Capital's tech blog, July 10, 2014.
  \url{https://blogs.janestreet.com/whats-in-a-name/}

An array-oriented language with static rank polymorphism
(ps)

A static type system that captures the rank polymorphism of Iverson's array-processing languages APL and J.

An array-oriented language with static rank polymorphism. \newblock
Justin Slepak, Olin Shivers, and Panagiotis Manolios. \newblock
In \emph{Proceedings of the 23rd European Symposium on Programming (ESOP'14)},
  pages 27--46, Grenoble, France, April 2014.
\emph{Lecture Notes in Computer Science \#8410}, Springer.

Preliminary design of the SAFE platform
(ps)

The design of a high-security architecture.

Preliminary design of the SAFE platform. \newblock
Andr{\'e} DeHon, Ben Karel, Thomas F.~Knight, Jr,
  Gregory Malecha, Beno\^{\i}t Montagu, Robin Morisset,
  Greg Morrisett, Benjamin C. Pierce, Randy Pollack,
  Sumit Ray, Olin Shivers, Jonathan M.~Smith, and Gregory Sullivan. \newblock
In \emph{Proceedings of the 6th Workshop on
         Programming Languages and Operating Systems (PLOS'11),
  pages 4:1--4:5, October 2011, Cascais, Portugal, ACM.

Modular rollback through control logging: A pair of twin functional pearls
(ps)

Modular rollback through control logging: A pair of twin functional pearls. \newblock
Olin Shivers and Aaron Turon. \newblock
In \emph{Proceedings of the Sixteenth ACM SIGPLAN International
         Conference on Functional Programming (ICFP'11)},
  pages 58--68, Tokyo, September, 2011.

Pushdown flow analysis of first-class control
(ps)

Extending the CFA2 PDA-based higher-order flow analysis to work for languages with "first-class control operators," such as call/cc, prompt, and reset.

Pushdown flow analysis of first-class control. \newblock
Dimitrios Vardoulakis and Olin Shivers. \newblock
In \emph{Proceedings of the Sixteenth ACM SIGPLAN International
         Conference on Functional Programming (ICFP'11)},
  pages 69--80, Tokyo, September 2011.

CFA2: A context-free approach to control-flow analysis

CFA2 is a PDA-based higher-order flow analysis.

CFA2: A context-free approach to control-flow analysis. \newblock
Dimitrios Vardoulakis and Olin Shivers. \newblock
\emph{Logical Methods in Computer Science}, 7(2) pages 3:1--3:39, May 2011.
Special issue for ESOP 2010.

Ordering multiple continuations on the stack
(ps)

A static analysis that orders continuations or return points to minimise shuffling at run time.

Ordering multiple continuations on the stack. \newblock
Dimitrios Vardoulakis and Olin Shivers. \newblock
In \emph{Proceedings of the 2011 ACM SIGPLAN Workshop on Partial
         Evaluation and Program Manipulation (PEPM 2011)},
pages 13--22, Austin, Texas, January 2011.

Bottom-up β-reduction: Uplinks and λ-DAGs

A simple data structure for terms in the λ-calculus that efficiently supports β-reduction. This is the full journal article.

Bottom-up $\beta$-reduction: Uplinks and $\lambda$-DAGs. \newblock
Olin Shivers and Mitchell Wand. \newblock
\emph{Fundamenta Informaticae}, 103(1--4) pages 247--287, 2010, IOS Press.

CFA2: A context-free approach to control-flow analysis
(ps)

CFA2 is a PDA-based higher-order flow analysis.

CFA2: A context-free approach to control-flow analysis. \newblock
Dimitrios Vardoulakis and Olin Shivers. \newblock
In \emph{Proceedings of the 19th European Symposium on Programming
         (ESOP 2010)}, pages 570--589, Paphos, Cyprus, March 2010.
\emph{Lecture Notes in Computer Science #6012}, Springer.

Why teach programming languages
(ps) (dvi)

Why teach programming languages. \newblock
Olin Shivers. \newblock
SIGPLAN Workshop on Programming Language Curriculum.
\emph{SIGPLAN Notices}, 43(11) pages 130--132, November 2008.

Trusted theorem proving: A case study in SLD-resolution
(ps)

Trusted theorem proving: A case study in SLD-resolution. \newblock
Konstantine Arkoudas and Olin Shivers. \newblock
In \emph{Proceedings of the Third International Symposium on
         Leveraging Applications of Formal Methods, Verification and Validation
         (ISoLA 2008)}, 
  pages 782--796, October 2008, Porto Sani, Greece.
\emph{Communications in Computer and Information Science \#17}, Springer.

Exploiting reachability and cardinality in higher-order flow analysis
(ps)

Exploiting reachability and cardinality in higher-order flow analysis. \newblock
Matthew Might and Olin Shivers. \newblock
\emph{Journal of Functional Programming}
  18(5-6) pages 821--864, May/June 2008.

Building language towers with Ziggurat
(ps)

Building language towers with Ziggurat. \newblock
David Fisher and Olin Shivers. \newblock
\emph{Journal of Functional Programming},
  18(5-6) pages 707--780, May/June 2008.

Analyzing environment structure of higher-order languages using frame strings
(ps)

Analyzing environment structure of higher-order languages 
   using frame strings. \newblock
Matthew Might and Olin Shivers. \newblock
\emph{Theoretical Computer Science}, 375(1--3) pages 137--168, May 2007.

Model Checking via ΓCFA
(ps)

Model Checking via {$\Gamma$}CFA. \newblock
Matthew Might, Benjamin Chambers and Olin Shivers. \newblock
In \emph{Proceedings of the Eighth International Conference on
         Verification, Model Checking and Abstract Interpretation (VMCAI'07)},
   pages 59--73,
   Nice, France, January 2007.
   \emph{Lecture Notes in Computer Science \#4349}, Springer.

Improving flow analyses via ΓCFA: Abstract garbage collection and counting
(ps)

Improving flow analyses via {$\Gamma$}CFA:
  Abstract garbage collection and counting. \newblock
Matthew Might and Olin Shivers. \newblock
In \emph{Proceedings of the Eleventh ACM SIGPLAN International
         Conference on Functional Programming ({ICFP'06})},
   pages 13--25,
   Portland, Oregon, September 2006.

Static analysis for syntax objects
(ps)

Macros that permit static semantics.

Static analysis for syntax objects. \newblock
David Fisher and Olin Shivers. \newblock
In \emph{Proceedings of the Eleventh ACM SIGPLAN International
         Conference on Functional Programming ({ICFP'06})},
   pages 111--121,
   Portland, Oregon, September 2006.

Continuations and transducer composition.
(ps)

Continuations and transducer composition. \newblock
Olin Shivers and Matthew Might. \newblock
In \emph{Proceedings of the 2006 ACM SIGPLAN Conference on 
         Programming Language Design and Implementation (PLDI 2006)},
   pages 295--307,
   Ottawa, Canada, June 2006.

Environment analysis via ΔCFA
(ps)

Environment analysis via $\Delta$CFA. \newblock
Matthew Might and Olin Shivers. \newblock
In \emph{Conference Record of POPL 2006: 
         The 33rd ACM SIGPLAN-SIGACT Symposium on
         Principles of Programming Languages},
    pages 295--307,
    Charleston, South Carolina, January 2006.

Dynamic data polyvariance using source-tagged classes
(ps)

A backwards-chaining, on-demand technique, DDP, for doing higher-order flow analysis to determine class structure in object-oriented languages.

Dynamic data polyvariance using source-tagged classes. \newblock
S.~Alexander Spoon and Olin Shivers. \newblock
In \emph{Proceedings of the Dynamic Languages Symposium (DLS'05)},
    pages 35--48, San Diego, California, October 2005.

Semantic navigation of large code bases in higher-order, dynamically typed languages
(ps)

A fast, on-demand higher-order flow analysis to enable interactive semantic navigation of large code bases written in object-oriented or functional languages.

Semantic navigation of large code bases in 
    higher-order, dynamically typed languages. \newblock
S.~Alexander Spoon and Olin Shivers. \newblock
In \emph{Proceedings of the 12th Working Conference on Reverse Engineering
    (WCRE 2005)}, pages 219--228, Pittsburgh, Pennsylvania, November 2005.

The anatomy of a loop: a story of scope and control
(ps)

The anatomy of a loop: a story of scope and control. \newblock
Olin Shivers. \newblock
In \emph{Proceedings of the 10th ACM SIGPLAN International Conference
         on Functional Programming} (ICFP 2005),
   pages 2--14,
   Tallinn, Estonia, September 2005.

Bottom-up beta-reduction: uplinks and lambda-DAGs (Extended version)
(ps/A4-size) (pdf/letter-size) (ps/letter-size)

Bottom-up $\beta$-reduction: uplinks and $\lambda$-DAGs (Extended version). \newblock
Olin Shivers and Mitchell Wand. \newblock
Technical Report BRICS RS-04-38, DAIMI, Department of Computer Science,
    University of {\AA}rhus, {\AA}rhus, Denmark, 
    December 2004.

Bottom-up beta-reduction: uplinks and lambda-DAGs
(ps)

Bottom-up $\beta$-reduction: uplinks and $\lambda$-DAGs. \newblock
Olin Shivers and Mitchell Wand.  \newblock
In \emph{Proceedings of the 14th European Symposium on Programming
    (ESOP 2005)}, 
    pages 217--232, Edinburgh, Scotland, April 2005. 
\emph{Lecture Notes in Computer Science \#3444}, Springer.

Note: I recommend the extended tech report over the ESOP conference article. Americans may wish to use one of the 8.5"x11" letter-paper alternate links for the extended BRICS technical report; the primary document has been formatted for European A4 paper.


Multi-return function call
(ps) (dvi)

Multi-return function call. \newblock 
Olin Shivers and David Fisher. \newblock 
\emph{Journal of Functional Programming}, 
   16(4) pages 547--582, July/September 2006.

Multi-return function call
(ps) (dvi)

Multi-return function call. \newblock
Olin Shivers and David Fisher. \newblock
In \emph{Proceedings of the Ninth ACM SIGPLAN International
         Conference on Functional Programming (ICFP 2004)},
    pages 79--89, Snowbird, Utah, September 2004.

Note: I recommend the journal article. Besides more detail, it has a simplified semantics for the basic system.


Lexer and parser generators in Scheme.
(ps)

Lexer and parser generators in Scheme. \newblock
Matthew Flatt, Benjamin McMullan, Scott Owens and Olin Shivers. \newblock
In \emph{Proceedings of the Fifth Workshop on 
         Scheme and Functional Programming},
   pages 41--52, Snowbird, Utah, September 2004.

trx: Regular-tree expressions, now in Scheme
(ps)

trx: Regular-tree expressions, now in Scheme. \newblock
Ilya Bagrak and Olin Shivers. \newblock
In \emph{Proceedings of the Fifth Workshop on 
         Scheme and Functional Programming},
   pages 21--32, Snowbird, Utah, September 2004.

Scheme 2004 proceedings
(local)

Olin Shivers and Oscar Waddell, editors. \newblock
\emph{Proceedings of the Fifth ACM SIGPLAN Workshop on
      Scheme and Functional Programming},
  Snowbird, Utah, September 2004.
  Technical report TR600, Department of Computer Science, Indiana University.
  \url{http://www.cs.indiana.edu/cgi-bin/techreports/TRNNN.cgi?trnum=TR600}

Demand-driven type inference with subgoal pruning: trading precision for scalability
(ps)

Demand-driven type inference with subgoal pruning:
  trading precision for scalability. \newblock
S.~Alexander Spoon and Olin Shivers. \newblock
In \emph{Proceedings of the $18^{\mathrm th}$ European Conference on 
         Object-Oriented Programming}, 
  pages 51--74, Oslo, Norway, June 2004.
\emph{Lecture Notes in Computer Science \#3086}, Springer.

Higher-order control-flow analysis in retrospect: Lessons learned, lessons abandoned
(ps) (dvi)

Higher-order control-flow analysis in retrospect:
    Lessons learned, lessons abandoned. \newblock
Olin Shivers. \newblock
In \emph{20 Years of the ACM SIGPLAN Conference on 
         Programming Language Design and Implementation (1979-1999): 
         A Selection}, 
    pages 269--270,
    editor Kathryn S.~McKinley, 2004.

ICFP 2003 proceedings

Olin Shivers, editor. \newblock
\emph{Proceedings of the Eighth ACM SIGPLAN International 
      Conference on Functional Programming (ICFP 2003)},
  Uppsala, Sweden, August 2003.
  \emph{SIGPLAN Notices} 37(9).

Scheme 2002 proceedings
(pdf) (ps)

Olin Shivers, editor. \newblock
\emph{Proceedings of the Third ACM SIGPLAN Workshop on
      Scheme and Functional Programming (Scheme 2002)},
  Pittsburgh, Pennsylvania, October 2002.
Technical Report GIT-CC-02-28, College of Computing, 
  Georgia Institute of Technology.

SRFI 33: Integer bitwise-operation library
(txt)

SRFI 33: Integer bitwise-operation library. \newblock
Olin Shivers. \newblock
Available at URL \url{http://srfi.schemers.org/srfi-33}, 2002.

SRFI 32: Sort libraries
(txt) (source tar.gz)

SRFI 32: Sort libraries \newblock
Olin Shivers. \newblock
Available at URL \url{http://srfi.schemers.org/srfi-32}, 2002.

SRFI 14: Character-set library
(txt)

SRFI 14: Character-set library \newblock
Olin Shivers. \newblock
Available at URL \url{http://srfi.schemers.org/srfi-14}, December 2000.

SRFI 13: String libraries
(txt)

SRFI 13: String libraries \newblock
Olin Shivers. \newblock
Available at URL \url{http://srfi.schemers.org/srfi-13}, December 2000.

Atomic heap transactions and fine-grain interrupts
(ps) (dvi)

Atomic heap transactions and fine-grain interrupts. \newblock
Olin Shivers, James W. Clark and Roland McGrath. \newblock
In \emph{Proceedings of the Fourth ACM SIGPLAN International Conference
    on Functional Programming (ICFP'99)},
    pages 48--59, Paris, France, September 1999.
    Published as \emph{SIGPLAN Notices} 34(9).

SRFI 3: List-set library

SRFI 3: List-set library \newblock
Olin Shivers. \newblock
Available at URL \url{http://srfi.schemers.org/srfi-3}, 1998.
Note: Standard subsequently incorporated into SRFI-1 and withdrawn.

SRFI 1: List library
(txt)

SRFI 1: List library \newblock
Olin Shivers. \newblock
Available at URL \url{http://srfi.schemers.org/srfi-1}, October 1999.

The SRE regular-expression notation

Reference, tutorial, and general design discussion of SRE's, an s-expression notation for regexps. The preamble describes the "80% solution" problem with free software systems.

The SRE regular-expression notation. \newblock
Olin Shivers. \newblock
Available at URL \url{http://www.ccs.northeastern.edu/~shivers/papers/sre.txt},
    August 1998.

The Flux OSKit: A substrate for kernel and language research

The Flux OSKit: A substrate for kernel and language research. \newblock
Bryan Ford, Godmar Back, Greg Benson, Jay Lepreau, 
    Albert Lin and Olin Shivers. \newblock
In \emph{Proceedings of the Sixteenth ACM Symposium on 
    Operating Systems Principles (SOSP-16)}, 
    pages 38--51, October 1997, Saint-Malo, France.
    Published as \emph{Operating System Review} 31(5).

Automatic management of operating-system resources

Automatic management of operating-system resources. \newblock
Olin Shivers. \newblock
In \emph{Proceedings of the Second ACM SIGPLAN
         International Conference on Functional Programming (ICFP '97)}, 
    pages 274--279, June 1997, Amsterdam, The Netherlands.
    Published as \emph{SIGPLAN Notices} 32(8).

Continuations and threads: Expressing machine concurrency directly in advanced languages
(dvi)

Continuations and threads: 
    Expressing machine concurrency directly in advanced languages. \newblock
Olin Shivers. \newblock
In \emph{Proceedings of the Second ACM SIGPLAN Workshop on Continuations 
         (CW 1997)},
    pages 2:1--15, January 1997, Paris, France.
Also available as BRICS Notes Series NS-96-13, 
    University of {\AA}rhus, Denmark.

A universal scripting framework
(dvi)

A universal scripting framework, 
    or Lambda: the ultimate ``little language.'' \newblock
Olin Shivers. \newblock
In \emph{Concurrency and Parallelism, Programming, Networking, and Security,}
    pages 254--265,
    Editors Joxan Jaffar and Roland H.~C.~Yap, 
    \emph{Lecture Notes in Computer Science \#1179}, 
    1996, Springer.

Supporting dynamic languages on the Java virtual machine
(dvi) (ps)

Supporting dynamic languages on the Java virtual machine. \newblock
Olin Shivers. \newblock
In \emph{Proceedings of the Dynamic Objects Workshop}, 
    May 1996, Boston, Massachussetts.
Also available as technical report AIM-1576, 
    MIT Artificial Intelligence Laboratory.

A Scheme shell

The design paper on the Scheme shell scsh.

A Scheme shell. \newblock
Olin Shivers. \newblock
\emph{Lisp and Symbolic Computation}, to appear.
(Also available as Technical report TR-94-10,
    Dept. of Computer Science, University of Hong Kong,
    and Technical report TR-635, Laboratory for Computer Science, MIT.)

Scsh reference manual

The reference manual for scsh.

The pair of citations given below are for (1) the version of the manual which accompanied the first public release of scsh in December 2005, and (2) a more current version of the manual (with more authors).

\emph{The scsh manual.} \newblock
Olin Shivers and Brian Carlstrom. \newblock
Release 0.3, December 25, 1994.
  MIT Laboratory for Computer Science.
Current version available at URL \url|http://scsh.net|.
\emph{The scsh manual.} \newblock
Olin Shivers, Brian Carlstrom, Martin Gasbichler, and Mike Sperber. \newblock
Release 0.6.6, March 2004.
Current version available at URL \url|http://scsh.net|.

BodyTalk and the BodyNet: A personal information infrastructure

BodyTalk and the BodyNet: A personal information infrastructure. \newblock
Olin Shivers. \newblock
Personal Information Architecture Note 1 (December 1, 1993),
  MIT Laboratory for Computer Science. 

Useless-variable elimination
(ps)

Useless-variable elimination. \newblock
Olin Shivers. \newblock
In \emph{Proceedings of the Workshop on Static Analysis of Equational, 
      Functional and Logic Programs (WSA'91)},
  October 1991, Bordeaux, France.
  Published as \emph{Actes JTASPEFL'91}, Bigre \#74,
      Atelier Irisa, IRISA Campus de Beaulieu.

A slightly different earlier version (dvi) (ps) is available as working note, with the following citation:

Useless-variable elimination. \newblock
Olin Shivers. \newblock
Scheme Flow-analysis Working Note \#2 (April 27, 1990),
  CMU School of Computer Science.

The semantics of Scheme control-flow analysis.
(ps) (dvi)

The semantics of Scheme control-flow analysis. \newblock
Olin Shivers. \newblock
In \emph{Proceedings of the First ACM SIGPLAN and IFIP Symposium on Partial
    Evaluation and Semantics-Based Program Manipulation (PEPM'91)}, 
    June 1991, Yale University.
    Published as \emph{SIGPLAN Notices} 26(9):190--198, 
    Association for Computing Machinery, September 1991.
(Also available as Technical Report CMU-CS-91-119,
    CMU School of Computer Science, Pittsburgh, Pennsylvania.)

Control-Flow Analysis of Higher-Order Languages
(dvi) (ps)

My dissertation.

\emph{Control-Flow Analysis of Higher-Order Languages.} \newblock
Olin Shivers. \newblock
Ph.D. dissertation, Carnegie Mellon University, May 1991.
  Technical Report CMU-CS-91-145, School of Computer Science.

Data-flow analysis and type recovery in Scheme.
(ps) (dvi)

Data-flow analysis and type recovery in Scheme. \newblock
Olin Shivers. \newblock
Technical Report CMU-CS-90-115, CMU School of Computer Science,
    Pittsburgh, Penn., March 1990.
(Also appears as chapter 3 of 
    \emph{Topics in Advanced Language Implementation},
    ed.~Peter Lee, MIT Press, 1991.)

CPS data-flow analysis example
(ps) (dvi)

CPS data-flow analysis example. \newblock
Olin Shivers. \newblock
Scheme Flow-analysis Working Note \#1 (May 1, 1990),
    CMU School of Computer Science.

Super-beta: Copy, constant, and lambda propagation in Scheme
(ps) (dvi)

Super-$\beta$: Copy, constant, and lambda propagation in Scheme. \newblock
Olin Shivers. \newblock
Scheme Flow-analysis Working Note \#3 (May 1, 1990),
  CMU School of Computer Science.

Constraint satisfaction and problem-space structure in Soar.

Constraint satisfaction and problem-space structure in Soar. \newblock
Olin Shivers. \newblock
In \emph{Proceedings of the Fifth Soar Workshop,} September 17, 1988.

Control-flow analysis in Scheme
(ps)

Control-flow analysis in Scheme. \newblock
Olin Shivers. \newblock
In {\em Proceedings of the SIGPLAN '88 Conference on Programming
 	Language Design and Implementation (PLDI)}, 
  pages 164--174, June 1988, Atlanta, Georgia.
Published as \emph{SIGPLAN Notices} 23(7).
  (Reprinted in \emph{20 Years of the ACM SIGPLAN Conference on 
                      Programming Language Design and Implementation 
                      (1979--1999): A Selection}.
  Also available as Technical Report ERGO-88-60,
  CMU School of Computer Science, Pittsburgh, Pennsylvania)

Varieties of learning in Soar: 1987

Varieties of learning in Soar: 1987. \newblock
David Steier, \emph{et al.} \newblock
In \emph{Proceedings of the Fourth International Workshop on Machine Learning},
    pages 300--311, Pat Langley (editor), Los Altos, California, June 1987,
    Morgan Kaufmann. \newblock
Collected in \emph{The Soar Papers: Research on Integrated Intelligence},
    editors P.~Rosenbloom, J.~Laird, and A.~Newell, 1993, MIT Press.
    Also Tech Report AIP-6, Artificial Intelligence and Psychology Reports, 
    Psychology Department, Carnegie-Mellon University, September 29, 1987}

Modelling cryptarithmetic puzzle solving for subject S3 of Human Problem Solving

Modelling cryptarithmetic puzzle solving for subject S3 of
    \emph{Human Problem Solving}. \newblock
Olin Shivers. \newblock
In \emph{Proceedings of the Soar Spring 87 Workshop}, June 20, 1987.

Constraint propagation and macro-compilation in Soar

Constraint propagation and macro-compilation in Soar. \newblock
Olin Shivers. \newblock
In \emph{Proceedings of the Soar Fall 86 Workshop}, November 22, 1986.