To appear in J. Functional Programming 1 Slideshow: Functional Presentations (2010)
Robert Bruce Findler, Matthew Flatt
Among systems for creating slide presentations, the dominant ones offer essentially no abstraction capability. Slideshow represents our effort over the last several years to build an...
A Functional I/O System ∗ or, Fun for Freshman Kids (2010)
Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Shriram Krishnamurthi
Functional programming languages ought to play a central role in mathematics education for middle schools (age range: 10–14). After all, functional programming is a form of algebra and programming...
Scribble: Closing the Book on Ad Hoc Documentation Tools (2010)
Matthew Flatt, Eli Barzilay, Robert Bruce Findler
Scribble is a system for writing library documentation, user guides, and tutorials. It builds on PLT Scheme’s technology for language extension, and at its heart is a new approach to connecting...
Robby Findler, Michael Sperber, R. Kent Dybvig, Matthew Flatt, Anton Van Straaten, Jacob Matthews
Programming languages should be designed not by piling feature on top of feature, but by removing the weaknesses and restrictions that make additional features appear necessary. Scheme demonstrates...
Matthew Flatt, Robert Bruce, Findler Shriram, Krishnamurthi Matthias Felleisen
The MrEd virtual machine serves both as the implementation platform for the DrScheme programming environment, and as the underlying Scheme engine for executing expressions and programs entered into...
Abstract Lexer and Parser Generators in Scheme (2009)
The implementation of a basic LEX-style lexer generator or YACCstyle parser generator requires only textbook knowledge. The implementation of practical and useful generators that cooperate well with...
Abstract Catching Bugs in the Web of Program Invariants (2008)
Cormac Flanagan, Matthew Flatt, Shriram Krishnamurthi, Stephanie Weirich, Matthias Felleisen
MrSpidey is a user-friendly, interactive static debugger for Scheme. A static debugger supplements the standard debugger by analyzing the program and pinpointing those program operations that may...
A Framework for Modular Linking in OO Languages (2008)
Sean Mcdirmid, Wilson C. Hsieh, Matthew Flatt
Abstract. The successful assembly of large programs out of software components depends on modular reasoning. When the linking of component code is modular, components can be compiled and type checked...
Abstract Semantic Casts Contracts and Structural Subtyping in a Nominal World (2008)
Robert Bruce Findler, Matthew Flatt, Matthias Felleisen
Nominal subtyping forces programmers to explicitly state all of the subtyping relationships in the program. This limits component reuse, because programmers cannot anticipate all of the contexts in...
To appear in J. Functional Programming 1 Slideshow: Functional Presentations (2008)
Robert Bruce Findler, Matthew Flatt
Among systems for creating slide presentations, the dominant ones offer essentially no abstraction capability. Slideshow represents our effort over the last several years to build an...
Abstract Knit: Component Composition for Systems Software (2008)
Alastair Reid, Matthew Flatt, Leigh Stoller, Jay Lepreau, Eric Eide
Knit is a new component definition and linking language for systems code. Knit helps make C code more understandable and reusable by third parties, helps eliminate much of the performance overhead of...
Robert Bruce Findler, Matthew Flatt
Among systems for creating slide presentations, the dominant ones offer essentially no abstraction capability. Slideshow represents our effort over the last several years to build an...
Robert Bruce Findler, John Clements, Cormac Flanagan, Matthew Flatt, Shriram Krishnamurthi, Paul Steckler
DrScheme is a programming environment for Scheme. It fully integrates a graphics-enriched editor, a parser for multiple variants of Scheme, a functional read-eval-print loop, and an algebraic...
Kathryn E. Gray, Matthew Flatt
Our experimental compiler translates Java to PLT Scheme; it enables
Matthew Flatt, Jack Grammar, Mzc Interp
Macros extend the language without extending the tool chain Jack (YACC for Java) requires a new tool chain:
Abstract Lexer and Parser Generators in Scheme (2008)
The implementation of a basic LEX-style lexer generator or YACCstyle parser generator requires only textbook knowledge. The implementation of practical and useful generators that cooperate well with...
Original in Formal Syntax and Semantics of Java, LNCS volume 1523 (1999) (2008)
Matthew Flatt, Shriram Krishnamurthi, Matthias Felleisen
Abstract. While class-based object-oriented programming languages provide a flexible mechanism for re-using and managing related pieces of code, they typically lack linguistic facilities for...
Abstract Lexer and Parser Generators in Scheme (2008)
The implementation of a basic LEX-style lexer generator or YACCstyle parser generator requires only textbook knowledge. The implementation of practical and useful generators that cooperate well with...
Abstract Catching Bugs in the Web of Program Invariants (2008)
Cormac Flanagan, Matthew Flatt, Shriram Krishnamurthi, Stephanie Weirich, Matthias Felleisen
MrSpidey is a user-friendly, interactive static debugger for Scheme. A static debugger supplements the standard debugger by analyzing the program and pinpointing those program operations that may...
Abstract Knit: Component Composition for Systems Software (2008)
Alastair Reid, Matthew Flatt, Leigh Stoller, Jay Lepreau, Eric Eide
Knit is a new component definition and linking language for systems code. Knit helps make C code more understandable and reusable by third parties, helps eliminate much of the performance overhead of...
– Miracle Max in The Princess Bride (2008)
it just so happens that your friend here is only mostly dead.
General Terms Languages (2008)
Robert Bruce Findler, Matthew Flatt
Among slide-presentation systems, the dominant application offers essentially no abstraction capability. Slideshow, an extension of PLT Scheme, represents our effort over the last several years to...
Abstract The DrScheme Project: An Overview (2008)
Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Shriram Krishnamurthi
DrScheme provides a graphical user interface for editing and interactively evaluating Scheme programs on all major graphical platforms (Windows 95/nt, MacOs, Unix/X). The environment is especially...
Programming Paradigms, Concepts, Concurrency (2008)
Peter Van Roy (moder, Joe Armstrong, Matthew Flatt, Boris Magnusson
The purpose of this panel is to confront the wide variety of opinions on the role of language paradigms in teaching programming. We have selected four divergent opinions: • Armstrong says that...
Abstract Semantic Casts Contracts and Structural Subtyping in a Nominal World (2008)
Robert Bruce Findler, Matthew Flatt, Matthias Felleisen
Nominal subtyping forces programmers to explicitly state all of the subtyping relationships in the program. This limits component reuse, because programmers cannot anticipate all of the contexts in...
Matthew Flatt, Robert Bruce, Findler Shriram, Krishnamurthi Matthias Felleisen
The MrEd virtual machine serves both as the implementation platform for the DrScheme programming environment, and as the underlying Scheme engine for executing expressions and programs entered into...
Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Shriram Krishnamurthi
Abstract. The TeachScheme! project aims to reform three aspects of introductory high school courses on programming. The first is a systematic program design method. The key property of the method is...
Reusable Software Components (2007)
Robert S. Cartwright, Keith D. Cooper, David M. Lane, Matthew Flatt, Matthew Flatt
Programming languages offer a variety of constructs to support code reuse. For example, functional languages provide function constructs for encapsulating expressions to be used in multiple contexts....
Abstract Knit: Component Composition for Systems Software (2007)
Alastair Reid, Matthew Flatt, Leigh Stoller, Jay Lepreau, Eric Eide
Knit is a new component definition and linking language for systems code. Knit helps make C code more understandable and reusable by third parties, helps eliminate much of the performance overhead of...
Matthias Felleisen, Robert B. Findler, Matthew Flatt, Shriram Krishnamurthi
Abstract. Nearly twenty years ago, Structure and Interpretation of Computer Programs (SICP) changed the intellectual landscape of introductory computing courses. Unfortunately, three problems---its...
Aspect Weaving as Component Knitting: Separating Concerns with Knit Abstract (2007)
Eric Eide, Alastair Reid, Matthew Flatt, Jay Lepreau
Knit is a new component specification and linking language. It was initially designed for low-level systems software, which requires especially flexible components with especially well-defined...
A Programmer's Reduction Semantics (2007)
Matthew Flatt, Shriram Krishnamurthi, Matthias Felleisen
Abstract. While class-based object-oriented programming languages provide a flexible mechanism for re-using and managing related pieces of code, they typically lack linguistic facilities for...
Matthew Cushman, Erik Selberg, Robert Findler, Eric Sedlar, Darius Clynes, Jay Gowdy, ...
PsyScope is free for non-commecial use. All rights reserved.
Toronto Ontario May, Eric Eide, Alastair Reid, Matthew Flatt, Jay Lepreau
Knit is a new component specification and linking language. It was initially designed for low-level systems software, which requires especially flexible components with especially well-defined...
Expressive Modular Linking (2007)
Sean Mcdirmid, Sean Mcdirmid, Wilson C. Hsieh, Wilson C. Hsieh, Matthew Flatt, Matthew Flatt
In this paper we show how modular linking of program fragments can be added to statically typed, object-oriented (OO) languages. Programs are being assembled out of separately developed software...
Michael Sperber, R. Kent Dybvig, Matthew Flatt, Anton Van Straaten, Richard Kelsey, William Clinger, ...
This document describes rationales for some of the design decisions behind the Revised 6 Report on the Algorithmic Language Scheme. The focus is on changes made since the last revision on the report....
Matthew Flatt, Robert Bruce Findler, John Clements, I Windowing Toolbox
Copyright notice Copyright c○1996-2007 PLT Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Library General Public License, Version 2 published by...
Michael Sperber, William Clinger, R. Kent Dybvig, Matthew Flatt, Anton Van Straaten, Richard Kelsey, ...
The report gives a defining description of the programming language Scheme. Scheme is a statically scoped and properly tail-recursive dialect of the Lisp programming language invented by Guy Lewis...
Michael Sperber, R. Kent Dybvig, Matthew Flatt, Anton Van Straaten, Richard Kelsey, William Clinger, ...
The report gives a defining description of the programming language Scheme. Scheme is a statically scoped and properly tail-recursive dialect of the Lisp programming language invented by Guy Lewis...
Scheme — Standard Libraries — (2007)
Michael Sperber, R. Kent Dybvig, Matthew Flatt, Anton Van Straaten, Richard Kelsey, William Clinger, ...
The report gives a defining description of the standard libraries of the programming language Scheme.
Abstract Adding Delimited and Composable Control to a Production Programming Environment (2007)
Matthew Flatt, Gang Yu, Robert Bruce Findler, Matthian Felleisen
Operators for delimiting control and for capturing composable continuations litter the landscape of theoretical programming language research. Numerous papers explain their advantages, how the...
Michael Sperber, William Clinger, R. Kent Dybvig, Matthew Flatt, Anton Van Straaten, Richard Kelsey, ...
The report gives a defining description of the programming language Scheme. Scheme is a statically scoped and properly tail-recursive dialect of the Lisp programming language invented by Guy Lewis...
Approved for the Major Department (2006)
Kostadin Damevski, Matthew Flatt, Gary Lindstrom, John Regehr, James Kohl, Martin Berzins, ...
committee and by majority vote has been found to be satisfactory.
Scheme with classes, mixins, and traits (2006)
Matthew Flatt, Robert Bruce Findler, Matthias Felleisen
Abstract. The Scheme language report advocates language design as the composition of a small set of orthogonal constructs, instead of a large accumulation of features. In this paper, we demonstrate...
Scheme with classes, mixins, and traits (2006)
Matthew Flatt, Robert Bruce Findler, Matthias Felleisen
Abstract. The Scheme language report advocates language design as the composition of a small set of orthogonal constructs, instead of a large accumulation of features. In this paper, we demonstrate...
Richard Cobbe, Matthias Felleisen, Stephen Bloch, Robert Findler, Kathi Fisler, Matthew Flatt, ...
The TeachScheme! Project has reached a remarkable age. Founded in 1995, it has turned 10. Over these ten years, the Project has trained close to 250 teachers and a couple of dozen college faculty....
Syntactic abstraction in component interfaces (2005)
Abstract. In this paper, we show how to combine a component system and a macro system. A component system separates the definition of a program fragment from the statements that link it, enabling...
Syntactic abstraction in component interfaces (2005)
Abstract. In this paper, we show how to combine a component system and a macro system. A component system separates the definition of a program fragment from the statements that link it, enabling...
Approved for the Major Department (2005)
Sean Mcdirmid, Matthew Flatt, Gary Lindstrom, Craig Chambers, Gail Murphy, Martin Berzins, ...
has been read by each member of the following supervisory committee and by majority vote has been found to be satisfactory.
Formalizing Shared Memory Consistency Models for Program Analysis (2004)
Yue Yang, Co-chair Gary Lindstrom, Konrad Slind, Matthew Flatt, Radu Grosu, Date Ganesh Gopalakrishnan, ...
This dissertation has been read by each member of the following supervisory committee and by majority vote has been found to be satisfactory.
Approved for the Major Department (2004)
Mac G. Newbold, G. Newbold, John Carter, Matthew Flatt, Konrad Slind, Chris R. Johnson, ...
has been read by each member of the following supervisory committee and by majority vote has been found to be satisfactory.
Approved for the Major Department (2004)
Ali Sezgin, Chair Ganesh, G. Gopalakrishnan, Allen E. Emerson, Matthew Flatt, Wilson Hsieh, ...
submitted by
The TeachScheme! project: Computing and programming for every student (2004)
Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Shriram Krishnamurthi
Abstract. The TeachScheme! Project aims to reform three aspects of introductory programming courses in secondary schools. First, we use a design method that asks students to develop programs in a...
Reliability and State Machines in an Advanced Network Testbed (2004)
Mac G. Newbold, G. Newbold, John Carter, Matthew Flatt, Konrad Slind, Chris R. Johnson, ...
Complex distributed systems have many components that fail from time to time, adversely a#ecting the system's overall reliability. Our advanced network testbed, Emulab, also known as Netbed, is...
Approved for the Major Department (2004)
Mac G. Newbold, G. Newbold, John Carter, Matthew Flatt, Konrad Slind, Chris R. Johnson, ...
has been read by each member of the following supervisory committee and by majority vote has been found to be satisfactory.
The TeachScheme! project: Computing and programming for every student (2004)
Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Shriram Krishnamurthi
Abstract. The TeachScheme! project aims to reform three aspects of introductory high school courses on programming. The first is a systematic program design method. The key property of the method is...
A visual environment for developing context-sensitive term rewriting systems (2004)
Jacob Matthews, Robert Bruce Findler, Matthew Flatt, Matthias Felleisen
Abstract. Over the past decade, researchers have found context-sensitive term-rewriting semantics to be powerful and expressive tools for modeling programming languages, particularly in establishing...
The TeachScheme! project: Computing and programming for every student (2004)
Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Shriram Krishnamurthi
Abstract. The TeachScheme! Project aims to reform three aspects of introductory programming courses in secondary schools. First, we use a design method that asks students to develop programs in a...
A visual environment for developing context-sensitive term rewriting systems (2004)
Jacob Matthews, Robert Bruce Findler, Matthew Flatt, Matthias Felleisen
Abstract. Over the past decade, researchers have found context-sensitive term-rewriting semantics to be powerful and expressive tools for modeling programming languages, particularly in establishing...
Approved for the Graduate Council (2004)
Mac G. Newbold, Jay Lepreau, Jay Lepreau, John Carter, Chris R. Johnson, Matthew Flatt, ...
G. Newbold This thesis has been read by each member of the following supervisory committee and by majority vote has been found to be satisfactory. I have read the thesis of Mac G. Newbold in its...
The TeachScheme! Project: Computing and Programming for Every Student (2003)
Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Shriram Krishnamurthi
The TeachScheme! Project aims to reform three aspects of introductory programming courses in secondary schools. First, we use a design method that asks students to develop programs in a stepwise...
Proceedings of the Fourth Workshop on Scheme and Functional Programming (2003)
Matthew Flatt, Erick Gallesio, Université De Nice, Tim Hickey, Mario Latendresse Fnmoc, Jeffrey Mark Siskind, ...
This report contains the papers presented at the Fourth Workshop on Scheme and Functional Programming. The purpose of the Scheme Workshop is to discuss experience with and future developments of the...
Reachability-based memory accounting (2002)
Adam Wick, Matthew Flatt, Wilson Hsieh
Many language implementations provide a mechanism to express concurrent processes, but few provide support for terminating a process based on its resource consumption. Those implementations that do...
Expressive modular linking for object-oriented languages (2002)
Wilson C. Hsieh, Matthew Flatt, Sean Mcdirmid, Sean Mcdirmid
In this paper we show how modular linking of program fragments can be added to statically typed, object-oriented (OO) languages. Programs are being assembled out of separately developed software...
DrScheme: A programming environment for Scheme (2002)
Robert Bruce Findler, John Clements, Cormac Flanagan, Matthew Flatt, Shriram Krishnamurthi, Paul Steckler, ...
DrScheme is a programming environment for Scheme. It fully integrates a graphicsenriched editor, a parser for multiple variants of Scheme, a functional read-eval-print loop, and an algebraic printer....
DrScheme: A programming environment for Scheme (2002)
Robert Bruce Findler, John Clements, Cormac Flanagan, Matthew Flatt, Shriram Krishnamurthi, Paul Steckler, ...
DrScheme is a programming environment for Scheme. It fully integrates a graphicsenriched editor, a parser for multiple variants of Scheme, a functional read-eval-print loop, and an algebraic printer....
Reachability-Based Memory Accounting (2002)
Adam Wick, Matthew Flatt, Wilson Hsieh
Many language implementations provide a mechanism to express concurrent processes, but few provide support for terminating a process based on its resource consumption. Those implementations that do...
DrScheme: A programming environment for Scheme (2002)
Robert Bruce Findler, John Clements, Cormac Flanagan, Matthew Flatt, Shriram Krishnamurthi, Paul Steckler, ...
DrScheme is a programming environment for Scheme. It fully integrates a graphicsenriched editor, a parser for multiple variants of Scheme, a functional read-eval-print loop, and an algebraic printer....
The structure and interpretation of the computer science curriculum (2002)
Matthias Felleisen, Robert B. Findler, Matthew Flatt, Shriram Krishnamurthi
Abstract. Nearly twenty years ago, Structure and Interpretation of Computer Programs (SICP) changed the intellectual landscape of introductory computing courses. Unfortunately, three problems—its...
The structure and interpretation of the computer science curriculum (2002)
Matthias Felleisen, Robert B. Findler, Matthew Flatt, Shriram Krishnamurthi
Abstract. Nearly twenty years ago, Structure and Interpretation of Computer Programs (SICP) changed the intellectual landscape of introductory computing courses. Unfortunately, three problems—its...
Approved for the Major Department (2001)
Jason Baker, Matthew Flatt, Jay Lepreau, Gary Lindstrom, Date Wilson, C. Hsieh, ...
submitted by
Macros that play: Migrating from Java to Maya (2001)
Jason Baker, Matthew Flatt, Jay Lepreau, Gary Lindstrom
submitted by Jason Baker This thesis has been read by each member of the following supervisory committee and by majority vote has been found to be satisfactory. Chair: Wilson C. Hsieh
Sean Mcdirmid, Matthew Flatt, Wilson C. Hsieh
We describe and justify thirteen technical properties that a component system must possess to work with object-oriented programming languages (such as Java, C++, or C#). Our components are designed...
Jiazzi: New-age components for old-fashioned Java (2001)
Sean Mcdirmid, Matthew Flatt, Wilson C. Hsieh
We present Jiazzi, a system that enables the construction of largescale binary components in Java. Jiazzi components can be thought of as generalizations of Java packages with added support for...
Modeling an algebraic stepper (2001)
John Clements, Matthew Flatt, Matthias Felleisen
Abstract. Programmers rely on the correctness of the tools in their programming environments. In the past, semanticists have studied the correctness of compilers and compiler analyses, which are the...
Modeling an algebraic stepper (2001)
John Clements, Matthew Flatt, Matthias Felleisen
Abstract. Programmers rely on the correctness of the tools in their programming environments. In the past, semanticists have studied the correctness of compilers and compiler analyses, which are the...
Knit: Component composition for systems software (2000)
Alastair Reid, Matthew Flatt, Leigh Stoller, Jay Lepreau, Eric Eide
Knit is a new component definition and linking language for systems code. Knit helps make C code more understandable and reusable by third parties, helps eliminate much of the performance overhead of...
Knit: Component Composition for Systems Software (2000)
Alastair Reid, Matthew Flatt, Leigh Stoller, Jay Lepreau, Eric Eide
Knit is a new component definition and linking language for systems code. Knit helps make C code more understandable and reusable by third parties, helps eliminate much of the performance overhead of...
Knit: Component Composition for Systems Software (2000)
Alastair Reid Matthew, Matthew Flatt, Leigh Stoller, Jay Lepreau, Eric Eide
Knit is a new component definition and linking language for systems code. Knit helps make C code more understandable and reusable by third parties, helps eliminate much of the performance overhead of...
Knit: Component composition for systems software (2000)
Alastair Reid, Matthew Flatt, Leigh Stoller, Jay Lepreau, Eric Eide
Knit is a new component definition and linking language for systems code. Knit helps make C code more understandable and reusable by third parties, helps eliminate much of the performance overhead of...
Programming languages as operating systems (or revenge of the son of the Lisp machine (1999)
Matthew Flatt, Robert Bruce, Findler Shriram, Krishnamurthi Matthias Felleisen
The MrEd virtual machine serves both as the implementation platform for the DrScheme programming environment, and as the underlying Scheme engine for executing expressions and programs entered into...
The DrScheme Project: An Overview (1998)
Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Shriram Krishnamurthi
DrScheme provides a graphical user interface for editing and interactively evaluating Scheme programs on all major graphical platforms (Windows 95/nt, MacOs, Unix/X). The environment is especially...
Matthew Flatt, Shriram Krishnamurthi, Matthias Felleisen
While class-based object-oriented programming languages provide a flexible mechanism for re-using and managing related pieces of code, they typically lack linguistic facilities for specifying a...
Units: Cool modules for HOT languages (1998)
Matthew Flatt, Matthias Felleisen
A module system ought to enable assembly-line programming using separate compilation and an expressive linking language. Separate compilation allows programmers to develop parts of a program...
Units: Cool modules for HOT languages (1998)
Matthew Flatt, Matthias Felleisen
A module system ought to enable assembly-line programming using separate compilation and an expressive linking language. Separate compilation allows programmers to develop parts of a program...
PLT MrEd: Graphical toolbox manual (1997)
Matthew Flatt, Robert Bruce Findler, Cormac Flanagan, Matthias Felleisen, Paul Steckler, Gann Bierner, ...
Copyright notice Copyright c○1996-99 PLT, Rice University Permission to make digital/hard copies and/or distribute this documentation for any purpose is hereby
DrScheme: a pedagogic programming environment for Scheme (1997)
Robert Bruce Findler, Cormac Flanagan, Matthew Flatt, Shriram Krishnamurthi, Matthias Felleisen
Abstract. Teaching introductory computing courses with Scheme elevates the intellectual level of the course and thus makes the subject more appealing to students with scientific interests....
DrScheme: a pedagogic programming environment for Scheme (1997)
Robert Bruce Findler, Cormac Flanagan, Matthew Flatt, Shriram Krishnamurthi, Matthias Felleisen
Abstract. Teaching introductory computing courses with Scheme elevates the intellectual level of the course and thus makes the subject more appealing to students with scienti c interests....
Catching bugs in the web of program invariants (1996)
Cormac Flanagan, Matthew Flatt, Shriram Krishnamurthi, Stephanie Weirich, Matthias Felleisen
MrSpidey is a user-friendly, interactive static debugger for Scheme. A static debugger supplements the standard debugger by analyzing the program and pinpointing those program operations that may...
Designing and Controlling Experiments in the Psychology (1993)
An Interactive Graphical, Jonathan Cohen, Brian Macwhinney, Matthew Flatt, Jefferson Provost, Or Brian
PsyScope is an integrated environment for designing and running psychology experiments on Macintosh computers. The primary goal of PsyScope is to give psychology students and trained researchers,...
A Programmer's Reduction Semantics for Classes and Mixins
Matthew Flatt, Shriram Krishnamurthi, Matthias Felleisen
. While class-based object-oriented programming languages provide a flexible mechanism for re-using and managing related pieces of code, they typically lack linguistic facilities for specifying a...