Results 1  10
of
10
LambdaCalculus Schemata
, 1993
"... A lambdacalculus schema is an expression of the lambda calculus augmented by uninterpreted constant and operator symbols. It is an abstraction of programming languages such as LISP which permit functions to be passed to and returned from other functions. When given an interpretation for its constan ..."
Abstract

Cited by 100 (1 self)
 Add to MetaCart
A lambdacalculus schema is an expression of the lambda calculus augmented by uninterpreted constant and operator symbols. It is an abstraction of programming languages such as LISP which permit functions to be passed to and returned from other functions. When given an interpretation for its constant and operator symbols, certain schemata, called lambda abstractions, naturally define partial functions over the domain of interpretation. Two implementation strategies are considered: the retention strategy in which all variable bindings are retained until no longer needed (implying the use of some sort of garbagecollected store) and the deletion strategy, modeled after the usual stack implementation of ALGOL 60, in which variable bindings are destroyed when control leaves the procedure (or block) in which they were created. Not all lambda abstractions evaluate correctly under the deletion strategy. Nevertheless, both strategies are equally powerful in the sense that any lambda abstraction can be mechanically translated into another that evaluates correctly under the deletion strategy and defines the same partial function over the domain of interpretation as the original. Proof is by translation into continuationpassing style.
DDD: A System for Mechanized Digital Design Derivation
, 1997
"... Our research group at Indiana University is investigating a formalization of digital system design that is based on functional algebra. We have developed a transformation system called DDD to facilitate this study. DDD stands for digital design derivation; the system is used interactively to trans ..."
Abstract

Cited by 29 (10 self)
 Add to MetaCart
Our research group at Indiana University is investigating a formalization of digital system design that is based on functional algebra. We have developed a transformation system called DDD to facilitate this study. DDD stands for digital design derivation; the system is used interactively to translate higher level speci cations into hierarchical boolean systems, to which logic synthesis tools are then applied. In this paper, we take a detailed look at how the system is used. In two examples, we examine the sequence of intermediate expressions produced as an implementation is derived. We discuss how these expressions are used at strategic levels of thinking. We illustrate how the choice of target technology in uences the tactical course of derivation. Throughout, we try to give a sense of how functional abstractions are
ABSTRACT A Variadic Extension of Curry’s FixedPoint Combinator
"... We present a systematic construction of a variadic applicativeorder multiple fixedpoint combinator in Scheme. The resulting Scheme procedure is a variadic extension of the nary version of Curry’s fixedpoint combinator. It can be used to create mutuallyrecursive procedures, and expand arbitrary ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
We present a systematic construction of a variadic applicativeorder multiple fixedpoint combinator in Scheme. The resulting Scheme procedure is a variadic extension of the nary version of Curry’s fixedpoint combinator. It can be used to create mutuallyrecursive procedures, and expand arbitrary letrecexpressions.
Automatic, Selfadaptive Control of UnfoldFold Transformations
, 83
"... this paper, I present an approach to controlling the automatic application of unfoldfold transformations when they are used for partial evaluation of functional programs. Partial evaluation is the simplification of a program based on known input data or on known data incorporated in the definitions ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
this paper, I present an approach to controlling the automatic application of unfoldfold transformations when they are used for partial evaluation of functional programs. Partial evaluation is the simplification of a program based on known input data or on known data incorporated in the definitions of functions of the program. My approach is based on a strategy that adapts itself to whatever program is being transformed without any programmer direction, performing as muchor as littleunfolding and partial evaluation as required, and leaving the parts of the program that do not evaluate in their original form. In this approach, transformations are applied until the program has been evaluated as much as possible based on the available data.
Aiding Selfmotivation with Readings in Introductory Computing
, 1994
"... Students can achieve selfmotivation and a broader appreciation of computing by reading widely about computing. This paper advocates discussing selfmotivation with students, and suggesting that they read widely as a means to that end. A discussion of how to present these ideas effectively, and an a ..."
Abstract
 Add to MetaCart
Students can achieve selfmotivation and a broader appreciation of computing by reading widely about computing. This paper advocates discussing selfmotivation with students, and suggesting that they read widely as a means to that end. A discussion of how to present these ideas effectively, and an annotated list of suggested readings, appropriate for undergraduate majors in computing, are included. 1 Introduction Since a student's motivation and interest are important factors in how effectively they learn, motivating students and capturing their interest is vital. When teaching majors, students who plan to work in the field, increasing their motivation and interest is doubly important, as it can have longterm positive effects. This paper makes two contributions. First, it advocates discussing selfmotivation and its importance with majors. Second it suggests a concrete way to actively encourage students to promote their own selfmotivation and interest, and offers specific reading su...
CISE Educational Infrastructure: Tools and techniques for use of the Scheme programming language in Undergraduate Education
"... the utility of the curricular materials developed by this project. 1 Introduction The Scheme programming language was initially designed at MIT to support research in programming languages [19]. The same remarkable combination of simplicity and power that has made Scheme one of the most popular r ..."
Abstract
 Add to MetaCart
the utility of the curricular materials developed by this project. 1 Introduction The Scheme programming language was initially designed at MIT to support research in programming languages [19]. The same remarkable combination of simplicity and power that has made Scheme one of the most popular research languages also makes it an excellent language for instruction. One of the earliest instructional uses of Scheme was in Friedman's undergraduate course in programming languages at Indiana University. At MIT Abelson and Sussman designed a two semester introduction to computer science course based entirely on Scheme that is taken by most MIT undergraduates. The publication of this course's text [4] was a landmark in computer science education that has inspired many schools to use Scheme in a variety of courses. A recent survey identified 135 colleges and universities worldwide that are using Scheme for undergraduate instruction, of which 86 are in the United States [15]
IIC: Information in Context
, 1996
"... IIC (Information in Context) is an interactive programming environment meant to be used for profiling and tracing functions, as well as for visualizing information about functions. IIC runs in the Scheme interpreter STk and has both a graphical and a textual user interface. By integrating a profilin ..."
Abstract
 Add to MetaCart
IIC (Information in Context) is an interactive programming environment meant to be used for profiling and tracing functions, as well as for visualizing information about functions. IIC runs in the Scheme interpreter STk and has both a graphical and a textual user interface. By integrating a profiling environment with a visualization system, IIC gives the programmer the power to dissect the internals of her program. In addition, IIC gives the programmer the power to control what data is gathered through the use of scope IIC makes it possible to evaluate the efficiency of functions and to easily identify bottlenecks. IIC can also be useful for debugging. Contents 1 Introduction 2 1.1 Goals and Motivations : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 2 1.2 Information in Context : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 2 2 Background and Related Work 2 2.1 A sampling of other information gathering systems for ...