Functional Programming for Concurrent and Distributed Computing

There are at least two approaches to the design of languages for parallel computing. One approach is to use functional or relational languages which are easy to read, write, transform and verify. The more conventional approach is to use procedural languages which give a programmer a high degree of control over the run-time behaviour of a program. There is a need to reconcile these two approaches in a language which permits both simplicity and efficiency.

[1]  Ware Myers Lisp Machines Displayed at AI Conference , 1982, Computer.

[2]  F. Warren Burton,et al.  Annotations to Control Parallelism and Reduction Order in the Distributed Evaluation of Functional Programs , 1984, TOPL.

[3]  Robert Cartwright,et al.  The semantics of lazy (and industrious) evaluation , 1982, LFP '82.

[4]  David Turner Functional programs as executable specifications , 1984, Philosophical Transactions of the Royal Society of London. Series A, Mathematical and Physical Sciences.

[5]  F. Warren Burton A Linear Space Translation of Functional Programs to Turner Combinators , 1982, Inf. Process. Lett..

[6]  Paul Hudak,et al.  A combinator-based compiler for a functional language , 1984, POPL '84.

[7]  F. Warren Burton,et al.  Virtual Tree Machines , 1984, IEEE Transactions on Computers.

[8]  Dertouzos Arvind,et al.  A MULTIPROCESSOR EMULATION FACILITY , 1983 .

[9]  Peter Henderson,et al.  Purely Functional Operating Systems , 1982 .

[10]  F. Warren Burton Controlling Speculative Computation in a Parallel Functional Programming Language , 1985, ICDCS.

[11]  Richard P. Hopkins,et al.  Data-Driven and Demand-Driven Computer Architecture , 1982, CSUR.

[12]  Luca Cardelli,et al.  Compiling a functional language , 1984, LFP '84.

[13]  Robert H. Halstead,et al.  MULTILISP: a language for concurrent symbolic computation , 1985, TOPL.

[14]  Joseph E. Stoy,et al.  Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory , 1981 .

[15]  Peter Henderson,et al.  A lazy evaluator , 1976, POPL.

[16]  Daniel P. Friedman,et al.  An indeterminate constructor for applicative programming , 1980, POPL '80.

[17]  Daniel P. Friedman,et al.  CONS Should Not Evaluate its Arguments , 1976, ICALP.

[18]  F. Warren Burton,et al.  Speculative computation, parallelism, and functional programming , 1985, IEEE Transactions on Computers.

[19]  Ian Watson,et al.  The Manchester prototype dataflow computer , 1985, CACM.

[20]  Paul Hudak,et al.  Higher-order strictness analysis in untyped lambda calculus , 1986, POPL '86.

[21]  John S. Conery,et al.  The and/or process model for parallel interpretation of logic programs , 1983 .

[22]  Paul Hudak,et al.  Experiments in diffused combinator reduction , 1984, LFP '84.

[23]  Rex L. Page,et al.  Deleting Irrelevant Tasks in an Expression-Oriented Multiprocessor System , 1981, TOPL.

[24]  Jack B. Dennis An Operational Semantics for a Language with Early Completion Data Structures , 1981, ICFPC.

[25]  D. A. Turner Another Algorithm for Bracket Abstraction , 1979, J. Symb. Log..

[26]  Dennis F. Kibler,et al.  Parallel interpretation of logic programs , 1981, FPCA '81.

[27]  Lennart Augustsson,et al.  A compiler for lazy ML , 1984, LFP '84.

[28]  R. J. M. Hughes,et al.  Super-combinators a new implementation method for applicative languages , 1982, LFP '82.

[29]  C TreleavenPhilip,et al.  Data-Driven and Demand-Driven Computer Architecture , 1982 .

[30]  Jerald Schwarz Using Annotations to Make Recursion Equations Behave , 1982, IEEE Transactions on Software Engineering.

[31]  Paul Hudak,et al.  Para-functional programming: a paradigm for programming multiprocessor systems , 1986, POPL '86.

[32]  Jack B. Dennis,et al.  Data Flow Supercomputers , 1980, Computer.

[33]  Charles L. Seitz,et al.  The cosmic cube , 1985, CACM.

[34]  Alan Mycroft,et al.  The Theory and Practice of Transforming Call-by-need into Call-by-value , 1980, Symposium on Programming.

[35]  John W. Backus,et al.  Can programming be liberated from the von Neumann style?: a functional style and its algebra of programs , 1978, CACM.

[36]  A. C. Norman,et al.  Some practical methods for rapid combinator reduction , 1984, LFP '84.

[37]  Rod M. Burstall,et al.  HOPE: An experimental applicative language , 1980, LISP Conference.

[38]  John Darlington,et al.  ALICE a multi-processor reduction machine for the parallel evaluation CF applicative languages , 1981, FPCA '81.

[39]  John Hughes,et al.  Why Functional Programming Matters , 1989, Comput. J..

[40]  D. A. Turner,et al.  A new implementation technique for applicative languages , 1979, Softw. Pract. Exp..