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, such as my AFS directory in the CMU SCS cell. 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. 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.

Papers stored at CMU can also be accessed via AFS; the urls contain the relevant file names. (To access them via ftp or AFS, you will probably have to cd to the leaf subdirectory in one hop, due to restricted permissions on the intermediate directories.) Tech reports can invariably also be had by visiting the web site of the relevant institution.

Olin Shivers / shivers at ccs dot neu dot edu

Click on these titles to jump to the full citation in this document:
  • Pushdown flow analysis of first-class control
  • Modular rollback through control logging: A pair of twin functional pearls
  • CFA2: A context-free approach to control-flow analysis (journal version)
  • Ordering multiple continuations on the stack
  • Bottom-up β-reduction: Uplinks and λ-DAGs (journal version)
  • CFA2: A context-free approach to control-flow analysis
  • Building language towers with Ziggurat
  • Why teach programming languages,
  • Analysing the environment structure of higher-order languages using frame strings
  • Model Checking via ΓCFA
  • Improving flow analyses via ΓCFA: Abstract garbage collection and counting
  • Static analysis for syntax objects
  • Continuations and transducer composition
  • Environmental analysis via ΔCFA
  • Dynamic data polyvariance using source-tagged classes
  • Semantic navigation of large code bases in higher-order, dynamically typed languages
  • The anatomy of a loop: A story of scope and control
  • Bottom-up beta-reduction: uplinks and lambda-DAGs. (original conference article and tech report)
  • Multi-return function call
  • Lexer and parser generators in Scheme
  • trx: Regular-tree expressions, now in Scheme
  • Scheme 2004 Workshop (editor)
  • Demand-driven type inference with subgoal pruning: trading precision for scalability
  • Higher-order control-flow analysis in retrospect: Lessons learned, lessons abandoned
  • ICFP 2003 Proceedings (editor)
  • Scheme 2002 Workshop (editor)
  • SRFI 33: Integer bitwise-operation library
  • SRFI 32: Sort libraries
  • SRFI 14: Character-set library
  • SRFI 13: String libraries
  • Atomic heap transactions and fine-grain interrupts
  • SRFI 3: List-set library
  • SRFI 1: List library
  • The SRE regular-expression notation
  • The Flux OSKit: A substrate for kernel and language research
  • Automatic management of operating-system resources
  • Continuations and threads: Expressing machine concurrency directly in advanced languages
  • A universal scripting framework
  • Supporting dynamic languages on the Java virtual machine
  • A Scheme shell
  • Scsh reference manual
  • BodyTalk and the BodyNet: A personal information infrastructure
  • Useless variable elimination
  • The semantics of Scheme control-flow analysis
  • Control-Flow Analysis of Higher-Order Languages
  • Data-flow analysis and type recovery in Scheme
  • CPS data-flow analysis example
  • Super-beta: Copy, constant and lambda propagation in Scheme
  • Constraint satisfaction and problem-space structure in Soar
  • Control-flow analysis in Scheme
  • Varieties of learing in Soar: 1987
  • Modelling cryptarithmetic puzzle solving for subject S3 of Human Problem Solving
  • Constraint propagation and macro-compilation in Soar

  • Pushdown flow analysis of first-class control (ps)

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

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

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

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

    Dimitrios Vardoulakis and Olin Shivers. \\
    CFA2: A context-free approach to control-flow analysis. \\
    \emph{Logical Methods in Computer Science}, 
    Special issue for ESOP 2010. To appear 2011?.
    

    Ordering multiple continuations on the stack (ps)

    Dimitrios Vardoulakis and Olin Shivers. \\
    Ordering multiple continuations on the stack. \\
      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

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

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

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

    Building language towers with Ziggurat (ps)

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

    Why teach programming languages (ps) (dvi)

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

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

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

    Model Checking via ΓCFA
    (ps)

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

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

    Improving flow analyses via {$\Gamma$}CFA:
    Abstract garbage collection and counting. \\
    Matthew Might and Olin Shivers. \\
    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)

    Static analysis for syntax objects. \\
    David Fisher and Olin Shivers. \\
    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. \\
    Olin Shivers and Matthew Might. \\
    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.
    Matthew Might and Olin Shivers.
    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)
    Note: current copy is draft

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

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

    Semantic navigation of large code bases in 
        higher-order, dynamically typed languages.
    S.~Alexander Spoon and Olin Shivers.
    In \emph{Proceedings of the 12th Working Conference on Reverse Engineering
        (WCRE 2005)}, 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.
    Olin Shivers.
    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).
    Olin Shivers and Mitchell Wand.
    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. 
    Olin Shivers and Mitchell Wand. 
    In \emph{Proceedings of the 14th European Symposium on Programming
        (ESOP 2005)}, 
        pages 217--232, Edinburgh, Scotland, April 2005. 
        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. 
    Olin Shivers and David Fisher. 
    \emph{Journal of Functional Programming}, 
       16(4) pages 547--582, July/September 2006.
    
    Multi-return function call
    (ps) (dvi)

    Multi-return function call. 
    Olin Shivers and David Fisher. 
    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. 
    Matthew Flatt, Benjamin McMullan, Scott Owens and Olin Shivers. 
    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. 
    Ilya Bagrak and Olin Shivers. 
    In \emph{Proceedings of the Fifth Workshop on 
             Scheme and Functional Programming},
       pages 21--32, Snowbird, Utah, September 2004.
    

    Scheme 2004 proceedings

    Olin Shivers and Oscar Waddell, editors.
    \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. 
    S.~Alexander Spoon and Olin Shivers. 
    In \emph{Proceedings of the $18^{\mathrm th}$ European Conference on 
             Object-Oriented Programming}, 
       pages 51--74, Oslo, Norway, June 2004.
       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.
    Olin Shivers.
    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.
    \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

    Olin Shivers, editor.
    \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.
    Olin Shivers.
    Available at URL \url{http://srfi.schemers.org/srfi-33}, 2002.
    

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

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

    SRFI 14: Character-set library
    (txt)

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

    SRFI 13: String libraries
    (txt)

    SRFI 13: String libraries
    Olin Shivers.
    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.
    Olin Shivers, James W. Clark and Roland McGrath.
    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
    Olin Shivers.
    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
    Olin Shivers.
    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.
    Olin Shivers.
    Available at URL \url{http://www.cc.gatech.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.
    Bryan Ford, Godmar Back, Greg Benson, Jay Lepreau, 
        Albert Lin and Olin Shivers.
    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.
    Olin Shivers.
    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.
    Olin Shivers.
    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.''
    Olin Shivers.
    In \emph{Concurrency and Parallelism, Programming, Networking, and Security,}
        Lecture Notes in Computer Science \#1179, pages 254--265,
        Editors Joxan Jaffar and Roland H.~C.~Yap, 
        1996, Springer.
    

    Supporting dynamic languages on the Java virtual machine
    (dvi) ( PostScript)
    Supporting dynamic languages on the Java virtual machine.
    Olin Shivers.
    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.
    Olin Shivers.
    \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.}
    Olin Shivers and Brian Carlstrom.
    Release 0.3, December 25, 1994.
      MIT Laboratory for Computer Science.
    Current version available at URL \url|http://scsh.net|.
    
    \emph{The scsh manual.}
    Olin Shivers, Brian Carlstrom, Martin Gasbichler, and Mike Sperber.
    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.
    Olin Shivers.
    Personal Information Architecture Note 1 (December 1, 1993),
      MIT Laboratory for Computer Science. 
    

    Useless-variable elimination
    Useless-variable elimination.
    Olin Shivers.
    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.Z) ( GT link) is available as working note, with the following citation:
    Useless-variable elimination.
    Olin Shivers.
    Scheme Flow-analysis Working Note \#2 (April 27, 1990),
      CMU School of Computer Science.
    Also available via anonymous ftp as URL
      \url|ftp://ftp.cs.cmu.edu/afs%2Fcs.cmu.edu%2Fuser%2Fshivers%2Flib%2Fpapers/useless.ps.Z|.)
    

    The semantics of Scheme control-flow analysis.
    ( dvi.z) (GT link)

    The semantics of Scheme control-flow analysis.
    Olin Shivers.
    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.z) (pdf @ NEU)

    My dissertation.

    \emph{Control-Flow Analysis of Higher-Order Languages.}
    Olin Shivers.
    Ph.D. dissertation, Carnegie Mellon University, May 1991.
      Technical Report CMU-CS-91-145, School of Computer Science.
    (Also available via anonymous ftp as URL 
      \url|ftp://ftp.cs.cmu.edu/afs%2Fcs.cmu.edu%2Fuser%2Fshivers%2Flib%2Fpapers/diss.ps.Z|.)
    

    Data-flow analysis and type recovery in Scheme.
    ( .dvi.Z) ( GT link)

    The title page is stored separately. ( dvi.Z) ( GT link)

    Data-flow analysis and type recovery in Scheme.
    Olin Shivers.
    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.
        Available via anonymous ftp as URL
        \url|ftp://ftp.cs.cmu.edu/afs%2Fcs.cmu.edu%2Fuser%2Fshivers%2Flib%2Fpapers/trec.ps.Z|
        and \texttt{\ldots/trec-title.ps.Z}.)
    
    

    CPS data-flow analysis example
    ( .dvi.Z) ( GT link)
    CPS data-flow analysis example.
    Olin Shivers.
    Scheme Flow-analysis Working Note \#1 (May 1, 1990),
        CMU School of Computer Science.
    Also available via anonymous ftp as URL
        \url|ftp://ftp.cs.cmu.edu/afs%2Fcs.cmu.edu%2Fuser%2Fshivers%2Flib%2Fpapers/flowex.ps.Z|.)
    
    

    Super-beta: Copy, constant, and lambda propagation in Scheme
    ( .dvi.Z) ( GT link)
    Super-$\beta$: Copy, constant, and lambda propagation in Scheme.
    Olin Shivers.
    Scheme Flow-analysis Working Note \#3 (May 1, 1990),
      CMU School of Computer Science.
    Also available via anonymous ftp as URL
      \url|ftp://ftp.cs.cmu.edu/afs%2Fcs.cmu.edu%2Fuser%2Fshivers%2Flib%2Fpapers/superbeta.ps.Z|.)
    

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

    Control-flow analysis in Scheme.
    ( GT link)
    Control-flow analysis in Scheme.
    Olin Shivers.
    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, and
      via anonymous ftp as URL
      \url|ftp://ftp.cs.cmu.edu/afs%2Fcs.cmu.edu%2Fuser%2Fshivers%2Flib%2Fpapers/pldi88.ps.Z|.)
    

    Varieties of learning in Soar: 1987
    Varieties of learning in Soar: 1987.
    David Steier, \emph{et al.}
    In \emph{Proceedings of the Fourth International Workshop on Machine Learning},
        pages 300--311, Pat Langley (editor), Los Altos, California, June 1987,
        Morgan Kaufmann.
    

    Modelling cryptarithmetic puzzle solving for subject S3 of Human Problem Solving
    Modelling cryptarithmetic puzzle solving for subject S3 of
        \emph{Human Problem Solving}.
    Olin Shivers.
    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.
    Olin Shivers.
    In \emph{Proceedings of the Soar Fall 86 Workshop}, November 22, 1986.