Jacob Matthews
Current Organizations / Institutes
The organizations/institutes from the scholar's latest article
Previous Organizations / Institutes
The organizations / institutes from the scholar's other articles in the past ten years
Research Subjects
Jacob Matthews has a total of 11 co-authors. Here are the top co-authors by number of shared publications:
- Robert Bruce Findler
University of Chicago
2 shared publications - Anton VAN Straaten
AppSolutions
1 shared publication - Eli J. Finkel
Northwestern University, Evanston, IL, USA
1 shared publication - Matthew Flatt
University of Utah, Salt Lake City, USA
1 shared publication - Matthias Felleisen
Northeastern University, USA
1 shared publication - Michael Sperber
Active Group, Tübingen, Germany
1 shared publication
Latest Publications
- 1 March 2009
- Published by Cambridge University Press (CUP) in Journal of Functional Programming
- Vol. 19 (S1) , 1-301
Revised 6 Report on the Algorithmic Language Scheme
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 that a very small number of rules for forming expressions, with no restrictions on how they are composed, suffice to form a practical and efficient programming language that is flexible enough to support most of the major programming paradigms in use today. Scheme was one of the first programming languages to incorporate first-class procedures as in the lambda calculus, thereby proving the usefulness of static scope rules and block structure in a dynamically typed language. Scheme was the first major dialect of Lisp to distinguish procedures from lambda expressions and symbols, to use a single lexical environment for all variables, and to evaluate the operator position of a procedure call in the same way as an operand position. By relying entirely on procedure calls to express iteration, Scheme emphasized the fact that tail-recursive procedure calls are essentially gotos that pass arguments. Scheme was the first widely used programming language to embrace first-class escape procedures, from which all previously known sequential control structures can be synthesized. A subsequent version of Scheme introduced the concept of exact and inexact number objects, an extension of Common Lisp's generic arithmetic. More recently, Scheme became the first programming language to support hygienic macros, which permit the syntax of a block-structured language to be extended in a consistent and reliable manner.
- 1 March 2009
- Published by Cambridge University Press (CUP) in Journal of Functional Programming
- Vol. 19 (S1) , 1-301
Revised 6 Report on the Algorithmic Language Scheme
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 that a very small number of rules for forming expressions, with no restrictions on how they are composed, suffice to form a practical and efficient programming language that is flexible enough to support most of the major programming paradigms in use today. Scheme was one of the first programming languages to incorporate first-class procedures as in the lambda calculus, thereby proving the usefulness of static scope rules and block structure in a dynamically typed language. Scheme was the first major dialect of Lisp to distinguish procedures from lambda expressions and symbols, to use a single lexical environment for all variables, and to evaluate the operator position of a procedure call in the same way as an operand position. By relying entirely on procedure calls to express iteration, Scheme emphasized the fact that tail-recursive procedure calls are essentially gotos that pass arguments. Scheme was the first widely used programming language to embrace first-class escape procedures, from which all previously known sequential control structures can be synthesized. A subsequent version of Scheme introduced the concept of exact and inexact number objects, an extension of Common Lisp's generic arithmetic. More recently, Scheme became the first programming language to support hygienic macros, which permit the syntax of a block-structured language to be extended in a consistent and reliable manner.
- 1 January 2008
- Published by Cambridge University Press (CUP) in Journal of Functional Programming
- Vol. 18 (1) , 47-86
An operational semantics for Scheme
This paper presents an operational semantics for the core of Scheme. Our specification improves over the denotational semantics from the Revised 5 Report on Scheme specification in four ways. First, it covers a larger part of the language, specifically eval , quote , dynamic-wind , and the top level. Second, it models multiple values in a way that does not require changes to unrelated parts of the language. Third, it provides a faithful model of Scheme's undefined order of evaluation. Finally, we have implemented our specification in PLT Redex, a domain-specific language for writing operational semantics. The implementation allows others to experiment with our specification and allows us to build a specification test suite, which improves our confidence that our system is a faithful model of Scheme. In addition to a specification of Scheme, this paper contributes three novel modeling techniques for Felleisen Hieb-style rewriting semantics. All three techniques are applicable to a wider range of problems than modeling Scheme, and they combine seamlessly in our model, suggesting that they would scale to complete models of other languages.
- 1 January 2008
- Published by Cambridge University Press (CUP) in Journal of Functional Programming
- Vol. 18 (1) , 47-86
An operational semantics for Scheme
This paper presents an operational semantics for the core of Scheme. Our specification improves over the denotational semantics from the Revised 5 Report on Scheme specification in four ways. First, it covers a larger part of the language, specifically eval , quote , dynamic-wind , and the top level. Second, it models multiple values in a way that does not require changes to unrelated parts of the language. Third, it provides a faithful model of Scheme's undefined order of evaluation. Finally, we have implemented our specification in PLT Redex, a domain-specific language for writing operational semantics. The implementation allows others to experiment with our specification and allows us to build a specification test suite, which improves our confidence that our system is a faithful model of Scheme. In addition to a specification of Scheme, this paper contributes three novel modeling techniques for Felleisen Hieb-style rewriting semantics. All three techniques are applicable to a wider range of problems than modeling Scheme, and they combine seamlessly in our model, suggesting that they would scale to complete models of other languages.
- 1 March 2007
- Published by Wiley in Personal Relationships
- Vol. 14 (1) , 149-166
Speed‐dating as an invaluable tool for studying romantic attraction: A methodological primer
Research on initial romantic attraction flourished in the 1960s and 1970s but has now been partially eclipsed by research on close relationships. The authors argue that speed‐dating procedures, in which participants attend an event where they experience brief “dates” with a series of potential romantic partners, permit researchers to “retrofit” the advances of close relationships research to the study of initial romantic attraction. Speed‐dating procedures also allow for strong tests of many fundamental attraction‐related hypotheses and, via longitudinal follow‐ups, could unify the fields of initial romantic attraction and close relationships. This article will help investigators conduct speed‐dating studies by addressing the methodological and logistical issues they will face and by illustrating procedures with a description of the Northwestern Speed‐Dating Study.
- 1 March 2007
- Published by Wiley in Personal Relationships
- Vol. 14 (1) , 149-166
Speed‐dating as an invaluable tool for studying romantic attraction: A methodological primer
Research on initial romantic attraction flourished in the 1960s and 1970s but has now been partially eclipsed by research on close relationships. The authors argue that speed‐dating procedures, in which participants attend an event where they experience brief “dates” with a series of potential romantic partners, permit researchers to “retrofit” the advances of close relationships research to the study of initial romantic attraction. Speed‐dating procedures also allow for strong tests of many fundamental attraction‐related hypotheses and, via longitudinal follow‐ups, could unify the fields of initial romantic attraction and close relationships. This article will help investigators conduct speed‐dating studies by addressing the methodological and logistical issues they will face and by illustrating procedures with a description of the Northwestern Speed‐Dating Study.
- 1 October 2004
- Published by Springer Nature in Automated Software Engineering
- Vol. 11 (4) , 337-364
Automatically Restructuring Programs for the Web
- 1 October 2004
- Published by Springer Nature in Automated Software Engineering
- Vol. 11 (4) , 337-364
Automatically Restructuring Programs for the Web