Abstract
This paper investigates the features of an APL compiler designed for a cellular computer (the FFP machine). This machine directly executes Formal Functional Programming (FFP) code. The APL compiler generates parallel FFP code. Techniques for parallel implementation of many APL array processing operators and functions are described. The implicit parallelism between different operations in a given APL program is also exploited. The FFP machine can accommodate the almost unbounded parallelism of FFP programs. Execution time analysis shows potential for highly efficient execution of APL programs on this machine.
- 1 Abrams, P.L. 1970; "An APL Machine", Ph.D. Thesis, Stanford University Google ScholarDigital Library
- 2 Aho, A.V. and Ullman, J.D. 1977. "Principles of Compiler Design". Addison Wesley Google ScholarDigital Library
- 3 Analogic Corp. 1983. "The APL Machine--The High Productivity APL Computer", product announcementGoogle Scholar
- 4 Backus, J. 1973. "Programming Language Semantics and Closed Applicative Languages". IBM Research Report RJ 1010Google Scholar
- 5 Backus, J. 1978. "Can Programming be Liberated from the von Neumann Style? A Functional Style and its Algebra of Programs". CACM, 21, 8. Google ScholarDigital Library
- 6 Brenner, N. 1982. "APL on a Multiprocessor Architecture". APL82, pp 57-60 Google ScholarDigital Library
- 7 Budd, T.A. 1982. "An APL Compiler for a Vector Processor". Technical Report 86-2, University of ArizonaGoogle Scholar
- 8 Budd, T.A. 1983. "An APL Compiler for the UNIX Timesharing System". Proceedings APL83, pp 205-209 Google ScholarDigital Library
- 9 Foster, G.H. 1980. "An Alternative Design for an APL Engine". Proc. APL80, pp 75-80Google Scholar
- 10 Harrison, M.J. and Harrison, W.H. 1974. "The Implementation of APL on an Associative Processor" Lectures Notes in Computer Science: Parallel Processing, Springer-Verlag, pp 75-96 Google ScholarDigital Library
- 11 Iverson, K.E 1979. 'The Role of Operators in APL". APL79, pp 128-133 Google ScholarDigital Library
- 12 Jenkins, M.A. 1982. "The Q'Nial Reference Manual'. V. 1.0, Department of Computing and Information Science, Queen's University, Kingston, CanadaGoogle Scholar
- 13 Kerr, F.T. 1979. "Simulation of a Reduction Machine". M.S. Thesis, University of North Carolina at Chapel Hill. Google ScholarDigital Library
- 14 Koster, A. 1977. "Execution Time and Storage Requirements of Reduction Language Programs on a Reduction Machine". Ph.D. Thesis, University of North Carolina at Chapel Hill. Google ScholarDigital Library
- 15 Mago, G. 1979. "A Network of Microprocessors to Execute Reduction Languages". International Journal of Computer and Information Sciences, 8, 5, and 8, 6.Google Scholar
- 16 Mago, G. 1980. "A Cellular Computer Architecture for Functional Programming". Proceedings, IEEE Spring Compcon.Google Scholar
- 17 Mago, G., Stanat, D., and Koster, A. 1981. "Program Execution in a Cellular Computer: Some Matrix Algorithms". In preparation.Google Scholar
- 17a Mago, G. and Middleton, C. 1984. "The FFP Machine: a Progress Report". Proc. International workshop on High-level Language Architecture, Los Angeles. Google ScholarDigital Library
- 18 Miller, T.C. 1979. 'Tentative Compilation: A Design for an APL Compiler". APL79, pp 88-95 Google ScholarDigital Library
- 19 Muchnick, S. and Jones, N.D. 1981. "Program Flow Analysis: Theory and Application". Prentice Hall Google ScholarDigital Library
- 20 Perlis, A.J. 1975. 'Steps toward an APL Compiler". Dept of Computer Science, Yale University, Science Research Report #24Google Scholar
- 21 Pozefsky, M. 1977. "Programming in Reduction Languages". Ph.D. Thesis, University of North Carolina at Chapel Hill. Google ScholarDigital Library
- 22 Schmidt, F.L., and Jenkins, M.A. 1982. "Arrays Diagrams and the Nial Approach". Proc. APL82, pp 315-319 Google ScholarDigital Library
- 23 Stanat, D., and Williams, E. 1981. "Optimal Associative Searching on a Cellular Computer". Proceedings of the Conference on Functional Programming Languages, Portsmouth. Google ScholarDigital Library
- 24 Sybalsky, J.D. 1980. 'An APL Compiler for the Production Environment". Proceedings APL80, pp 71-74Google Scholar
- 25 Thurber, K.J., and Myrna, J.W. 1970. "Systems Design of a Cellular APL Computer. IEEE Transactions on Computer, C-19, 4, pp 290-303Google Scholar
- 26 Touretzky, D.S. 1983. "A Comparison of Reduction in APL with Polarity in LISP". Proceedings APL83, pp 259-263 Google ScholarDigital Library
- 27 Wagner, Robert. 1983. "The Boolean Vector Machine {BVMI". Proceedings of the 10th Annual Conference on Computer Architecture, Stockholm, pp 59-66 Google ScholarDigital Library
- 28 Wakshull, M.N. 1982. "The Use of APL in a Concurrent Data Flow Environment". APL82, pp 367-372 Google ScholarDigital Library
- 29 Weiss, 2. and Sal1 H. 1981. "Compile Time Syntax Analysis of APL Programs". APL 81 Conference Proceedings, pp 313-321 Google ScholarDigital Library
- 30 Wiedman, C. 1979. "Steps Toward an APL Compiler". APL79, pp 321-328 Google ScholarDigital Library
- 31 Wulf, W. and Shaw, M. 1973. "Global Variables Considered Harmful". SIGPLAN Notices, 8, 2, pp 28-34 Google ScholarDigital Library
Index Terms
- Compiling APL for parallel execution on an FFP machine
Recommendations
Compiling APL for parallel execution on an FFP machine
APL '85: Proceedings of the international conference on APL: APL and the futureThis paper investigates the features of an APL compiler designed for a cellular computer (the FFP machine). This machine directly executes Formal Functional Programming (FFP) code. The APL compiler generates parallel FFP code. Techniques for parallel ...
Compiling machine-independent parallel programs
Initial evidence is presented that explicitly parallel, machine-independent programs can automatically be translated into parallel machine code that is competitive in performance with hand-written code.The programming language used is Modula-2*, an ...
Compiling APL for parallel and vector execution
The inherent parallelism of applicative languages such as APL and functional languages such as FP present a little-exploited and somewhat unorthodox means of parallel programming. Here we summarize our investigation of a new approach to compiling such ...
Comments