applicative programming notations offer important advantages over conventional ones both for software development and for the full exploitation of multiprocessor computer systems. They simplify the software developer&...
详细信息
applicative programming notations offer important advantages over conventional ones both for software development and for the full exploitation of multiprocessor computer systems. They simplify the software developer's tools and techniques, streamline his picture of the equipment on which his software will run, and provide him with powerful modularization facilities for coping with the complexity of application problems. Their simple and mathematically sound semantics support formal reasoning about programs and proofs of their correctness, and the absence of explicit sequencing in applicative programs facilitates their execution by systems of multiple concurrent processors. A familiar—if limited—example of applicative programming is the ubiquitous dynamic spreadsheet. The commercial success of spreadsheet packages demonstrates the appeal of abstractness, and an examination of spreadsheets' “formula” facilities reveals why applicative programming and concurrent processing go so well together. The primary obstacles to widespread adoption of applicative programming are the scarcity of efficient implementations and the novelty and immaturity of the software technology. applicative programming's fundamental soundness and the leverage it offers in coping with two of contemporary computing's most urgent problems argue that in time these obstacles will be overcome.
Z is a specification language, and, rightly, not in general executable, Z- is a programming language superficially identical to Z, but using only those forms of expressions and predicate which are immediately executab...
详细信息
Z is a specification language, and, rightly, not in general executable, Z- is a programming language superficially identical to Z, but using only those forms of expressions and predicate which are immediately executable, The Z- approach differs from other Z animations in being single-pass, without backtracking, and in modelling a set as its membership test, thus imposing no general restriction to finiteness, A prototype Z- interpreter is described.
We describe the Funlogic system which extends a functional language with existentially quantified declarations. An existential declaration introduces a variable and a set of constraints that its value should meet. Exi...
详细信息
We describe the Funlogic system which extends a functional language with existentially quantified declarations. An existential declaration introduces a variable and a set of constraints that its value should meet. Existential variables are bound to conforming values by a decision procedure. Funlogic embeds multiple external decision procedures using a common framework. Design principles for embedding decision procedures are developed and illustrated for three different decision procedures from widely varying domains.
The theory of pure functional programming is applied to the standard conventional programming language PASCAL, thereby offering a unique and innovative language for problem-solving. A basic set of primitive functions ...
详细信息
The theory of pure functional programming is applied to the standard conventional programming language PASCAL, thereby offering a unique and innovative language for problem-solving. A basic set of primitive functions and functional forms, as outlined in the 3aclcus JP System, provides a model for the development of a practical functional programming system. This system is activated by accessing a detailed and comprehensive system library module directly from a PASCAL program, thereby enabling the user to operate in either a functional or a conventional mode. The ability to perform functional programming within a conventional, high-level language, adds an increased degree of power and flexibility to the proposed system. The Functional PASCAL System provides the user with a new and distinctive methodology for writing computer programs and encourages individuals to experiment, in a practical environment, with functional programming techniques not otherwise available for general purpose use.
The implementation of the concurrent applicative language Newsqueak has several unusual features. The interpreter, squint, uses a copy-on-write scheme to manage storage honouring Newsqueak's strictly applicative (...
详细信息
The implementation of the concurrent applicative language Newsqueak has several unusual features. The interpreter, squint, uses a copy-on-write scheme to manage storage honouring Newsqueak's strictly applicative (by-value) semantics for data. There is no explicit scheduler. Instead, the execution of processes is interleaved very finely, but randomly, by an efficient scheme that integrates process switching into the interpreter's main loop. The implementation of select, the non-deterministic, multi-way communications operator, exploits details in the implementation of processes. This paper describes much of the interpreter but explains only small aspects of the language. Further detail about the language may be found in the References.
A functional language based on the FP-model is presented. The language combines occam processes and is used as a command level language for occam systems. It is well suited as a graphical language for concurrent progr...
详细信息
A functional language based on the FP-model is presented. The language combines occam processes and is used as a command level language for occam systems. It is well suited as a graphical language for concurrent programming. An algebra, based on the functional properties of the language, makes process-and communication structures accessible to (semi-) automatical transformations.
In this paper, a stream-based dataflow architecture is proposed, and its simulation model, which has helped to evaluate the effectiveness of the proposed architectural concept, is discussed. The machine integrates the...
详细信息
In this paper, a stream-based dataflow architecture is proposed, and its simulation model, which has helped to evaluate the effectiveness of the proposed architectural concept, is discussed. The machine integrates the conventional Von Neumann type of control flow subsystem with a dataflow processing element of token storage type. The control flow unit tackles the dynamic nature of the stream structure including input/output whereas the dataflow unit does the computation part in an applicative style. A pipelined version of the stream machine is also discussed. The effectiveness of the machine is studied by running a few example programs in the simulated machine. The machine is expected to be useful in real time signal processing applications.
A scientific approach to language design involves the exhaustive analysis of the demands of one of the criteria for language design and or assessment. G is designed on the sole criterion of support for data abstractio...
详细信息
A scientific approach to language design involves the exhaustive analysis of the demands of one of the criteria for language design and or assessment. G is designed on the sole criterion of support for data abstraction, which leads to the adoption of the applicative or functional model. As well as a full complement of standard data types and operations, G emphasises tools for: type definition; type checking; function argument and list types; function types; data structure types; generic types; generic functions; and generic function types. Comparative analysis shows that the benefits of our simple and general structure justify the need for dynamic type checking.
The threat of continuous data copying is one of the key problems in applicative programming. We discuss the opportunities to implement functional data structures as updatable objects, thus avoiding any form of copying...
详细信息
The threat of continuous data copying is one of the key problems in applicative programming. We discuss the opportunities to implement functional data structures as updatable objects, thus avoiding any form of copying. We start from the notion of incremental structures and associated I-structure storage developed at MIT. Then we modify its specification so as to handle sequential and shared structures. The former applies to the case when only data dependencies and not data values are considered in source program analysis;the latter addresses nondeterministic, especially system programming applications. We also hope that a nonspecialist reader interested in functional programming in general may catch some of its basic limitations.
暂无评论