













Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
Information about Olin Shivers' educational and employment background. He received his Ph.D. in Computer Science from Carnegie Mellon University and is currently a Professor at Northeastern University. He has also worked as a Research Scientist at MIT and as a Founder and Chief Technology Officer at Smartleaf Corp. His current research interests include constructing robust, complex software artifacts.
Typology: Lecture notes
1 / 21
This page cannot be seen from the preview
Don't miss anything!














May 1991 Carnegie Mellon University Awarded Ph.D. in Computer Science. Thesis title: Control-Flow Analysis of Higher-Order Languages. Advisors: Professors Peter Lee and Allen Newell.
May 1983 Yale University Awarded B.S. with double major in Computer Science and Mathematics.
2014–present Northeastern University Professor, College of Computer and Information Science.
Fall 2006–2014 Northeastern University Associate professor, College of Computer and Information Science. Granted tenure 2006.
Fall 1999–2006 Georgia Institute of Technology Associate Professor, College of Computing. Granted tenure 2006.
Fall 2004 University of ˚Arhus, Denmark Visiting professor, on leave from Georgia Tech. Taught 60-student undergraduate course, collaborated with research colleagues.
Summer 1999–Summer 2001 Smartleaf Corp. Founder and Chief Technology Officer
Directed creation of first three generations of Smartleaf’s portfolio-optimization software and rollout of server facility, using dynamic languages to reduce development time for critical components of system. The company’s clients are currently managing $50B of assets with Smartleaf technology.
1999–2000 ArsDigita Founder and software engineer
Developed database-backed Web server infrastructure. ArsDigita constructed large, database-backed Web services for clients such as Levi Strauss, Hewlett-Packard, the Environmental Defense Fund and Siemens AG. In 2000, when the founders sold the company, ArsDigita had 80 employees and an annual revenue of 20M$.
Fall 1993–Spring 1999 MIT Research Scientist, Express project and PIA group.
Co-founded Personal Information Architecture group (joint LCS/Media Lab group); project leader of Express Project in the AI Lab.
Supervised group’s doctoral and master’s students. Principal author and PI or co-PI of the two DARPA contracts and one NSF grant that funded the Express Project. Express is concerned with the interaction between operating systems, advanced programming languages, compilers, and formal semantics. Our principal research vehicle is ML/OS, an implementation of SML that runs on a bare processor with no OS support.
1992–Summer 1993 University of Hong Kong Member of the faculty, Computer Science Department.
Fall 1991 AT&T Bell Labs Post-doc in language research with David MacQueen’s Software Principles group.
Summer 1986 Information Technology Center, CMU Ported Orbit Scheme compiler to the IBM ROMP processor.
Summer 1985 Centre Mondial Informatique et Ressource Humaine, Paris Designed and implemented object-oriented 3D-graphics system.
Summer 1984 DEC Western Research Lab Member of Jonathan Rees’s T group. The group designed and implemented version 3 of the Scheme dialect T, and its optimising compiler, ORBIT. Worked on flow analysis, language design, runtime internals, and the linker.
Summer 1982 MIT AI Lab Worked for Prof. Randy Davis’ Hardware Troubleshooting project. Wrote constraint compiler for DPL implementation language. Designed language extensions. Systems/language work on the Lisp programming environment.
My principal research interests are
Spring 1986 Carnegie Mellon University Taught Introduction to Lisp undergraduate course. Had sole responsibility for course: wrote and gave all lectures, wrote and graded all assignments and programming projects, assigned final grades. Received outstanding student evaluations.
CS 2500: Fundamentals of Computer Science 1 – honors New “honors” track for freshman. Covers standard material at double pace, then spends second half of semester exploring advanced concepts in greater depth: interpreters, syntax and semantics, little languages, lambda calculus, stream processing.
2004 CS3240: Languages & computation New required undergraduate course; approved Spring 2004.
2003 Applied semantics of programming languages New graduate course at Georgia Tech.
The following list shows the students I’ve advised, along with the time spent as my advisee, and the title of the student’s finished thesis or dissertation.
Doctoral students: Andrew Cobb, 2014–present Alex Marquez, 2012–2013. Jonathan Schuster, 2011–present. Justin Slepak, 2011–present. Ian Johnson, 2011–2015. Tony Garnock-Jones, 2011–2012. Dimitris Vardoulakis, 2008–2012, CFA2: A Context-free Approach to Control-flow Analysis. David Fisher, 2002–2010, Ziggurat: Adding Static Semantics to Macros. Mathew Might, 2002–2007, Environment Analysis of Higher-order Languages. David Zurow, 2003–2007. Alexander Spoon, 2000–2005, Demand-driven Type Inference with Subgoal Pruning. Kostas Arkoudas, 1996–2000, Denotational Proof Languages.
Masters students: Zane Shelby. Fall 2009–Spring 2010. Optimising CPS conversion. Derek Coetzee. Spring 2003. Independent study in type theory. Andrew Hilton. Summer 2003–present. Project: Certified program analysis. Brett Lucey. Spring 2003. Project: Analysis and optimisation of push-down automata. Ilya Bagrak. Fall 2003–present. Project: Matching regular trees. Steven Strickland, Summer 2002–present. Thesis: Bottom-up β-reduction. Matthew Might and David Egers. Spring 2003. Project: Call-strings and higher-order control-flow analysis in CPS. Brian Carlstrom, 1999–2000. Thesis: Embedding Scheme in Java. Ravi Nanavati, 2000. Thesis: Extensible syntax in the presence of static analysis. James Clark, 1998–2000. Thesis: Fine-grain interrupts and atomic heap transactions. Alexander Vladimirov, 1996–1998. Thesis: Using FoxNet for TCP/IP Networking in ML/OS. Albert Lin, 1996–1998. Thesis: Concurrency in ML/OS.
Undergraduate students: Milo Davis, William Meehan, Summer 2015–present, No-brainer CPS conversion.
Control-Flow Analysis of Higher-Order Languages. I develop techniques for analysing the control-flow structure of languages with first-class proce- dures and side-effects, such as Scheme or ML. I use the method of non-standard abstract semantic interpretations on a CPS intermediate representation. In the dissertation I (1) develop the control- flow analysis, (2) prove formal properties of the analysis, (3) develop several program optimisations based on the analysis (e.g., induction variable elimination, type recovery), and (4) demonstrate a working implementation of the analysis and optimisation algorithms.
This dissertation was nominated for the 1991 ACM Distinguished Dissertation Prize, and has defined the vocabulary of subsequent inquiry in the area.
Modular Rollback through Control Logging. Olin Shivers, Aaron Turon, and Conor McBride. Invited for submission to Higher-order and Symbolic Computation. Submitted.
Higher-order Flow Analysis with DDP. Olin Shivers, Alexander Spoon and Dimitris Vardoulakis. Invited for submission to Higher-order and Symbolic Computation, special issue in honor of Mitchell Wand. In preparation.
CFA2: A Context-free Approach to Control-flow Analysis. Dimitrios Vardoulakis and Olin Shivers. Logical Methods in Computer Science, In Logical Methods in Computer Science, 7(2:3) pages 1–39, 2011.
Bottom-up β-reduction: Uplinks and λ-DAGs. Olin Shivers and Mitch Wand. Fundamenta Informaticae, 103(1–4) pages 247–287, 2010, special issue in honor of Jurek Tiuryn.
Building language towers with Ziggurat. David Fisher and Olin Shivers. Journal of Functional Programming, 18(5-6):707–780, May/June 2008.
Exploiting reachability and cardinality in higher-order flow analysis. Matthew Might and Olin Shivers. Journal of Functional Programming, 18(5-6):821–864 (2008).
Analysing the environment structure of higher-order languages using frame strings. Matthew Might and Olin Shivers. Theoretical Computer Science, 375(1–3) pages 137–168, May 2007.
Multi-return function call. Olin Shivers and David Fisher. Journal of Functional Programming, 16(4) pages 547–582, July/September 2006.
A Scheme shell. Olin Shivers. Lisp and Symbolic Computation. (to appear).
Data-flow analysis and type recovery in Scheme. Chapter 3 of Topics in Advanced Language Implementation, ed. Peter Lee, MIT Press, 1991.
Justin Slepak, Olin Shivers and Panagiotis Manolios. An array-oriented language with static rank polymorphism. In Proceedings of the 23rd European Symposium on Programming (ESOP’14), Grenoble, France, April 2014. Lecture Notes in Computer Science, volume 8410, Springer.
Andr´e DeHon, et al. Preliminary design of the SAFE platform. In Proceedings of the 6th Workshop on Programming Languages and Operating Systems (PLOS’11), Cascais, Portugal, October 2011.
Pushdown flow analysis of first-class control. Dimitrios Vardoulakis and Olin Shivers. In Proceedings of the Sixteenth ACM SIGPLAN International Conference on Functional Program- ming (ICFP ’11), Tokyo, September, 2011.
Modular rollback through control logging: a pair of twin functional pearls. Olin Shivers and Aaron Turon. Control to correct: a recipe for robustness. In Proceedings of the Sixteenth ACM SIGPLAN International Conference on Functional Program- ming (ICFP ’11), Tokyo, September, 2011.
Ordering multiple continuations on the stack. Dimitrios Vardoulakis and Olin Shivers. In Proceedings of the 2011 ACM SIGPLAN Workshop on Partial Evaluation and Program Manipu- lation (PEPM 2011), pages 13–22, Austin, Texas, January 2011.
CFA2: A context-free approach to control-flow analysis. Dimitris Vardoulakis and Olin Shivers. In Proceedings of the 19th European Symposium on Programming (ESOP 2010), Paphos, Cyprus, March 2010. Springer Lecture Notes in Computer Science 6012.
Trusted Theorem Proving: A Case Study in SLD-Resolution. Konstantine Arkoudas and Olin Shivers. In Proceeding of the Third International Symposium on Leveraging Applications of Formal Methods, Verification and Validation (ISoLA 2008), Greece, October 2008.
Model checking via CFA.
trx: Regular-tree expressions, now in Scheme. Ilya Bagrak and Olin Shivers. In Proceedings of the 2004 Workshop on Scheme and Functional Programming, September 2004.
Demand-driven type inference with subgoal pruning: trading precision for scalability. S. Alexander Spoon and Olin Shivers. In Proceedings of the 18 th^ European Conference on Object-Oriented Programming, June 2004.
Higher-order control-flow analysis in retrospect: Lessons learned, lessons abandoned. Olin Shivers. In 20 Years of the ACM/SIGPLAN Conference on Programming Language Design and Implementa- tion (1979–1999): A Selection, April 2004.
Atomic heap transactions and fine-grain interrupts. Olin Shivers, James W. Clark and Roland McGrath. In Proceedings of the 1999 ACM International Conference on Functional Programming (ICFP), September, 1999, Paris, France.
The Flux OSKit: A substrate for kernel and language research. Bryan Ford, Godmar Back, Greg Benson, Jay Lepreau, Albert Lin and Olin Shivers. In Proceedings of the Sixteenth ACM Symposium on Operating Systems Principles (SOSP-16), Oc- tober 1997, Saint-Malo, France.
Automatic management of operating-system resources. In Proceedings of the Second ACM SIGPLAN International Conference on Functional Programming (ICFP ’97), June 1997, Amsterdam.
Continuations and threads: Expressing machine concurrency directly in advanced languages. In Proceedings of the Second ACM SIGPLAN Workshop on Continuations, January 1997, Paris. Also available as BRICS Notes Series NS-96-13, University of ˚Arhus, Denmark.
A universal scripting framework. In Concurrency and Parallelism, Programming, Networking, and Security, Lecture Notes in Com- puter Science #1179, pages 254–265, Editors Joxan Jaffar and Roland H. C. Yap, 1996, Springer.
Supporting dynamic languages on the Java virtual machine. In Proceedings of the Dynamic Objects Workshop, May 1996, Boston. Also available as technical report AIM-1576, MIT Artificial Intelligence Laboratory.
Useless-variable elimination. In Proceedings of the Workshop on Static Analysis of Equational, Functional and Logic Programs (JTASPEFL’91), pages 197–201, October 1991, Rennes, France. Published as Bigre vol. 74, Atelier Irisa, IRISA Campus de Beaulieu.
The semantics of Scheme control-flow analysis. In Proceedings of the First ACM SIGPLAN and IFIP Symposium on Partial Evaluation and Semantics-Based Program Manipulation, June 1991. Published as 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, Pitts- burgh, Penn.)
Control-flow analysis in Scheme. In Proceedings of the SIGPLAN ’88 Conference on Programming Language Design and Implemen- tation, June 1988. (Also available as Technical Report ERGO-88-60, CMU School of Computer Science, Pittsburgh,
Penn.)
Varieties of learning in Soar: 1987. D Steier, G. Yost, J. Laird, A. Newell, P. Rosenbloom, R. Flynn, A. Golding, T. Polk, O. Shivers, A. Unruh. In Proceedings of the Fourth International Workshop on Machine Learning, Pat Langley (editor), Morgan Kaufmann, June 1987.
Constraint satisfaction and problem-space structure in Soar. In Proceedings of the Fifth Soar Workshop, September 17, 1988.
Modelling cryptarithmetic puzzle solving for subject S3 of Human Problem Solving. In Proceedings of the Soar Spring 87 Workshop, June 20, 1987.
Constraint propagation and macro-compilation in Soar. In Proceedings of the Soar Fall 86 Workshop, November 22, 1986.
2015 ACM SIGPLAN Scheme Workshop Keynote address, “An introduction to rank polymorphism.”
2011 Brandeis Distinguished lecture, “Higher-order flow analysis.”
2010 University of Montreal Keynote talk, “Prompt reading and effect logging.” Workshop on Scheme and Functional Programmming.
2009 MIT Invited talk, “The anatomy of a loop: a story of scope and control.”
F.4 Published papers (non-refereed)
Why teach programming languages. Olin Shivers. Invited white paper for 2008 SIGPLAN Workshop on Programming Language Curriculum, May
SIGPLAN Notices 43(11) pages 130-132, November 2008.
Bottom-up β-reduction: uplinks and λ-DAGs (extended version). Olin Shivers and Mitchell Wand. Technical Report BRICS RS-04-38, DAIMI, Department of Computer Science, University of ˚Arhus, December 2004.
SRFIs (Scheme Requests For Implementation) are the current mechanism by which standards are produced for the Scheme language. I have been responsible for the development of five of these, including the core libraries for list- and string-processing. I am the primary designer and sole au- thor of the final standards, which comprise about half a million characters of text and 7900 lines of supporting reference source code. SRFIs are not “refereed” publications, being standards specifica- tions; the SRFI process, however, includes public review and an assigned editor. The standards can be accessed at http://srfi.schemers.org. SRFI Title Date SRFI-33 Integer Bitwise-operation library 2002/7/ SRFI-32 Sort libraries 2002/7/ SRFI-14 Character-set library 2000/12/ SRFI-13 String library 2000/12/ SRFI-1 List library 1999/10/
The SRE regular-expression notation. August, 1998, MIT AI Lab. Available at URL http://www.ai.mit.edu/˜shivers/sre. txt.
The scsh manual. Olin Shivers and Brian Carlstrom. November 1995, scsh release 0.4. MIT Laboratory for Com- puter Science. Also available as URL ftp://www-swiss.ai.mit.edu/pub/su/scsh/ scsh-manual.ps.
BodyTalk and the BodyNet: A personal information infrastructure. Personal Information Architecture Note 1 (December 1, 1993), MIT Laboratory for Computer Sci- ence.
G.1 Funded
Date Agency Title Amount
2015 NSF Specification and Verification of Actor Protocols $500k (submitted)
2013 DARPA Probabalistic Programming Languages (PPAML program; joint with BAE and Tufts)
2013 Cisco Programming languages for networking $150k
2012 Cisco Programming languages for networking $200k
2010 DARPA Gnosys: Raising the level of discourse in programming systems (CRASH program; joint with University of Utah)
2010 DARPA SAFE: A Semantically Aware Foundation Environment for CRASH (CRASH program; joint with BAE, Harvard, UPenn)
2009 NSF Collaborative: Language Towers as Design Frameworks (continuing)
$133k
2008 NSF SoD: Collaborative: Language Towers as Design Frame- works (continuing)
$133k
2004 NSF Language towers as design frameworks (PI, with Matthew Flatt and Panagiotis Manolios)
$450k
2004 NSF Integrating functional computer-aided reasoning into the Computer-Science curriculum (co-PI, with Panagiotis Manolios and J Strother Moore)
$335k
2003 Microsoft Faculty support grant $30k
1998 IBM Faculty support grant $40k
1997 ARPA Dynamic domain architectures (co-PI, with Howard Shrobe)
1996 NSF Programming-language structures for representing and optimizing operating-system resources (PI)
$350k
1995 ARPA Express: A programming environment for evolutionary software development (PI)
$350k
Date Agency Title Amount 1997 ARPA Computational Video for Collaborative Applications (with David Gifford)
A.1 Memberships and activities in professional societies
September 1999–present IFIP WG2.8 Working Group on Functional Programming Languages.
A.2 Conference committee activites
Date Committee Role Organisation 2016 Program Member International Conference on Functional Programming (ICFP) 2013 Program Member Practical Aspects of Declarative Languages (PADL) 2013 Program & Steering Member European Lisp Symposium (ELS 2013) 2012 Program Member Functional and Logic Programming (FLOPS) 2012 2010 Program Member Code Generation and Optimization (CGO) 2009 External Review Member Programming Language Design and Imple- mentation (PLDI) 2008 Steering Member SIGPLAN Workshop on Undergraduate Programming Curricula 2008 Program Member Symposium on Trends in Functional Pro- gramming (TFP) 2007 Program Member Symposium on Trends in Functional Pro- gramming (TFP) 2007 Program Member European Conference on Object-oriented Programming (ECOOP) 2007 Program Member ACM SIGPLAN Symposium on Principles of Programming Languages 2004 Program Co-chairman Scheme Workshop 2003 Program Chairman ACM SIGPLAN International Conference on Functional Programming 2003 Program Member ACM SIGPLAN International Conference on Generative Programming and Compo- nent Engineering 2002–2006 Steering Member ACM SIGPLAN International Conference on Functional Programming 2000–present Steering Member Scheme Workshop 2002 Program Member Lightweight Languages Workshop 2002 Program Chairman ACM SIGPLAN Scheme2002 Workshop 2002 Steering Member ACM SIGPLAN Scheme2002 Workshop 2002 Program Member ACM SIGPLAN International Conference on Functional Programming 2001 Program Member ACM SIGPLAN Continuations Workshop 2000 Program Member ACM SIGPLAN Scheme Workshop 1996–2000 Steering Member ACM SIGPLAN International Conference on Functional Programming 1995 Program Member ACM SIGPLAN International Conference on Functional Programming
Felix Klock, 2008–2011. Advisor: Will Clinger. Dissertation title: Bounded-Latency Generational Garbage Collection
David Herman, 2006–2010. Advisor: Mitch Wand. Dissertation title: A Theory of Typed Hygienic Macros
Ryan Culpepper, 2007–2010. Advisor: Matthias Felleisen. Dissertation title: Taming Macros
Sam Tobin-Hochstadt, 2007–2010. Advisor: Matthias Felleisen. Dissertation title: Typed Scheme: Bringing Types to Untyped Languages
Richard Cobbe, 2007–2009. Advisor: Matthias Felleisen. Dissertation title: Putting Java’s Null in its Place
Mads Sig Ager, 2004–2006. Advisor: Olivier Danvy (University of Aarhus). Dissertation title: Partial Evaluation of String Matchers and Constructions of Abstract Machines
Galen Swint, 2005–present. Advisor: Calton Pu. Dissertation title: Clearwater: Extensible, Flexible and Modular Code Generation of Infopipes
Wei Han, Georgia Tech, 2004. Advisor: Ling Liu. Dissertation title: Wrapper Application Generation for the Semantic Web: An XWRAP Approach
Brian MacNamara, Georgia Tech, 2004. Advisor: Yannis Smaragdakis. Dissertation title: Multi-paradigm programming
Donglin Liang, Georgia Tech, 1999–2002. Advisor: Mary Jean Harrold. Dissertation title: Developing Practical Program Analyses for Programs with Pointers
Daniel Damian, University of ˚Arhus, defended August 2001. Advisor: Olivier Danvy. Dissertation title: On Static and Dynamic Control-Flow Information in Program Analysis and Trans- formation
Joanna Bryson, MIT Artificial Intelligence Lab, defended April 2001. Advisor: Lynn Stein. Dissertation title: Intelligence by design
Dominique Boucher, University of Montreal, defended December, 1999. Advisor: Marc Feeley. Dissertation title: Analyse et optimisation globales de modules compil´es s´epar´ement `a l’´edition des liens
Summer 2005–2015 Blindsight Corp. Advisory board. Blindsight develops assistive technology for blind and visually impaired persons. The company was acquired by Amazon in 2015.
Fall 2000–present Smartleaf, Inc. Technical oversight; advisor to CTO.
1999–2000 ArsDigita Technical consultant and advisor to chairman.
1992–1997 Perot Systems Advisor to Morton H. Meyerson, company chairman.
1997 Flash Communications Technical oversight; business strategy; raised all investment capital. Flash developed scalable instant-message services. Company purchased by Microsoft one year after founding; Microsoft’s IM system is based on Flash technology.
April 2013 National Science Foundation December 2011 National Science Foundation December 2003 NSERC (Canada) May 2003 National Science Foundation January 2001 National Science Foundation
“Portfolio Management System.” Gerard Michael, Olin Shivers, Eugene Sorets, Mark Linker, Daniel Rie. US Utility Application #09/891,045, June 25, 2001,
September 2009-present Higher-order and Symbolic Computation Co-editor of special issue dedicated to Mitchell Wand.
2001–2004 Journal of Functional Programming Editorial board.
November 2006–2007 Transactions on Programming Languages and Systems Editorial board.
2005 Higher-order and Symbolic Computation Co-editor of special issue on the Scheme programming language, issue 18(3/4).