## Transluscent Procedures, Abstraction Without Opacity (1993)

Citations: | 2 - 0 self |

### BibTeX

@TECHREPORT{Rozas93transluscentprocedures,,

author = {Guillermo J. Rozas},

title = {Transluscent Procedures, Abstraction Without Opacity},

institution = {},

year = {1993}

}

### OpenURL

### Abstract

This report introduces translucent procedures as a new mechanism for implementing behavioral abstractions. Like an ordinary procedure, a translucent procedure can be invoked, and thus provides an obvious way to capture a behavior. Translucent procedures, like ordinary procedures, can be manipulated as first-class objects and combined using functional composition. But unlike ordinary procedures, translucent procedures have structure that can be examined in well-specified non-destructive ways, without invoking the procedure. I have developed an experimental implementation of a normal-order lambda calculus evaluator augmented with novel reflection mechanisms for controlled violation of the opacity of procedures. I demonstrate the utility of translucent procedures by using this evaluator to develop large application examples from the domains of graphics, computer algebra, compiler design, and numerical analysis.

### Citations

834 |
Numerical Recipes
- Press, Flannery, et al.
- 1986
(Show Context)
Citation Context ...om eqn. 3.7 x =((5+2; 1)=2) = 3 from eqn. 3.4 The substitution method consists of four steps: 1 Substitution as described here and when restricted to linear systems is related to Gaussian Elimination =-=[49]-=-.3.2. SUBSTITUTION AS AN OPERATION ON FUNCTIONS 43 1. Use one of the equations to express one of the unknowns as a function of the rest. This can be done for linear equations by using zero-crossings,... |

754 |
Algebra and Its Applications
- Strang, Linear
- 1980
(Show Context)
Citation Context ...pass both algebraic and numerical methods within the same framework. Methods for finding the roots of equations and for solving linear systems have been studied for centuries. Books on linear algebra =-=[59]-=- and numerical programming [49] describe several such methods and shortcuts that can be used under favorable conditions. 8.2 Further Work The most important item in an agenda for further work is the d... |

668 |
Mathematica: A System for Doing Mathematics by Computer
- Wolfram
- 1991
(Show Context)
Citation Context ...-order unification is used to make logic programming languages more expressive [48]. There is a great deal of previous work on mechanical equation solvers, and there are even some commercial products =-=[30, 50, 63, 18]-=-. The equation solver presented here is not particularly powerful by the standards of this earlier work. Its salient features are its organization, the choice of procedures as the basic representation... |

491 |
Denotational semantics: The Scott-Strachey approach to programming language theory
- Stoy
- 1977
(Show Context)
Citation Context ... procedure, a translucent procedure can be invoked, and thus provides an obvious way to capture a behavior. Translucent procedures, like ordinary procedures, can be manipulated as first-class objects =-=[58]-=- and combined using functional composition. But unlike ordinary procedures, translucent procedures have structure that can be examined in well-specified non-destructive ways, without invoking the proc... |

254 |
Forward reasoning and dependency-directed backtracking in a system for computer-aided circuit analysis
- Stallman, Sussman
- 1977
(Show Context)
Citation Context ...re are probably other large classes of problems where special-purpose matching algorithms can be used to advantage. ffl The general algorithm can be improved by using dependency-directed backtracking =-=[55]-=- rather than simple chronological backtracking [20]. Currently, the matcher will attempt the same binding over and over when an inconsistency arises from an earlier binding. Dependency-directed backtr... |

201 | Reflection and semantics in lisp - Smith - 1984 |

181 |
Reflection and Semantics in a Procedural Language
- Smith
- 1982
(Show Context)
Citation Context ...her Work 8.1 Related Work 8.1.1 Reflection and Reification The work presented in this report is most closely related to earlier work on reflection and reification in programming languages and systems =-=[54, 53, 8, 24, 62]-=-. tproc/decompose and tproc/make are reifying and reflection primitives, respectively, in the terminology used in [24]. However, the focus of this work differs significantly from that of prior work on... |

99 |
Numerical Recipes (Cambridge Univ
- Press, Flannery, et al.
- 1986
(Show Context)
Citation Context ....7 x = ((5 + 2 \Gamma 1)=2) = 3 from eqn. 3.4 The substitution method consists of four steps: 1 Substitution as described here and when restricted to linear systems is related to Gaussian Elimination =-=[49]-=-. 3.2. SUBSTITUTION AS AN OPERATION ON FUNCTIONS 43 1. Use one of the equations to express one of the unknowns as a function of the rest. This can be done for linear equations by using zero-crossings,... |

74 | The Mystery of the Tower Revealed: A Non-Reflective Description of the Re lective Tower
- Wand, Friedman
- 1984
(Show Context)
Citation Context ...her Work 8.1 Related Work 8.1.1 Reflection and Reification The work presented in this report is most closely related to earlier work on reflection and reification in programming languages and systems =-=[54, 53, 8, 24, 62]-=-. tproc/decompose and tproc/make are reifying and reflection primitives, respectively, in the terminology used in [24]. However, the focus of this work differs significantly from that of prior work on... |

69 |
The C++ Programming Language, 2nd ed
- Stroustrup
- 1991
(Show Context)
Citation Context ...mplementations with a meta-object protocol that can be used to modify the behavior of the execution engine [61] also have the means to implement them easily. In addition, other languages, such as C++ =-=[60]-=- have the ability to define invocable objects with structure. A.2 Implementation of the Procedural Pattern Matcher The description of the procedural pattern matcher in chapter 2 is sufficient to follo... |

40 |
User-defined types and procedural data structures as complementary approaches to data abstraction
- Reynolds
- 1975
(Show Context)
Citation Context ...programming [12, 1] is another. For languages that support procedures as first-class objects, representing building blocks as procedures is a particularly effective approach to behavioral abstraction =-=[51, 1, 6]-=-. A building block represented as a procedure has an obvious abstraction, namely, the procedure's input-output behavior. In addition, the system designer has a means of combination already at hand, na... |

15 |
Re ection and semantics in a procedural language
- Smith
- 1982
(Show Context)
Citation Context ... Further Work 8.1 Related Work 8.1.1 Re ection and Rei cation The work presented in this report is most closely related to earlier work on reection and rei cation in programming languages and systems =-=[54, 53, 8, 24, 62]-=-. tproc/decompose and tproc/make are reifying and re ection primitives, respectively, in the terminology used in [24]. However, the focus of this work di ers signi cantly from that of prior work on re... |

13 |
The mystery of the tower revealed: A non-re ective description of the re ective tower
- Wand, Friedman
- 1988
(Show Context)
Citation Context ... Further Work 8.1 Related Work 8.1.1 Re ection and Rei cation The work presented in this report is most closely related to earlier work on reection and rei cation in programming languages and systems =-=[54, 53, 8, 24, 62]-=-. tproc/decompose and tproc/make are reifying and re ection primitives, respectively, in the terminology used in [24]. However, the focus of this work di ers signi cantly from that of prior work on re... |

6 | The design of a metaobject protocol controlling behavior of a scheme interpreter
- Vahdat
- 1993
(Show Context)
Citation Context ...fully reflective languages such as 3-Lisp [54, 53] should be straightforward. Languages and implementations with a meta-object protocol that can be used to modify the behavior of the execution engine =-=[61]-=- also have the means to implement them easily. In addition, other languages, such as C++ [60] have the ability to define invocable objects with structure. A.2 Implementation of the Procedural Pattern ... |

4 | Expressing Mathematical Subroutines Constructively. MIT AI Memo 999
- Roylance
- 1987
(Show Context)
Citation Context ...ranslucent procedures allow us to invert the resulting combination into expressions that can be optimized and compiled. 5.1 Constructing functions from their Defining Properties Gerald Roylance shows =-=[52]-=- how many standard mathematical functions can be constructed from their defining properties, instead of specified as a sequence of obscure arithmetic computations. Constructing mathematical subroutine... |

4 | On Statmanâ€™s Finite Completeness Theorem
- Statman, Dowek
- 1992
(Show Context)
Citation Context ...n general, higher-order unification is undecidable [36, 28], although there are interesting cases where it is decidable [44]. By contrast, the decidability of higher-order matching is an open problem =-=[36, 56]-=- although the decidability of certain cases is known [46, 15, 16]. The matcher used here avoids decidability problems by its asymmetry---only the pattern can contain pattern variables, by using finite... |

3 |
User-de ned types and procedural data structures as complementary approaches to data abstraction
- Reynolds
- 1975
(Show Context)
Citation Context ...ed programming [12, 1] is another. For languages that support procedures as rst-class objects, representing building blocks as procedures is a particularly e ective approach to behavioral abstraction =-=[51, 1, 6]-=-. A building block represented as a procedure has an obvious abstraction, namely, the procedure's input-output behavior. In addition, the system designer has a means of combination already at hand, na... |

2 |
Steele Jr. Common LISP The Language, 2nd Edition
- Lewis
- 1990
(Show Context)
Citation Context ...c property of the lambda expression that produced the procedure. TScheme lambda 2.1. TLAMBDA AND TSCHEME 25 expressions specify a fixed number of arguments, i.e., no optionals, dot notation, or &rest =-=[11, 57]-=-. Consequently, the number of arguments of a TScheme procedure can be obtained using the tproc/arity procedure. The number of values returned by a TScheme procedure can be obtained using the tproc/nva... |

1 |
REDUCE---Software for Algebraic Computation
- Rayna
- 1987
(Show Context)
Citation Context ...-order unification is used to make logic programming languages more expressive [48]. There is a great deal of previous work on mechanical equation solvers, and there are even some commercial products =-=[30, 50, 63, 18]-=-. The equation solver presented here is not particularly powerful by the standards of this earlier work. Its salient features are its organization, the choice of procedures as the basic representation... |

1 |
On statman's nite completeness theorem
- Statman, Dowek
- 1992
(Show Context)
Citation Context ...In general, higher-order uni cation is undecidable [36, 28], although there are interesting cases where it is decidable [44]. By contrast, the decidability of higher-order matching is an open problem =-=[36, 56]-=- although the decidability of certain cases is known [46, 15, 16]. The matcher used here avoids decidability problems by its asymmetry|only the pattern can contain pattern variables, by using nite unf... |