Matthew Flatt

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

Scheme (2010)

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

Abstract Programming Languages as Operating Systems (or Revenge of the Son of the Lisp Machine) (2009)

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)

Scott Owens, Matthew Flatt

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

Under consideration for publication 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...

DOI: 10.1017/S0956796801004208 Printed in the United Kingdom DrScheme: a programming environment for Scheme (2008)

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

the use (2008)

Kathryn E. Gray, Matthew Flatt

Our experimental compiler translates Java to PLT Scheme; it enables

Run (2008)

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)

Scott Owens, Matthew Flatt

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)

Scott Owens, Matthew Flatt

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)

Matthew Flatt

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

Abstract Programming Languages as Operating Systems (or Revenge of the Son of the Lisp Machine) (2008)

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

2 (2007)

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

2 (2007)

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

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

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

SUMMARY (2007)

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

Contents (2007)

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

SUMMARY (2007)

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

SUMMARY (2007)

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

SUMMARY (2006)

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

but not least, we express our gratitude to the many participants who made these ten years so much fun. (2005)

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)

Scott Owens, Matthew Flatt

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)

Scott Owens, Matthew Flatt

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.

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

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

Mixing COP and OOP (2001)

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

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

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 MzScheme: Language manual (1997)

Matthew Flatt, Copyright C○- Matthew Flatt

Copyright notice

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