In non-strict functionallanguages, a data structure may be read before all its components are written, and a function may return a value before finishing all its computation or even before all its arguments have been...
详细信息
One of the most important pragmatic advantages of functionallanguages is that concurrency in a program is implicit-there is no need for special constructs to express parallelism as is required in most conventional la...
详细信息
ISBN:
(纸本)089791175X
One of the most important pragmatic advantages of functionallanguages is that concurrency in a program is implicit-there is no need for special constructs to express parallelism as is required in most conventional languages. Furthermore, it is fairly easy for compilers to automatically determine the concurrency as a step toward decomposing a program for execution on a suitable parallel architecture. Yet it is often the case that one knows precisely the optimal decomposition for execution on a particular machine, and one can never expect a compiler to determine such optimal mappings in all cases. This paper is concerned with ways to allow the programmer to explicitly express this mapping of program to machine, by using annotations that, given a few minor constraints, cannot alter the functional semantics of the program. We show through several deeded examples the expressiveness and conciseness of the resulting " para-functionalprogramming methodology, using an experimental language called ParAlfl based on our ideas. We also give a formal denotational description of the mapping semantics using a notion of execution trees.
A function Is said to be strict In one of its formal parameters If, In all calls to the function, either the corresponding actual parameter Is evaluated, or the call does not terminate, Detecting which arguments a fun...
详细信息
ISBN:
(纸本)089791175X
A function Is said to be strict In one of its formal parameters If, In all calls to the function, either the corresponding actual parameter Is evaluated, or the call does not terminate, Detecting which arguments a function will surely evaluate Is a problem that arises often In program transformation and compiler optimization. We Present a strategy that allows one to Infer strictness properties of functions expressed In the lambda calculus. Our analysis Improves on previous work In that (l) a set-theoretic characterization of strictness Is used that permits treatment of free variables, which in turn permits a broader range of interpretations, and (2) the analysis provides an effective treatment of higher-order functions, We also prove a result due to Meyer [15] : the problem of first-order strictness analysis Is complete In deterministic exponential time. However, because the size of most functions Is small, the complexity seems to be tractable In practice. This research was supported In part by NSF Grant MCS-8302018, and a Faculty Development Award from IBM.
The possibility of expressing data sharing in FPs is discussed. The Paterson-Wegman unification algorithm is considered, in which data sharing is indispensable to achieve efficient (linear time) execution. An FP imple...
In this paper we discuss relational programming, i.e. a style of programming in which entire relations are manipulated rather than individual data. This analogous to functionalprogramming [1], wherein entire function...
ISBN:
(纸本)0897910605
In this paper we discuss relational programming, i.e. a style of programming in which entire relations are manipulated rather than individual data. This analogous to functionalprogramming [1], wherein entire functions are the values manipulated by the operators. We will see that relational programming subsumes functionalprogramming because every function is also a relation. It is appropriate this point to discuss why we have chosen investigate relational programming.
A cellular binary tree machine proposed by Mac0 accommodates the parallelism inherent in the functionalprogramminglanguages of Backus by simultaneously executing innermost applications. Data communication time on th...
详细信息
Logic programs offer many opportunities for parallelism. We present an abstract model that exploits the parallelism due to nondeterministic choices in a logic program. A working interpreter based on this model is desc...
详细信息
functionallanguages provide a framework in which combining existing programs to produce new ones is particularly simple and elegant. However, the penalty usually paid for such simplicity and elegance is poor executio...
详细信息
functionalprogramming systems, although they have nice theoretical properties and elegant implementations, have failed to make any significant impact in the practical world of applications programming. We shall descr...
详细信息
Operators in functionallanguages such as APL and FFP are a useful programming concept. However, this concept cannot be fully exploited in these languages because of certain constraints. It is proposed that an operato...
详细信息
暂无评论