Skip to main content

Functional programming and parallel processing

Invited paper

  • Conference paper
  • First Online:
  • 157 Accesses

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1215))

Abstract

Functional languages belong to a neat and very high-level programming paradigm. A functional program is a set of function definitions. The λ-Calculus, a theory of functions under recursion, offers a solid theoretic background to functional programming. In 1978, John Backus pointed at the functional programming as a natural candidate to solve “the software crisis”.

One of the many promises of functional programming was the possibility of extracting parallelism. This paper analyses the evolution of the functional programming paradigm under this outlook.

This is a preview of subscription content, log in via an institution.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. K.A.M.Ali. Object-Oriented Storage Management and Garbage Collection in Distributed Processing Systems. PhD thesis, Royal Institute of Technology, Stockholm, December 1984.

    Google Scholar 

  2. P. Anderson, C. L. Hankin, P. R. J. Kelly, P. E. Osmon, and M. J. Shute. COBWEB-2: Structured Specification of a Wafer Scale Supercomputer. In PARLE '87, pages 51–27. Springer-Verlag LNCS 258, 1987.

    Google Scholar 

  3. A.W. Appel, J.R. Ellis, and K.Li. Real-time concurrent collection on stock multiprocessors. ACM SIGPLAN Notices, 23(7):11–20, 1988.

    Google Scholar 

  4. Arvind, V. Kathail, and K. K. Pingali. A Dataflow Architecture with Tagged Tokens. Technical Report LCS Memo TM-174, MIT, 1980.

    Google Scholar 

  5. Arvind and R. S. Nikhil. Can Dataflow Subsume von Neumann Computing? Technical Report CSG Memo 292, MIT, November 1988.

    Google Scholar 

  6. J.Backus. Can Programming be Liberated from the von Neumann Style? A Functional Style and Its Algebra of Programs. Comm. ACM 21 (8):613–641, August 1978.

    Google Scholar 

  7. H.P. Barendregt The Lambda Calculus its Syntax and Semantics Studies in Logic and the Foundation of Mathematics North-Holland (1984-2nd. ed.)

    Google Scholar 

  8. M. Ben-Ari. On-the-fly garbage collection: new algorithms inspired by program proofs. In M. Nielsen and E. M. Schmidt, editors, Automata, languages and programming. Ninth colloquium (Aarhus, Denmark), pages 14–22, New Yokr, July 12–16 1982. Springer-Verlag.

    Google Scholar 

  9. M.Ben-Ari. Algorithms for on-the-fly garbage collection. ACM Transactions on Programming Languages and Systems, 6(3):333–344, July 1984.

    Google Scholar 

  10. A. D. Ben-Dyke. The History of Parallel Functional Programming. FTPable from ftp.cs.bham.ac.uk, August 1994.

    Google Scholar 

  11. K. J. Berkling. Reduction Languages for Reduction Machines. In 2nd. Annual ACM Symp. on Comp. Arch., pages 133–140. ACM/IEEE 75CH0916-7C, 1975.

    Google Scholar 

  12. D. I. Bevan. Distributed Garbage Collection using Reference Counting. In PARLE '87, pages 176–187. Springer Verlag LNCS 259, 1987.

    Google Scholar 

  13. G. E. Blelloch. NESL: A Nested Data-Parallel Language (Version 2.6). Technical Report CMUCS-93-129, School of Computer Science, Carnegie Mellon University, April 1993.

    Google Scholar 

  14. G. E. Blelloch, S. Chatterjee, J. C. Hardwick, J.Sipelstein, and M. Zagha. Implementation of a Portable Nested Data-Parallel Language. In Principles and Practices of Parallel Programming, pages 102–111, 1993.

    Google Scholar 

  15. T. A. Bratvold. A Skeleton-Based Parallelising Compiler for ML. In (lO4), pages 23–34.

    Google Scholar 

  16. W. H. Burge. Recursive Programming Techniques. Addison-Wesley, 1975.

    Google Scholar 

  17. G. L. Burn. Lazy Functional Languages. Abstract Interpretation and Compilation. Research Monographs in Parallel and Distributed Computing. Pitman, 1991.

    Google Scholar 

  18. G. L. Burn. Evaluation Transformers — A Model for the Parallel Evaluation of Functional Languages (Extended Abstract). In FPCA '87, pages 446–470. Springer-Verlag LNCS 274, 1987.

    Google Scholar 

  19. G.L.Burns, S.L.Peyton Jones and J.D.Robson. The spineless g-machine. In Proc. ACM Conference on Lisp and Functional Programming, pages 244–258, Snowbird, USA, 1988.

    Google Scholar 

  20. R. M. Burstall, D. B. MacQueen, and D. T, Sannella. Hope. Technical Report CSR-62-80, Edinburgh University, 1980.

    Google Scholar 

  21. F. W. Burton and M. R. Sleep. Executing functional programs on a virtual tree of processors. In FPCA '81, pages 187–194, 1981.

    Google Scholar 

  22. Warren Burton. Annotations to Control Parallelism and Reduction Order in the Distributed Evaluation of Functional Programs, ACM TOPLAS, 6(2),1984.20

    Google Scholar 

  23. L.Cardelli. The functional abstract machine. Polymorphism, 1, 1983.

    Google Scholar 

  24. A.Church, A set of postulates for the foundation of logic, Annals of Math. (2)33, pp.346–366.

    Google Scholar 

  25. M. I. Cole. Algorithmic Skeletons: Structured Management of Parallel Computation. Research Monographs in Parallel and Distributed Computing. Pitman, 1989.

    Google Scholar 

  26. G.E. Collins. A method for overlapping and erasure of lists. Communications of the ACM, 3(12):655–657, Dec. 1960.

    Google Scholar 

  27. G.Cousineau P-L.Curien and M.Mauny. The categorical abstract machine. In J-P.Jouannaud, editor, Functional Programming Languages and Computer Architecture. SLNCS 201, 1985.

    Google Scholar 

  28. S. Cox, H. Glaser, and M. J. Reeve. Implementing Functional Languages ou the Transputer. In [34], pages 287–295, 1989

    Google Scholar 

  29. S. Cox, S.-Y. Huang, P. H. J. Kelly, J. Liu, and F. Taylor. Program Transformation for Static Process Network. In PARLE '92, pages 497–512. Springer-Verlag LNCS 605, 1992.

    Google Scholar 

  30. D. Culler and Arvind. Resource Requirements of Dataflow Programs. In 15th. Annual ACM Symp. on Comp. Arch., 1988.

    Google Scholar 

  31. P-L.Curien. Categorical Combinators, Sequential Algorithms and Functional Programming. Research Notes in Theoretical Computer Science. Pitman Publishing Ltd., 1986.

    Google Scholar 

  32. J. Darlington, A. J. Field, P. G. Harrison, P. H. J. Kelly, D. W. N. Sharp, Q. Wu, and R. L. While. Parallel Programming using Skeleton Functions. In PARLE '93, pages 146–160. Springer-Verlag LNCS 694, 1993.

    Google Scholar 

  33. J. Darlington and M. J. Reeve. ALICE: A Multiple-Processor Reduction Machine for the Parallel Evaluation of Applicative Languages. In FPCA '81, pages 65–76, 1981.

    Google Scholar 

  34. M. K. Davis and R, J. M. Hughes, editors. Glasgow Workshop on Functional Programming. Springer-Verlag WICS, 1989.

    Google Scholar 

  35. K. Didrich, A. Fett, C. Gerke, W. Grieskamp, and P. Pepper. OPAL: Design and Implementation of an Algebraic Programming Language, In J. Gutknecht, editor, Programming Languages and System Architectures, Zurich, Switzerland, pages 228–244. Springer-Verlag LNCS 782, March 1994.

    Google Scholar 

  36. E.W. Dijkstra. Notes on a real time garbage collection system. From a conversation with D.E.Knuth (private collection of D.E.Knuth), 1975.

    Google Scholar 

  37. E.W. Dijkstra, L.Lamport, A.J. Martin, C.S. Scholten, and E.F.M.Steffens. On-the-fly garbage collection: An exercise in cooperation. In Lecture Notes in Computer Science, No. 46. Springer-Verlag, New York, 1976.

    Google Scholar 

  38. E.W. Dijkstra, L.Lamport, A.J. Martin, C.S. Scholten, and E.F.M.Steffens. On-the-fly garbage collection: An exercise in cooperation. Communications of the ACM, 21(11):965–975, November 1978.

    Google Scholar 

  39. J. Darlington et al. An Introduction to the FLAGSHIP Programing Environment. In CONPAR '88, Manchester. Cambridge University Press, 1988.

    Google Scholar 

  40. J.Fairbairn and S.Wray. TIM: A simple, lazy abstract machine to execute supercombinators. In Proceedings of Third International Conference on Fuctinal Programming and Computer Architecture, pages 34–45. LNCS 274, Springer Verlag, 1987.

    Google Scholar 

  41. P. Hartel et al. Pseudoknot: a Float-Intensive Benchmark for Functional Compilers. to appear in J. of Functional Programming, 1996.

    Google Scholar 

  42. D.Gries. An exercise in proving parallel programs correct. Communications of the ACM, 20(12):921–930, Dec. 1977.

    Google Scholar 

  43. B. Goldberg and P. Hudak. Alfalfa: Distributed Graph Reduction on a Hypercube Multiprocessor. In Workshop on Graph Reduction, Santa FE, New Mexico, pages 94–113. Springer-Verlag LNCS 279, September 1986.

    Google Scholar 

  44. B. F. Goldberg. Multiprocessor Execution of Functional Programs. Intl. Journal of Parallel Programming, 17(5):425–473,1988.

    Google Scholar 

  45. R. G. Goldsmith, D. L. McBurney, and M. R. Sleep. Parallel Execution of Concurrent Clean on ZAPP. In [104], chapter 21.

    Google Scholar 

  46. J. R. Gurd, C. C., Kirkham, and I. Watson. The Manchester Prototype Dataflow Computer. Comm. ACM, 28(1):34–52, January 1985.

    Google Scholar 

  47. J. R. Gurd, C.C. Kirkham, and J. R. W. Glauert. A Multilayered Data Flow Computer Architecture. Technical report, Manchester University, 1978.

    Google Scholar 

  48. K.Hammond. Parallel Functional Programming: An Introduction. FTPable from ftp.dcs.glasgow.ac.uk, August 1994.

    Google Scholar 

  49. K. Hammond and J. T. O'Donnell, editors. Glasgow Workshop on Functional Programming. Springer-Verlag WICS, 1993.

    Google Scholar 

  50. Chris L. Hankin, P. E. Osmon, and M. J. Shute. COBWEB — a combinator reduction architecture. In FPCA '85, pages 99–112, September 1985.

    Google Scholar 

  51. P. G. Harrison and M. J. Reeve. The Parallel Graph Reduction Machine, Alice. In Work-shop on Graph Reduction, Santa FE, New Mexico, pages 181–202. Springer-Verlag LNCS 279, September 1986.

    Google Scholar 

  52. J. M. D. Hill. The AIM is Laziness in a Data Parallel Language, In [49], pages 83–99.

    Google Scholar 

  53. P. Hudak. Para-Functional Programming in Haskell. In Boleslaw K. B. K. Szymanski, editor, Parallel Functional Languages and Compilers, Fontier Series, chapter 5, pages 159–196. ACM Press, 1991.

    Google Scholar 

  54. P. Hudak and B. Goldberg. Serial Combinators: ”Optimal” Grains of Parallelism. In FPCA '85, pages 382–399, September 1985.

    Google Scholar 

  55. P. Hudak and R. M. Keller. Garbage Collection and Task Deletion in Distributed Applicative Systems. In ACM Symp. on Lisp and Functional Programming, pages 168–178, 1982.

    Google Scholar 

  56. P. Hudak, S. L. Peyton Jones, and P. L. Wadler. Report on the Programming Language Haskell: a Non-Strict, Purely Functional Language. Special Issue of SIGPLAN Notices, 16(5), May 1992.

    Google Scholar 

  57. P. Hudak and L. Smith. Para-functional Programming: A Paradigm for Programming Multiprocessor Systems. In ACM POPL, pages 243–254, January 1986.

    Google Scholar 

  58. R. J. M. Hughes. A Distributed Garbage Collection Algorithm. In FPCA '85, pages 256–272, September 1985.

    Google Scholar 

  59. T.Johnsson. Compiling Lazy Functional Languages. PhD thesis, Chalmers Tekniska Högskola, Göteborg, Sweend, January 1987.

    Google Scholar 

  60. R.E.Jones and R.D.Lins. Garbage Collection: Algorithms for Automatic Dynamic Memory Management, John Wiley and Sons, 1996, ISBN 0 471 94148 4.

    Google Scholar 

  61. K.Kakuta, H.Nakamura, and S.Iida. Parallel reference counting algorithm. Information Processing Letters, 23(1):33–37, 1986.

    Google Scholar 

  62. R. M, Keller, F.C.H. Lin, and J. Tanaka, Rediflow multiprocessing. In IEEE Compcon, pages 410–417, February 1984.

    Google Scholar 

  63. P. Kelly. Functional Programming for Looselycoupled Multiprocessors. Research Monographs in Parallel and Distributed Computing. Pitman, 1989.

    Google Scholar 

  64. J. M. Kewley and K. Glynn. Evaluation Annotations for Hope+. In [34], pages 329–337.

    Google Scholar 

  65. D.E. Knuth. The art of computer programming, volume I: Fundamental algorithms, chapter 2. Addison-Wesley, Reading, Ma., 2nd edition, 1973.

    Google Scholar 

  66. H.T. Kung and S.W. Song. An efficient parallel garbage collection system and its correctness proof. In IEEE Symposium on Foundations of Computer Science, pages 120–131. IEEE, 1977.

    Google Scholar 

  67. J.Lambek. From lambda-calculus to cartesian closed categories. In J.P.Seldin and J.R.Hindley, editors, in To H.B.Curry: Essays on Combinatory Logic, Lambda-Calculus and Formalism. Academic Press, 1980.

    Google Scholar 

  68. L.Lamport. Garbage collection with multiple processes: An exercise in parallelism. In Proceedings of the 1976 International Conference on Parallel Processing, pages 50–54, 1976.

    Google Scholar 

  69. P.J.Landin. The mechanical evaluation of expressions, Computer Journal, 6(4):308–320, 1964.

    Google Scholar 

  70. R.D.Lins. Categorical multi-combinators. In Gilles Kahn, editor, Functional Programming Languages and Computer Architecture, pages 60–79. Springer-Verlag, September 1987. LNCS 274.

    Google Scholar 

  71. R.D. Lins. A shared memory architecture for parallel cyclic reference counting. Microprocessing and Microprogramming, 34:31–35, September 1991.

    Google Scholar 

  72. R.D. Lins. A multi-processor shared memory architecture for parallel cyclic reference counting. Microprocessing and Microprogramming, 35:563–568, September 1992.

    Google Scholar 

  73. R.D.Lins, G.G.Cruz Neto & R.F.Lima. Implementing and Optimising ΓCMC, Proceedings of Euromicro'94, pp.353–361, IEEE Computer Society Press, Sep. 1994.

    Google Scholar 

  74. R.D.Lins and R.E.Jones. Cyclic Weighted Reference Counting, Proceedings of WP&DP'93, K.Boyanov (editor), North-Holland, 1993.

    Google Scholar 

  75. R.D.Lins & B.O.Lira. ΓCMC: A Novel Way of Implementing Functional Languages, Journal of Programming Languages, 1:19–39, Chapmann & Hall, January 1993.

    Google Scholar 

  76. R.D.Lins, S.J.Thompson and S.Peyton Jones, On the Equivalence between CM-C and TIM, Journal of Functional Programming, 4(1):47–63, Cambridge University Press, January/1994.

    Google Scholar 

  77. R.D.Lins & P.G.Soares. Some Performance Figures for the G-Machine and its Optimisations. Microprocessing and Microprogramming 37(1993) 163–166, North-Holland.

    Google Scholar 

  78. R.D.Lins & S.J.Thompson. CM-CM: A categorical multi-combinator machine. In Proceedings of XVI Latino American Conference on Informatics, Assuncion, Paraguay, September 1990.

    Google Scholar 

  79. R.D.Lins & S.J.Thompson. Implementing SASL using categorical multicombinators. Software — Practice and Experience, 20(8):1137–1165, November 1990.

    Google Scholar 

  80. G. A. Magoo and D. F. Stanat. The FFP Machine. In High-Level Language Computer Architectures, pages 430–468, 1989.

    Google Scholar 

  81. D. L. McBurney and M. R. Sleep. Transputer-Based Experiments with the ZAPP Architecture. In PARLE '87, pages 242–259. Springer-Verlag LNCS 258, 1987.

    Google Scholar 

  82. J.McCarthy. Recursive functions of symbolic expressions and their computation by machine. Communications of the ACM, 3:184–195, 1960.

    Google Scholar 

  83. J, McGraw. SISAL: Streams and Iterations in a Single-Assignment Language: Reference Manual version 1.2. Lawrence Livermore Natl. Lab., 1985. Manual M-146, Revision 1.

    Google Scholar 

  84. R.Milner. Standard ML proposal. The ML/LCF/Hope Newsletter, 1(3), January 1984.

    Google Scholar 

  85. E.Moggi. Computational lambda calculus and monads, in Logic in Computer Science, California, IEEE Press, June 1989.

    Google Scholar 

  86. M.A.Musicante & R.D.Lins. GMC: A Graph Multi-Combinator Machine. Microprocessing and Microprogramming, 31:31–35, North-Holland, April 1991.

    Google Scholar 

  87. R. S. Nikhil. Id (version 90.1) reference manual. Technical Report CSG Memo 284-2, Lab. for Computer Science, MIT, July 1991.

    Google Scholar 

  88. R. S. Nikhil, Arvind, and J. Hicks. pH Language Proposal (Preliminary), 1st. September 1993. Electronic communication ou comp.lang.functional.

    Google Scholar 

  89. R. S. Nikhil G. M. Papadopoulos, and Arvind. *T: A Multithreaded Massively Parallel Architecture. In 19th. ACM Annual Symp. on Comp. Arch., pages 156–167, 1992.

    Google Scholar 

  90. J. T. O'Donnell. Bidirectional Fold and Scan. In [49], pages 193–200.

    Google Scholar 

  91. G. M. Papadopoulos. Implementation of a General Purpose Dataflow Multiprocessor. PhD thesis, Laboratory for Computer Science, MIT, August 1988.

    Google Scholar 

  92. N. Perry. Hope+. Technical Report IC/FPR/LANG/2.5.1/7 Issue 5, Imperial College, London, February 1988.

    Google Scholar 

  93. S. L. Peyton Jones, C. Clack, and J. Salkid. High-Performance Parallel Graph Reduction. In PARLE '89, pages 193–206, Eindhoven, The Netherlands, June 12–16, 1989. Springer-Verlag LNCS 365

    Google Scholar 

  94. S. L. Peyton Jones, C. Clack, J. Salkild, and M. Hardie. GRIP — a High-Performance Architecture for Parallel Graph Reduction. In FPCA '87, pages 98–112. Springer-Verlag LNCS 274, 1987.

    Google Scholar 

  95. S.L.Peyton Jones and J.Salkild. The spineless tagless g-machine. In Proc.ACM Conference on Functional Programming Languages and Computer Architecture, pages 184–201, Snowbird, USA, 1989.

    Google Scholar 

  96. S.L.Peyton Jones, A.Gordon and S.Finne. Concurrent Haskell. In Proc. of 23rd ACM Symposium on Principles of Programming Languages (POPL'96), Florida, 1996.

    Google Scholar 

  97. M. J. Plasmeijer and M. C. J. D. van Eekelen, editors. Proc. 5th. Intl. Workshop on Parallel Impl. of Funct. Langs. Nijmegen, 1993.

    Google Scholar 

  98. F.J. Pollack, G.W. Cox, D.W. Hammerstein, K.C. Kahn, K.K. Lai, and J.R. Rattner. Supporting Ada memory management in the iAPX-432. In Proceedings of the Symposium on Architectural Support for Programming Languages and Operating Systems, pages 117–131. SIGPLAN Notices (ACM) 17,4, 1982.

    Google Scholar 

  99. H. Richards. An Overview of Burroughs NORMA. Technical report, Austin Research Centre, Burroughs Corp., January 1985.

    Google Scholar 

  100. P. Roe. Parallel Programming using Functional Languages. PhD thesis, Glasgow University, April 1991.

    Google Scholar 

  101. V. Sarkar and J. Hennessy. Partitioning Parallel Programs for Macro-Dataflow. In ACM Symp. on Lisp and Functional Programming, pages 202–211, 1986.

    Google Scholar 

  102. W. Schreiner. Parallel Functional Programming — an Annotated Bibliography, Technical Report 93-24, RISC-Linz, Johannes Kepler University, Linz, Austria, May 1993.

    Google Scholar 

  103. D.Scott. Relating theories of the lambda-calculus. In J.P.Seldin and J.R.Hindley, editors, in To H.B.Curry: Essays on Combinatory Logic, Lambda-Calculus and Formalism. Academic Press, 1980.

    Google Scholar 

  104. M. R. Sleep, M. J. Plasmeijer, and M. C. J. D. van Eekelen, editors. Tem Graph Rewriting: Theory and Practice. Wiley, 1993.

    Google Scholar 

  105. M.Shapiro, O.Gruber and D.Plainfossé. A garbage detection protocol for a realistic distributed object-support system. Technical Report 1320, Rapports de Recherche, INRIA-Rocqencourt, Novembre 1990.

    Google Scholar 

  106. G.L. Steele. Multiprocessing compactifying garbage collection. Communications of the ACM, 18(9):495–508, September 1975.

    Google Scholar 

  107. G.L. Steele. Corrigendum: Multiprocessing compactifying garbage collection. Communications of the ACM, 19(6):354, June 1976.

    Google Scholar 

  108. W. R. Stoye. The Implementation of Functional Languages using Custom Hardware. PhD thesis, University of Cambridge, 1985.

    Google Scholar 

  109. S.J.Thompson & R.D.Lins. The Categorical Multi-Combinator Machine: CMCM, The Computer Journal, vol 35(2): 170–176, Cambridge University Press, April 1992.

    Google Scholar 

  110. P.W.Trinder, K.Hammond, J.S.Mattson Jr., A.S.Partridge. GUM: a portable parallel implementation of Haskell, Proc. of Programming Language Design and Implementation, Philadelfia, USA, May, 1996.

    Google Scholar 

  111. A.M.Turing, On computable numbers with an application to the Entscheidungsproblem, Proc. London Math. Soc. 42, pp 230–265.

    Google Scholar 

  112. D.A. Turner. A new implementation technique for applicative languages. Software — Practice and Experience, 9, 1979.

    Google Scholar 

  113. D.A.Turner. Functional Programming as executable Specifications, Phil.Transactions of the Royal Society of London 312, pp.363–388, 1984.

    Google Scholar 

  114. P.L. Wadler. Analysis of an algorithm for real-time garbage collection. Communications of the ACM, 19(9):491–500, September 1976.

    Google Scholar 

  115. I. Watson. Simulation of a Physical EDS Machine Architecture. Technical report, Department of Computer Science, University of Manchester, UK, September 1989.

    Google Scholar 

  116. I. Watson, V. Woods, P. Watson, R. Banach, M. Greenberg, and J, Sargeant. Flagship: a Parallel Architecture for Declarative Programming. In 15th. Annual ACM Symp, on Comp. Arch., page 124, 1988.

    Google Scholar 

  117. P. Watson and I. Watson. An Efficient Garbage Collection Scheme for Parallel Computer Architectures. In PARLE '87, pages 432–443. Springer Verlag LNCS 259, 1987.

    Google Scholar 

  118. P. Watson and I. Watson. Evaluating Functional Programs on the FLAG-SHIP Machine. In FPCA '87, pages 80–97. Springer-Verlag LNCS 274, September 1987.

    Google Scholar 

  119. T. Yuba, T. Shimada, K. Hiraki, and H. Kashiwagi. SIGMA-1: A Dataflow Computer for Scientific Computations. Computer Physics Communications, pages 141–148, 1985.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

José M. L. M. Palma Jack Dongarra

Rights and permissions

Reprints and permissions

Copyright information

© 1997 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Dueire Lins, R. (1997). Functional programming and parallel processing. In: Palma, J.M.L.M., Dongarra, J. (eds) Vector and Parallel Processing — VECPAR'96. VECPAR 1996. Lecture Notes in Computer Science, vol 1215. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-62828-2_134

Download citation

  • DOI: https://doi.org/10.1007/3-540-62828-2_134

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-62828-6

  • Online ISBN: 978-3-540-68699-6

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics