Translating HCL Programs into Petri Nets

  • Ricardo Massa Ferreira Lima UFPE
  • Rafael Dueire Lins UFPE

Resumo


Haskell# is a parallel extension to lazy functional language Haskell. The sequential part of programs is declared using standard Haskell. This reduces code development costs and increases its reliability by reusing existing and previously tested (or formally verified) Haskell modules. The structure of a process network (of possibly heterogeneous processors) is defined by Haskell# Coordination Language (HCL), also used for task-to-processor allocation. ln this work, we present an environment for analyzing formal properties of the communication structure of Haskell# programs. This environment contains a compiler that translates an HCL program into Petri nets, a well established family of formal specification techniques for modelling non-deterministic concurrent systems. Petri nets allow the analysis of a wide spectrum of properties, such as liveness, boundedness, and deadlock-trap.
Palavras-chave: Formal Methods, Parallel Programming, Petri Nets

Referências

C. Abmann. Coordinating Functional Processes Using Petri Nets. Implementation of Functional Languages, Springer-Verlag, LNCS 1268, pages 162-183, September 1997.

G. Agha. Actors: A Model for Concurrent Computation in Distributed Systems. MIT Press, Cambridge, Massachussets, 1986.

F. Arbab. The IWIM Model for Coordination of Concurrent Activities. International Conference on Coordination Models and Language, Springer-Verlag, LNCS 1061, pages 34-56, April 1996.

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

R. M. Burstall, D. B. McQueen, and D. T. Sannclla. Hope. Technical Report CSR-62-80, Edinburgh University, 1980.

F. W. Burton. Functional Programming for Concurrent and Distributed Computing, Computer Journal, 30(5):437-450, 1987.

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

G. A. Geist, A. Beguelin, J. Dongarra, W. Jiang, R. Manchek, and V. S. Sunderam. PVM: Parallel Virtual Machine - A User's Guide and Tutorial for Networked Parallel Computing. MIT Press, Cambridge, 1994.

GHC Team. The Glasgow Haskell Compiler Users Guide, Version 4.01. [link], 1998.

K. Hammond and Michaelson G. Research Directions in Parallel Functional Programming. Springer-Verlag, 1999.

C. A. R. Hoare. Communicating Sequential Processes. Prentice-Hall, C.A.R. Hoare Series Editor, 1985.

P. Hudak. Serial Combinators: "Optimal" Grains of Parallelism. FPCA '85, pages 382-399, September 1985.

P. Hudak. Para-Functional Programming in Haskell. Parallel Functional Languages and Compilers, B. K. Szymanski, Ed. ACM Press, New York, pages 159-196, 1991.
Publicado
04/10/2000
LIMA, Ricardo Massa Ferreira; LINS, Rafael Dueire. Translating HCL Programs into Petri Nets. In: SIMPÓSIO BRASILEIRO DE ENGENHARIA DE SOFTWARE (SBES), 14. , 2000, João Pessoa/PB. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2000 . p. 147-162. DOI: https://doi.org/10.5753/sbes.2000.25926.