Matthew Flatt

Reachability-Based Memory Accounting (2004)

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...

The TeachScheme! Project: (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...

The TeachScheme! Project: (2003)

Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Shriram Krishnamurthi

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 that it...

Jiazzi: New-Age Components for Old-Fashioned Java (2003)

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...

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...

The Structure and Interpretation of the Computer Science Curriculum (2002)

Matthias Felleisen, Robert B. Findler, Matthew Flatt, Shriram Krishnamurthi

Nearly twenty years ago, Structure and Interpretation of Computer Programs (SICP) changed the intellectual landscape of introductory computing courses. Unfortunately, three problems---its lack of an...

Unknown (2002)

Jonathan Cohen, Brian Macwhinney, Matthew Flatt, Jefferson Provost

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,...

Jiazzi: New-Age Components for Old-Fashioned Java (2002)

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...

Units: Cool Modules for HOT Languages (2002)

Matthew Flatt, Matthiss 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...

Composable and Compilable Macros: You Want it When? (2002)

Matthew Flatt

Many macro systems, especially for Lisp and Scheme, allow macro transformers to perform general computation. Moreover, the language for implementing compile-time macro transformers is usually the...

Knit: Component Composition for Systems Software (2002)

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...

Mixing COP and OOP (2001)

Sean Mcdirmid, Matthew Flatt, Wilson C. Hsieh

h are built from other units. Both atoms and compounds import and export Java classes. P3. Coarse-grained connections: Connections between imports and exports should be able to connect many classes...

Java Component Development in Jiazzi (2001)

Sean Mcdirmid, Matthew Flatt, Wilson C. Hsieh

Current Java constructs for code reuse, including classes, are insufficient for organizing programs in terms of reusable software components. Although packages, class loaders, and various design...

Aspect Weaving as Component Knitting: Separating Concerns with Knit (2001)

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...

Catching Bugs in the Web of Program Invariants (2001)

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...

The DrScheme Project: An Overview (2001)

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...

Classes and Mixins (2001)

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 (2001)

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...

A Programmer's Reduction Semantics for Classes and Mixins (2001)

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...

DrScheme: A Pedagogic Programming Environment for Scheme (2001)

Robert Bruce Findler, Cormac Flanagan, Matthew Flatt, Shriram Krishnamurthi, Matthias Felleisen

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. Unfortunately, the...

Programming Languages as Operating Systems (2001)

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...

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...

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...

DrScheme: A Programming Environment for Scheme (2001)

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...

Appeared in the Workshop on Advanced Separation of Concerns in Software Engineering at ICSE 2001, (2001)

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...

Modeling an Algebraic Stepper (2001)

John Clements, Matthew Flatt, Matthias Felleisen

. 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 most...

Development (2000)

Design Jonathan, D. Cohen, Brian Macwhinney, Development Jefferson, Provost Matthew Flatt, Matthew Cushman, ...

Table of Contents i Overview of the PsyScope Manual 0.1 Organization 1 0.2 System Requirements 1 0.3 Conventions 2 Part 1: Introduction to PsyScope Chapter 1. Introduction 1 Chapter 2. Running Your...

Unknown (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 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...

The DrScheme Project: An Overview (1999)

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 Languages for Reusable Software Components (1999)

D. Cooper, David M. Lane, 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....

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...

A Programmer's Reduction Semantics for Classes and Mixins (1998)

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...

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...

Classes and Mixins (1997)

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...

DrScheme: A Pedagogic Programming Environment for Scheme (1997)

Robert Bruce Findler, Cormac Flanagan, Matthew Flatt, Shriram Krishnamurthi, Matthias Felleisen

. 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. Unfortunately, the...

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...