Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
research-article

Theoretical and Practical Aspects of Linking Operational and Algebraic Semantics for MDESL

Published: 29 July 2019 Publication History

Abstract

Verilog is a hardware description language (HDL) that has been standardized and widely used in industry. Multithreaded discrete event simulation language (MDESL) is a Verilog-like language. It contains interesting features such as event-driven computation and shared-variable concurrency. This article considers how the algebraic semantics links with the operational semantics for MDESL. Our approach is from both the theoretical and practical aspects. The link is proceeded by deriving the operational semantics from the algebraic semantics. First, we present the algebraic semantics for MDESL. We introduce the concept of head normal form. Second, we present the strategy of deriving operational semantics from algebraic semantics. We also investigate the soundness and completeness of the derived operational semantics with respect to the derivation strategy. Our theoretical approach is complemented by a practical one, and we use the theorem proof assistant Coq to formalize the algebraic laws and the derived operational semantics. Meanwhile, the soundness and completeness of the derived operational semantics is also verified via the mechanical approach in Coq. Our approach is a novel way to formalize and verify the correctness and equivalence of different semantics for MDESL in both a theoretical approach and a practical approach.

References

[1]
Gilles Barthe, Guillaume Dufay, Line Jakubiec, Bernard P. Serpette, and Simão Melo de Sousa. 2001. A formal executable semantics of the JavaCard platform. In Proceedings of the 10th European Symposium on Programming Languages and Systems (ESOP’01). 302--319.
[2]
Yves Bertot and Pierre Castéran. 2004. Interactive Theorem Proving and Program Development: Coq Art: The Calculus of Inductive Constructions. Springer-Verlag.
[3]
Mohammad-Mahdi Bidmeshki and Yiorgos Makris. 2015. VeriCoq: A Verilog-to-Coq converter for proof-carrying hardware automation. In Proceedings of the 2015 IEEE International Symposium on Circuits and Systems (ISCAS’15). 29--32.
[4]
Sandrine Blazy and Xavier Leroy. 2009. Mechanized semantics for the clight subset of the C language. J. Autom. Reas. 43, 3 (2009), 263--288.
[5]
Jan Olaf Blech and Sidi Ould Biha. 2011. Verification of PLC properties based on formal semantics in Coq. In Proceedings of the 9th International Conference on Software Engineering and Formal Methods (SEFM’11). 58--73.
[6]
Jan Olaf Blech and Bernhard Schätz. 2012. Towards a formal foundation of behavioral types for UML state-machines. ACM SIGSOFT Softw. Eng. Notes 37, 4 (2012), 1--8.
[7]
Jonathan P. Bowen, Jifeng He, and Qiwen Xu. 2000. An animatable operational semantics of the verilog hardware description language. In Proceedings of the 3rd IEEE International Conference on Formal Engineering Methods (ICFEM’00). 199--208.
[8]
Riccardo Bresciani and Andrew Butterfield. 2014. A UTP approach towards probabilistic protocol verification. Secur. Commun. Netw. 7, 1 (2014), 99--107.
[9]
Stephen D. Brookes. 1996. Full abstraction for a shared-variable parallel language. Inf. Comput. 127, 2 (1996), 145--163.
[10]
Andrew Butterfield and Art Ó. Catháin. 2009. Concurrent models of flash memory device behaviour. In Proceedings of the 12th Brazilian Symposium on Formal Methods (SBMF’09). 70--83.
[11]
Ana Cavalcanti, Andy J. Wellings, and Jim Woodcock. 2013. The safety-critical Java memory model formalised. Formal Asp. Comput. 25, 1 (2013), 37--57.
[12]
Adam Chlipala. 2013a. The bedrock structured programming system: Combining generative metaprogramming and hoare logic in an extensible program verifier. In Proceedings of ACM SIGPLAN International Conference on Functional Programming (ICFP’13). 391--402.
[13]
Adam Chlipala. 2013b. Certified Programming with Dependent Types - A Pragmatic Introduction to the Coq Proof Assistant. MIT Press.
[14]
Joonwon Choi, Muralidaran Vijayaraghavan, Benjamin Sherman, Adam Chlipala, and Arvind. 2017. Kami: A platform for high-level parametric hardware specification and its modular verification. In Proceedings of the ACM on Programming Languages 1, ICFP (2017), 24.
[15]
Gabriel Ciobanu and Eneia Nicolae Todoran. 2015. Continuation semantics for concurrency with multiple channels communication. In Proceedings of the 17th International Conference on Formal Engineering Methods (ICFEM’15). 400--416.
[16]
Manuel Clavel, Francisco Durán, Steven Eker, Patrick Lincoln, Narciso Martí-Oliet, José Meseguer, and Carolyn L. Talcott. 2003. The Maude 2.0 system. In Proceedings of the 14th International Conference of Rewriting Techniques and Applications (RTA’03). 76--87.
[17]
Jacobus W. de Bakker and Erik P. de Vink. 1996. Control Flow Semantics. MIT Press.
[18]
Jordan Dimitrov. 2001. Operational semantics for Verilog. In Proceedings of the 8th Asia-Pacific Software Engineering Conference (APSEC’01). 161--168.
[19]
Michael J. C. Gordon. 1995. The semantic challenge of Verilog HDL. In Proceedings of the 10th Annual IEEE Symposium on Logic in Computer Science. IEEE Computer Society, Los Alamitos, CA, 136--145.
[20]
Michael J. C. Gordon. 2002. Relating event and trace semantics of hardware description languages. Comput. J. 45, 1 (2002), 27--36.
[21]
Jifeng He. 2003. An algebraic approach to the VERILOG programming. In Formal Methods at the Crossroads: From Panacea to Foundational Support. Springer, 65--80.
[22]
Jifeng He and C. A. R. Hoare. 1993. From algebra to operational semantics. Inf. Process. Lett. 45, 2 (1993), 75--80.
[23]
Jifeng He and C. A. R. Hoare. 1999. Linking theories in probabilistic programming. Inf. Sci. 119, 3--4 (1999), 205--218.
[24]
Jifeng He and Qin Li. 2018. A new roadmap for linking theories of programming and its applications on GCL and CSP. Sci. Comput. Program. 162 (2018), 3--34.
[25]
Jifeng He, Xiaoshan Li, and Zhiming Liu. 2006. rCOS: A refinement calculus of object systems. Theor. Comput. Sci. 365, 1--2 (2006), 109--142.
[26]
Jifeng He, Karen Seidel, and Annabelle McIver. 1997. Probabilistic models for the guarded command language. Sci. Comput. Program. 28, 2--3 (1997), 171--192.
[27]
Jifeng He and Huibiao Zhu. 2000. Formalising Verilog. In Proceedings of the 7th IEEE International Conference on Electronics, Circuits and Systems (ICECS’00).
[28]
C. A. R. Hoare and Jifeng He. 1998. Unifying Theories of Programming. Prentice Hall International Series in Computer Science.
[29]
C. A. R. Hoare, Jifeng He, and Augusto Sampaio. 1993. Normal form approach to compiler design. Acta Inf. 30, 8 (1993), 701--739.
[30]
C. A. R. Hoare. 1985. Communicating Sequential Processes. Prentice-Hall.
[31]
C. A. R. Hoare, Jifeng He, and Augusto Sampaio. 2000. Algebraic derivation of an operational semantics. In Proof, Language, and Interaction, Essays in Honour of Robin Milner. 77--98.
[32]
Tony Hoare. 2014. Laws of programming: The algebraic unification of theories of concurrency. In Proceedings of the 25th International Conference on Concurrency Theory (CONCUR’14). 1--6.
[33]
Tony Hoare and Stephan van Staden. 2012. In praise of algebra. Formal Asp. Comput. 24, 4--6 (2012), 423--431.
[34]
Tony Hoare, Stephan van Staden, Bernhard Möller, Georg Struth, Jules Villard, Huibiao Zhu, and Peter W. O’Hearn. 2014. Developments in concurrent Kleene algebra. In Proceedings of the 14th International Conference of Relational and Algebraic Methods in Computer Science (RAMiCS’14). 1--18.
[35]
Gérard Huet, Gilles Kahn, and Christine Paulin-Mohring. 2004. The Coq proof assistant a tutorial. Rapport Technique 178 (2004).
[36]
Robbert Krebbers, Xavier Leroy, and Freek Wiedijk. 2014. Formal C semantics: CompCert and the C standard. In Proceedings of the 5th International Conference on Interactive Theorem Proving (ITP’14). 543--548.
[37]
Xavier Leroy. 2010. Mechanized semantics - with applications to program proof and compiler verification. In Logics and Languages for Reliability and Security. 195--224.
[38]
Yongjian Li and Jifeng He. 2000. Formalising Verilog: Operational Semantics and Bisimulation. Technical Report.
[39]
Marino Miculan. 2001. On the formalization of the modal μ-calculus in the calculus of inductive constructions. Inf. Comput. 164, 1 (2001), 199--231.
[40]
Nimal Nissanke. 1997. Realtime Systems. Prentice Hall series in computer science, Vol. 1. Prentice Hall.
[41]
Marcel Oliveira, Ana Cavalcanti, and Jim Woodcock. 2009. A UTP semantics for Circus. Formal Asp. Comput. 21, 1--2 (2009), 3--32.
[42]
Marcel Oliveira, Ana Cavalcanti, and Jim Woodcock. 2013. Unifying theories in ProofPower-Z. Formal Asp. Comput. 25, 1 (2013), 133--158.
[43]
Sam Owre, John M. Rushby, and Natarajan Shankar. 1992. PVS: A prototype verification system. In Proceedings of the 11th International Conference on Automated Deduction. 748--752.
[44]
Gordon D. Plotkin. 2004. A structural approach to operational semantics. J. Log. Algebr. Program. 60-61 (2004), 17--139.
[45]
Iman Poernomo and Jeffrey Terrell. 2010. Correct-by-construction model transformations from partially ordered specifications in Coq. In Proceedings of the 12th International Conference on Formal Engineering Methods (ICFEM’10). 56--73.
[46]
Palnitkar Samir. 2003. Verilog HDL: A Guide to Digital Design and Synthesis. Vol. 1. Prentice Hall Professional.
[47]
Feng Sheng. 2018. Formalization of MDSEL. Retrieved from https://github.com/shengfeng/formalization_of_MDESL.
[48]
Feng Sheng, Liang Dou, and Zongyuan Yang. 2017. Mechanized semantics and refinement of UML-Statecharts. Front. IT 8 EE 18, 11 (2017), 1773--1783.
[49]
Ling Shi, Yongxin Zhao, Yang Liu, Jun Sun, Jin Song Dong, and Shengchao Qin. 2018. A UTP semantics for communicating processes with shared variables and its formal encoding in PVS. Formal Asp. Comput. 30, 3--4 (2018), 351--380.
[50]
Xinbei Tang and Jim Woodcock. 2004a. Towards mobile processes in unifying theories. In Proceedings of the 2nd International Conference on Software Engineering and Formal Methods (SEFM’04). 44--53.
[51]
Xinbei Tang and Jim Woodcock. 2004b. Travelling processes. In Proceedings of the 7th International Conference on Mathematics of Program Construction (MPC’04). 381--399.
[52]
Donald E. Thomas and Philip Moorby. 1995. The Verilog Hardware Description Language. Vol. 1. Kluwer.
[53]
Daniele Turi and Gordon D. Plotkin. 1997. A formal executable semantics of the JavaCard platform. In Proceedings of the 12th Annual IEEE Symposium on Logic in Computer Science (LICS’97). 280--291.
[54]
Stephan van Staden and Tony Hoare. 2012. Algebra unifies operational calculi. In Proceedings of the 4th International Symposium on Unifying Theories of Programming (UTP’12). 88--104.
[55]
Hai Wan, Xiaoyu Song, and Ming Gu. 2010. Parameterized specification and verification of PLC systems in Coq. In Proceedings of the 4th IEEE International Symposium on Theoretical Aspects of Software Engineering (TASE’10). 179--182.
[56]
Jim Woodcock and Ana Cavalcanti. 2001. The steam boiler in a unified theory of Z and CSP. In Proceedings of the 8th Asia-Pacific Software Engineering Conference (APSEC’01). 291--298.
[57]
Jim Woodcock and Ana Cavalcanti. 2002. The semantics of circus. In Proceedings of the 2nd International Conference of B and Z Users (ZB’02). 84--203.
[58]
Xiaofeng Wu, Huibiao Zhu, and Xi Wu. 2014. Observation-oriented semantics for calculus of wireless systems. In Proceedings of the 5th International Symposium on Unifying Theories of Programming (UTP’14). 105--124.
[59]
Wanling Xie, Shuangqing Xiang, and Huibiao Zhu. 2018. A UTP approach for rTiMo. Formal Asp. Comput. 30, 6 (2018), 713--738.
[60]
Zhibin Yang, Jean-Paul Bodeveix, and Mamoun Filali. 2013. A comparative study of two formal semantics of the SIGNAL language. Front. Comput. Sci. 7, 5 (2013), 673--693.
[61]
Chaochen Zhou, CAR. Hoare, and Anders P. Ravn. 1991. A calculus of durations. Inform. Process. Lett. 40, 5 (1991), 269--276.
[62]
Huibiao Zhu. 2005. Linking the Semantics of a Multithreaded Discrete Event Simulation Language. Ph.D. dissertation. London South Bank University, London, UK.
[63]
Huibiao Zhu and Jifeng He. 2000. A semantics of Verilog using duration calculus. In Proceedings of the International Conference on Software: Theory and Practice. 421--432.
[64]
Huibiao Zhu, Jifeng He, and Jonathan P. Bowen. 2008. From algebraic semantics to denotational semantics for Verilog. Innov. Syst. Softw. Eng. 4, 4 (2008), 341--360.
[65]
Huibiao Zhu, Jifeng He, Shengchao Qin, and Phillip J. Brooke. 2015. Denotational semantics and its algebraic derivation for an event-driven system-level language. Formal Asp. Comput. 27, 1 (2015), 133--166.
[66]
Huibiao Zhu, Peng Liu, Jifeng He, and Shengchao Qin. 2012. Mechanical approach to linking operational semantics and algebraic semantics for Verilog using Maude. In Proceedings of the 4th International Symposium on Unifying Theories of Programming (UTP’12). 164--185.

Cited By

View all
  • (2023)Translating and verifying Cyber–Physical systems with shared-variable concurrency in SpaceExInternet of Things10.1016/j.iot.2023.10086423(100864)Online publication date: Oct-2023
  • (2023)Applying Formal Verification to an Open-Source Real-Time Operating SystemTheories of Programming and Formal Methods10.1007/978-3-031-40436-8_13(348-366)Online publication date: 8-Sep-2023
  • (2023)Jifeng He at Oxford and Beyond: An AppreciationTheories of Programming and Formal Methods10.1007/978-3-031-40436-8_1(3-18)Online publication date: 8-Sep-2023
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Transactions on Software Engineering and Methodology
ACM Transactions on Software Engineering and Methodology  Volume 28, Issue 3
July 2019
278 pages
ISSN:1049-331X
EISSN:1557-7392
DOI:10.1145/3343019
  • Editor:
  • Mauro Pezzè
Issue’s Table of Contents
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 29 July 2019
Accepted: 01 March 2019
Revised: 01 January 2019
Received: 01 August 2018
Published in TOSEM Volume 28, Issue 3

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Coq
  2. Multithreaded discrete event simulation language
  3. Semantics relating
  4. Unifying theories of programming (UTP)
  5. Verilog

Qualifiers

  • Research-article
  • Research
  • Refereed

Funding Sources

  • National Key Research and Development Program of China
  • National Natural Science Foundation of China

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)9
  • Downloads (Last 6 weeks)3
Reflects downloads up to 25 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2023)Translating and verifying Cyber–Physical systems with shared-variable concurrency in SpaceExInternet of Things10.1016/j.iot.2023.10086423(100864)Online publication date: Oct-2023
  • (2023)Applying Formal Verification to an Open-Source Real-Time Operating SystemTheories of Programming and Formal Methods10.1007/978-3-031-40436-8_13(348-366)Online publication date: 8-Sep-2023
  • (2023)Jifeng He at Oxford and Beyond: An AppreciationTheories of Programming and Formal Methods10.1007/978-3-031-40436-8_1(3-18)Online publication date: 8-Sep-2023
  • (2022)UTP semantics for the MCA ARMv8 architectureJournal of Systems Architecture: the EUROMICRO Journal10.1016/j.sysarc.2022.102438125:COnline publication date: 18-May-2022
  • (2021)Trace Semantics and Algebraic Laws for Total Store Order Memory ModelJournal of Computer Science and Technology10.1007/s11390-021-1616-136:6(1269-1290)Online publication date: 30-Nov-2021
  • (2021)Trace Semantics and Algebraic Laws for MCA ARMv8 Architecture Based on UTPDependable Software Engineering. Theories, Tools, and Applications10.1007/978-3-030-91265-9_5(81-101)Online publication date: 25-Nov-2021
  • (2020)Trace semantics and refinement patterns for real-time properties in event-B modelsScience of Computer Programming10.1016/j.scico.2020.102513197(102513)Online publication date: Oct-2020
  • (2020)Theoretical and Practical Approaches to the Denotational Semantics for MDESL based on UTPFormal Aspects of Computing10.1007/s00165-020-00513-432:2-3(275-314)Online publication date: 1-Jul-2020

View Options

Login options

Full Access

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

HTML Format

View this article in HTML Format.

HTML Format

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media