All publications
2012[top]
2011[top]
A Theory of Substructural Types and Control [download]
Proc 26th ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA'11) pp. 625-642
Practical Affine Types [download]
Proc. 38th Symposium on Principles of Programming Languages (POPL'11) pp. 447-458
Pushdown Flow Analysis of First-Class Control [PDF] [slides]
International Conference on Functional Programming (ICFP)
CFA2: a Context-Free Approach to Control-Flow Analysis [PDF]
Logical Methods in Computer Science (LMCS), 7(2:3):1-39
Ordering Multiple Continuations on the Stack [PDF] [slides]
Partial Evaluation and Program Manipulation (PEPM)
A Family of Abstract Interpretations for Static Analysis of Concurrent Higher-Order Programs [PDF]
The 18th International Static Analysis Symposium
2010[top]
Stateful Contracts for Affine Types [download]
Proc. 19th European Symposium on Programming (ESOP'10) vol. 6012 pp. 550-569
CFA2: a Context-Free Approach to Control-Flow Analysis [PDF] [slides]
European Symposium on Programming (ESOP)
A Functional Approach to Generic Programming using Adaptive Traversals [PDF]
Higher-Order and Symbolic Computation. Festschrift for Mitch Wand.
Pushdown Control-Flow Analysis of Higher-Order Programs [PDF]
Scheme and Functional Programming Workshop
2009[top]
The Higher-Order Aggregate Update Problem [PDF]
Verification, Model Checking, and Abstract Interpretation, 10th International Conference vol. 5403 pp. 44-58
The Complexity of Flow Analysis in Higher-Order Languages [PDF]
PhD dissertation, Brandeis University
2008[top]
A Compositional Trace Semantics for Orc [PDF]
Coordination Models and Languages: 10th International Conference, COORDINATION 2008, Oslo, Norway, June 4-6, 2008 vol. 5052 pp. 331-346
Variable-Arity Generic Interfaces [PDF]
(tech report) Northeastern University College of Computer and Information Science no. NU-CCIS-08-01
Haskell Session Types with (Almost) No Class [download]
Proc. 1st ACM SIGPLAN Symposium on Haskell (Haskell'08) pp. 25-36
A Theory of Hygienic Macros [PDF]
Programming Languages and Systems 17th European Symposium on Programming, ESOP 2008, Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2008, Budapest, Hungary, March 29-April 6, 2008. vol. 4960 pp. 48-62
Caml-Shcaml: An OCaml Library for Unix Shell Programming [download]
Proc. 2008 ACM SIGPLAN workshop on ML (ML'08) pp. 79-90
Much Ado about Nothing: Putting Java's Null in its Place [PDF]
(PhD. thesis) at Northeastern University
2007[top]
On the Correctness of the Krivine Machine [PS]
Higher-Order and Symbolic Computation no. 3 vol. 20 pp. 231-236
Status Report: Specifying JavaScript with ML [PDF]
ML '07: Proceedings of the 2007 Workshop on ML pp. 47--52
Functional Pearl: The Great Escape. Or, How to Jump the Border Without Getting Caught [PDF]
ICFP '07: Proceedings of the Twelfth ACM SIGPLAN International Conference on Functional Programming pp. 157--164
Space-Efficient Gradual Typing [PDF]
TFP '07: The Eighth Symposium on Trends in Functional Programming pp. 404--419
Adding Delimited and Composable Control to a Production Programming Environment [PDF]
International Conference on Functional Programming
Implementation and Use of the PLT Scheme Web Server [PDF]
Journal of Higher-Order and Symbolic Computing
Relating Complexity and Precision in Control Flow Analysis [PDF] [ACM]
International Conference on Functional Programming
2006[top]
Small Bisimulations for Reasoning About Higher-Order Imperative Programs [PDF]
Proceedings 33rd ACM Symposium on Programming Languages pp. 141-152
Environmental Acquisition Revisited [PDF]
(tech report) Northeastern University College of Computer and Information Science no. NU-CCIS-06-10
Design of Class Hierarchies: An Introduction to OO Program Design [PDF]
ACM Special Interest Group on Computer Science Education
2005[top]
Bottom-up beta-reduction: uplinks and lambda-DAGs [PDF]
Programming Languages and Systems: 14th European Symposium on Programming, ESOP 2005, Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2005, Edinburgh, UK, April 4-8, 2005. Proceedings vol. 3444
Selectors Make Analyzing Case-Lambda Too Hard [PDF]
Higher-Order and Symbolic Computation no. 3-4 vol. 18 pp. 245-269
TeachScheme! Proceedings of the TeachScheme! Anniversary Workshop [PDF]
(proceedings) Northeastern University
Environmental acquisition revisited [PDF]
POPL '05: Proceedings of the 32nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages pp. 14--25
Continuations from Generalized Stack Inspection [PDF]
International Conference on Functional Programming
Common Larceny [PDF] [HTML slides] [MP3 of the conference presentation]
Proc. International Lisp Conference, June 2005, pages 101-107.
2004[top]
Relating Models of Backtracking [PDF]
Proc. ACM SIGPLAN International Conference on Functional Programming pp. 54--65
A Semantics for Advice and Dynamic Join Points in Aspect-Oriented Programming [PS]
TOPLAS no. 5 vol. 26 pp. 890-910
Improving the Static Analysis of Embedded Languages via Partial Evaluation [PDF] [PS]
International Conference on Functional Programming
The Essence of Compiling with Continuations (Retrospective) [PDF] [PS]
20 years of the ACM SIGPLAN Conference on Programming Language Design and Implementation: 1979 - 1999. A Selection.
Fostering Little Languages
DrDobb's
Building Little Languages with Macros
DrDobb's
A Tail-Recursive Machine with Stack Inspection [PDF]
Transactions on Programming Languages and Systems
Automatically Restructuring Software for the Web [PS] [PDF]
Journal of Automated Software Engineering
How to Read Floating Point Numbers Accurately (Retrospective) [PDF]
20 years of the ACM SIGPLAN Conference on Programming Language Design and Implementation: 1979 - 1999. A Selection., April 2004
2003[top]
Understanding Aspects (Extended Abstract) [PS]
Proc. ACM SIGPLAN International Conference on Functional Programming
CPS Transformation of Flow Information [PDF]
Journal of Functional Programming no. 5 vol. 13 pp. 905-923
Web Interactions [PDF (1.2MB)] [PS.gz (0.9 MB)]
2002[top]
A Modular, Extensible Proof Method for Small-step Flow Analyses [PS]
Programming Languages and Systems, 11th European Symposium on Programming, ESOP 2002, held as Part of the Joint European Conference on Theory and Practice of Software, ETAPS 2002, Grenoble, France, April 8-12, 2002, Proceedings vol. 2305 pp. 213-227
The SIGCSE 2001 Maze Demonstration Program [PDF] [DOC]
ACM Special Interest Group on Computer Science Education
An experimental study of renewal-older-first garbage collection [PDF]
Proceedings of the 2002 ACM International Conference on Functional Programming
2001[top]
Set Constraints for Destructive Array Update Optimization [PS]
Journal of Functional Programming no. 3 vol. 11 pp. 319-346
A Semantics for Advice and Dynamic Join Points in Aspect-Oriented Programming [PS]
Proceedings of SAIG '01
Java Power Tools:Model Software for Teaching Object-Oriented Design [PDF] [DOC]
ACM Special Interest Group on Computer Science Education
2000[top]
Programming Patterns and Design Patterns in the Introductory Computer Science Course [PDF] [DOC]
ACM Special Interest Group on Computer Science Education
1999[top]
Constraint Systems for Useless Variable Elimination [PS]
Proceedings 26th ACM Symposium on Programming Languages pp. 291-302
Continuation-Based Multiprocessing Revisited [PS]
Higher-Order and Symbolic Computation no. 3 vol. 12 pp. 283
Continuation-Based Multiprocessing [PS]
Higher-Order and Symbolic Computation no. 3 vol. 12 pp. 285-299
A Language for Specifying Recursive Traversals of Object Structures [PS]
Proceedings of the 1999 ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA`99) pp. 70-81
Trampolined Style [PS]
Proc. 1999 ACM SIGPLAN International Conference on Functional Programming pp. 18-27
Hospital Emergency Room Simulation: Object Oriented Design Issues for CS2 [PDF] [DOC]
ACM Special Interest Group on Computer Science Education
1998[top]
Set Constraints for Destructive Array Update Optimization [PS]
IEEE Proc. IEEE Conf. on Computer Languages '98 pp. 184-193
Revised Report on the Algorithmic Language Scheme
Higher-Order and Symbolic Computation no. 1 vol. 11 pp. 7-104
Traffic Simulation: A Case Study for Teaching Object-Oriented Design [PDF] [DOC]
ACM Special Interest Group on Computer Science Education
Scaling: A Design Pattern in Introductory Computer Science Courses [PDF] [DOC]
ACM Special Interest Group on Computer Science Education
Revised^5 Report on the Algorithmic Language Scheme [PS] [alternate]
Journal of Higher Order and Symbolic Computation (11(1)) pp. 7-105
Proper tail recursion and space efficiency [PS.GZ]
Proceedings of the 1998 ACM Conference on Programming Language Design and Implementation pp. 174-185
Set constraints for destructive array update optimization [PS]
Proceedings of the IEEE Computer Society International Conference on Computer Languages 1998 pp. 184-193
1997[top]
Denotational Semantics Using an Operationally-Based Term Model [PS]
Proceedings 23rd ACM Symposium on Programming Languages pp. 386-399
Lightweight Closure Conversion [PS]
ACM Transactions on Programming Languages and Systems no. 1 vol. 19 pp. 48-86
Type Inference with Non-Structural Subtyping [PS]
Formal Aspects of Computer Science vol. 9 pp. 49-67
Exploring Martian Planetary Images C++ Exercises for CS1 [PDF] [DOC]
ACM Special Interest Group on Computer Science Education
Writing Across Computer Science Curriculum [PDF] [DOC]
ACM Special Interest Group on Computer Science Education
Generational garbage collection and the radioactive decay model [PS.GZ]
Proceedings of the 1997 ACM Conference on Programming Language Design and Implementation pp. 97-108
1996[top]
Untyped Lambda-Calculus with Input-Output [PS]
Trees in Algebra and Programming: CAAP'96, Proc. 21st International Colloquium vol. 1059 pp. 317-329
Modeling Subobject-based Inheritance [PS]
Proc. European Conference on Object-Oriented Programming vol. 1098 pp. 248-274
Compiler Correctness for Concurrent Languages [PS]
Proc. Coordination '96 (Cesena, Italy) vol. 1061 pp. 231-248
1995[top]
A Little Goes a Long Way: A Simple Tool to Support Denotational Compiler-Correctness Proofs [PS]
(tech report) Northeastern University College of Computer Science no. NU-CCS-95-19
Strong Normalization with Non-structural Subtyping [DVI]
Mathematical Structures in Computer Science no. 3 vol. 5 pp. 419-430
Compiler Correctness for Parallel Languages [PS]
Functional Programming Languages and Computer Architecture pp. 120-134
The VLISP Verified PreScheme Compiler [DVI]
Lisp and Symbolic Computation no. 1/2 vol. 8 pp. 111-182
VLISP: A Verified Implementation of Scheme [DVI]
Lisp and Symbolic Computation no. 1/2 vol. 8 pp. 5--32
1994[top]
Conditional Lambda-Theories and the Verification of Static Properties of Programs [DVI]
Information and Computation no. 2 vol. 113 pp. 253-277
Tracking Available Variables for Lightweight Closures [PS]
University of Copenhagen Proceedings of Atlantique Workshop on Semantics-Based Program Manipulation pp. 63-70
Selective and Lightweight Closure Conversion [DVI]
Conf. Rec. 21th ACM Symp. on Principles of Prog. Lang. pp. 435-445
Type Inference for Objects with Instance Variables and Inheritance [DVI]
Northeastern University College of Computer Science Theoretical Aspects of Object-Oriented Programming pp. 97-120
Selective Thunkification [PS]
Static Analysis: First International Static Analysis Symposium vol. 864 pp. 162-178
From Animation to Analysis in Introductory Computer Science [PDF] [DOC]
ACM Special Interest Group on Computer Science Education
Lambda, the ultimate label, or a simple optimizing compiler for Scheme [ACM]
Proceedings of the 1994 ACM conference on LISP and Functional Programming, SIGPLAN Lisp Pointers (7(3) (July-September 1994)) pp. 128-139
Parallel destructive updating in strict functional languages [ACM]
Proceedings of the 1994 ACM conference on LISP and Functional Programming, SIGPLAN Lisp Pointers (7(3) (July-September 1994)) pp. 263-272
1993[top]
Specifying the Correctness of Binding-Time Analysis [download]
Journal of Functional Programming no. 3 vol. 3 pp. 365--387
Type Reconstruction with Recursive Types and Atomic Subtyping [DVI]
CAAP '93: 18th Colloquium on Trees in Algebra and Programming
1992[top]
Type Inference for Partial Types is Decidable [DVI]
European Symposium on Programming '92 vol. 582 pp. 408--417
Correctness of Procedure Representations in Higher-Order Assembly Language [DVI]
Proceedings Mathematical Foundations of Programming Semantics '91 vol. 598 pp. 294--311
A Verified Run-Time Structure for Pure PreScheme
(tech report) Northeastern University College of Computer Science no. NU-CCS-92-97
1991[top]
Type Inference for Record Concatenation and Multiple Inheritance [DVI]
Information and Computation vol. 93 pp. 1--15
Correctness of Static Flow Analysis in Continuation Semantics
Science of Computer Programming vol. 16 pp. 1--18
Using the Theorem Prover Isabelle-91 to Verify a Simple Proof of Compiler Correctness [DVI]
(tech report) Northeastern University College of Computer Science no. NU-CCS-91-20
Macros that work [tex.gz]
Proceedings of the 1991 ACM Conference on Principles of Programming Languages pp. 155-162
1990[top]
A Short Proof of the Lexical Addressing Algorithm [DVI]
Information Processing Letters vol. 35 pp. 1--5
How to Read Floating Point Numbers Accurately [PS]
Proceedings of the 1990 ACM Conference on Programming Language Design and Implementation pp. 92-101
1989[top]
On the Complexity of Type Inference with Coercion
Conf. on Functional Programming Languages and Computer Architecture
The Register-Closure Abstract Machine: A Machine Model to Support CPS Compiling
(tech report) Northeastern University College of Computer Science no. NU-CCS-89-24
From Interpreter to Compiler via Higher-Order Abstract Assembly Language
(tech report) Northeastern University College of Computer Science
1988[top]
1987[top]
Complete Type Inference for Simple Objects
Proc. 2nd IEEE Symposium on Logic in Computer Science pp. 37-44
Macro-by-Example: Deriving Syntactic Transformations from their Specifications [DVI]
14th pp. 77--84
Compiler Optimization for Symbolic Languages [MPEG]
49-minute video, University Video Communications, 1987. Provided online at the Internet Archive Movie Archive
