Advertisement

prialt in Handel-C: an operational semantics

  • Andrew ButterfieldEmail author
  • Jim Woodcock
Special section on formal methods for industrial critical systems

Abstract

We describe an operational semantics for the hardware compilation language Handel-C [7], which is a C-like language with channel communication and parallel constructs which compiles down to mainly synchronously clocked hardware. The work in this paper builds on previous work describing the semantics of the “prialt” construct within Handel-C [5] and a denotational semantics for part of the language [6]. We describe a key subset of the language and show how a design decision for the real language, namely that default guards in a prialt statement executed in “zero-time”, has consequences for the complexity of the operational semantics. We present the operational semantics, along with a revised and completed prialt semantics, indicating clearly the interface between them. We then describe a notion of observational equivalence and present an example illustrating how we handle the complexity of nested prialts in default guards.

Keywords

Handel-C Operational semantics Priority  

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Abdallah J, Hawkins AE (2003) Formal behavioural synthesis of Handel-c parallel hardware implementation for functional specifications. In: Proceedings of the 36th annual Hawaii international conference on system sciences. IEEE Press, pp 278–288Google Scholar
  2. 2.
    Barrett G, Goldsmith M, Jones G, Kay A (1988) The meaning and implementation of PRI ALT in occam. In: Askew C (ed) Occam and the transputer, research and applications (OUG-9), July 1988Google Scholar
  3. 3.
    Butterfield A (2001) Denotational semantics for prialt-free Handel-C. Technical Report TCD-CS-2001-53, Dept. of Computer Science, Trinity College, Dublin UniversityGoogle Scholar
  4. 4.
    Butterfield A (2001) Interpretative semantics for prialt-free Handel-C. Technical Report TCD-CS-2001-54, Dept. of Computer Science, Trinity College, Dublin UniversityGoogle Scholar
  5. 5.
    Butterfield A, Woodcock J (2002) Semantics of prialt in Handel-C. In: Pasco J, Welch P, Loader R, Sunderam V (eds) Communicating process architectures – 2002, Concurrent Systems Engineering, Amsterdam, September. IOS Press, Amsterdam, pp 1–16Google Scholar
  6. 6.
    Butterfield A, Woodcock J (2003) Semantic domains for Handel-c. In: Flynn S, Hurley T, Mac an Airchinnigh M, Madden N, McGettrick M, Schellekens M, Seda A (eds) Electronic notes in theoretical computer science, vol 74. Elsevier, AmsterdamGoogle Scholar
  7. 7.
    Celoxica Ltd. (2002) Handel-C language reference manual, v3.0. URL: www.celoxica.comGoogle Scholar
  8. 8.
    Cleaveland R, Hennessy M (1988) Priorities in process algebra. In: Proceedings of the 3rd annual symposium on logic in computer science, Edinburgh. IEEE Press, New York, pp 193–202Google Scholar
  9. 9.
    Cleaveland R, Luettgen G, Natarajan V (2001) Priority in process algebra. In: Bergstra JA, Ponse A, Smolka SA (eds) Handbook of process algebra. Elsevier, Amsterdam, pp 711–765Google Scholar
  10. 10.
    Cleaveland R, Luettgen G, Natarajan V, Sims S (1996) Modeling and verifying distributed systems using priorities: a case study. In: 2nd international workshop on tools and algorithms for the construction and analysis of systems (TACAS ’96), Passau, Germany, March 1996. Lecture notes in computer science, vol 1055. Springer, Berlin Heidelberg New York, pp 287–297Google Scholar
  11. 11.
    Fidge CJ (1993) A formal definition of priority in CSP. ACM Trans Programm Lang Syst 15(4):681–705CrossRefGoogle Scholar
  12. 12.
    Haskell 98 language and libraries: the revised report, December 2002. www.haskell.orgGoogle Scholar
  13. 13.
    Hoare CAR, Jifeng H (1998) Unifying theories of programming. Series in computer science. Prentice Hall, Upper Saddle River, NJGoogle Scholar
  14. 14.
    Hoare CAR (1985) Communicating sequential processes. International series in computer science. Prentice Hall, Upper Saddle River, NJGoogle Scholar
  15. 15.
    Jones CB (1990) Systematic Software Development using VDM. International series in computer science, 2nd edn. Prentice Hall, Upper Saddle River, NJGoogle Scholar
  16. 16.
    Lawrence AE (2001) Cspp and event priority. In: Chalmers MMA, Muller H (eds) Communicating process architectures 2001, Concurrent Systems Engineering, Amsterdam, September. IOS Press, AmsterdamGoogle Scholar
  17. 17.
    Lawrence AE (2002) Acceptances, Behaviours and infinite activity in CSPP. In: Communicating process architectures – 2002, Concurrent systems engineering, Amsterdam, September. IOS Press, AmsterdamGoogle Scholar
  18. 18.
    Lawrence AE (2002) HCSP and true concurrency. In: Communicating process architectures – 2002, Concurrent systems engineering, Amsterdam, September. IOS Press, AmsterdamGoogle Scholar
  19. 19.
    Lee TK, Yusuf S, Luk W, Sloman M, Lupu E, Dulay N. Development framework for firewall processors. www.celoxica.com, in Academic Papers sectionGoogle Scholar
  20. 20.
    Mac an Airchinnigh M (1991) The Irish school of VDM. In: VDM ’91, Lecture notes in computer science, vol 552. Springer, Berlin Heidelberg New YorkGoogle Scholar
  21. 21.
    Page I, Luk W (1991) Compiling Occam into field-programmable gate arrays. In: Moore W, Luk W (eds) FPGAs, Oxford workshop on field programmable logic and applications. Abingdon EE&CS Books, Abingdon, UK, pp 271–283Google Scholar
  22. 22.
    Woodcock J, Cavalcanti A (2002) The semantics of Circus. 2nd international conference of B and Z users, Grenoble, France, January 2002. Lecture notes in computer science, vol 2272. Springer, Berlin Heidelberg New YorkGoogle Scholar

Copyright information

© Springer-Verlag 2005

Authors and Affiliations

  1. 1.University of DublinIreland
  2. 2.University of YorkUK

Personalised recommendations