Implementation of relational database systems is introduced using the functionalprogramming.language lisp. In lisp it is simple and easy to define and manipulate a complete query language that can simulate tuple calc...
详细信息
ISBN:
(纸本)089791127X
Implementation of relational database systems is introduced using the functionalprogramming.language lisp. In lisp it is simple and easy to define and manipulate a complete query language that can simulate tuple calculus, or equivalently, relational algebra or domain calculus. In particular, five operations in relational algebra - union, set difference, cartesian product, projection and selection - are efficiently established in lisp. In addition to these operations the typical operations in databases, insertion, deletion, modification and searching are efficiently defined and performed in lisp. All the operations above are defined as functions. The lisp is a good interactive database language, in particular, for microcomputers.
This research tries to identify skills which contribute to expertise in programming. Two questions are explored. First, in comprehending programs do novices concentrate on syntax, while experts concentrate on program ...
详细信息
ISBN:
(纸本)089791127X
This research tries to identify skills which contribute to expertise in programming. Two questions are explored. First, in comprehending programs do novices concentrate on syntax, while experts concentrate on program function? Second, are experts able to automate (perform without conscious attention) simple subcomponents of the programming.task? The method used in this experiment is to show novice and expert Fortran programmers a series of simple, frequently-recurring code segments along with an English language description of each code segment. The description may be syntactic or functional and either true or false. The subject must decide if the description could apply to the code. Accuracy and reaction time will be measured. Better performance by experts on functional descriptions will support the idea that experts concentrate on program function and automate their knowledge of simple programming.patterns.
An applicative program denotes a function mapping values from some domain to some range. Abstract interpretation of applicative programs involves using the standard denotation to describe an abstract function from a ...
详细信息
ISBN:
(纸本)0897911253
An applicative program denotes a function mapping values from some domain to some range. Abstract interpretation of applicative programs involves using the standard denotation to describe an abstract function from a “simplified” domain to a “simplified” range, such that computation of the abstract function is effective and yields some information, such as type information, about the standard denotation. We develop a general framework for a restricted class of abstract interpretations that deal with non-strict functions defined on non-flat domains. As a consequence, we can develop inference schemes for a large and useful class of functional programs, including functions defined on streams. We describe several practical problems and solve them using abstract interpretation. These include inferring minor signatures and relevant clauses of functions, which have arisen out of our work on a strongly-typed applicative language.
We describe a proof-oriented semantics for languages handling shared pointer structures. The main difficulty is to describe the store containing the pointer structure in an appropriate way. On the one hand, it should ...
详细信息
ISBN:
(纸本)0897910850
We describe a proof-oriented semantics for languages handling shared pointer structures. The main difficulty is to describe the store containing the pointer structure in an appropriate way. On the one hand, it should be easy to express the effect of the instructions handling pointers and on the other, it should be possible to state high-level properties of the structure (involving the concepts of lists, graphs,...).We review the previous works and propose an original solution which considers the store as a graph described by means of a collection of trees. This allows us to use a calculus of recursive functions in the domain of trees to specify properties of the pointer *** have chosen to illustrate those concepts in the case of a functionalprogramming.language, as no proof-oriented semantics of pointer handling has been proposed for such languages. To perform symbolic execution, we need to record both the value and the effect of a program at different stages of evaluation. To do so, we use the states (p;e)where p is a partially evaluated program and e is a store (described as stated above). To obtain a suitable proof method, we define (p;e) in a way which hides all details that are not observable by the user of the language. We axiomatize the needed relations between these pairs and use the resulting axioms as a basis of a formal proof technique, where the proofs proceed by symbolic execution and induction over *** language lisp has been chosen because it is well-known. Nevertheless, no prior knowledge in lisp is required.
作者:
Kosinski, Paul R.Project MAC
Massachusetts Institute of Technology CambridgeMA02139 United States IBM
Thomas J. Watson Research Center Yorktown HeightsNY10598 United States
A Data Flow program [1,2] is a flowchart like network of operators which compute concurrently, dependent only on the availability of the data which flow along the paths. Each operator has only a local effect, transfor...
详细信息
暂无评论