LETOS – a lightweight execution tool for operational semantics

A lightweight tool is proposed to aid in the development of operational semantics. To use LETOS an operational semantics must be expressed in its meta‐language, which itself is a superset of Miranda. The LETOS compiler is smaller than comparable tools, yet LETOS is powerful enough to support publication quality rendering using LaTeX, fast enough to provide competitive execution using Haskell, and versatile enough to support browsing of execution traces using Netscape. LETOS can be characterised as an experiment in ‘creative laziness’, showing how far one can get by gluing existing components together. The major specifications built using LETOS to‐date are a smart card version of the Java Virtual Machine, a deterministic version of the π‐calculus, and an electronic payment protocol. In addition, we have specified the semantics of many small programming languages and systems, totaling over 9000 lines of formal text. LETOS is unique in that it helps to check that a specification is operationally conservative. Copyright © 1999 John Wiley & Sons, Ltd.

[1]  Doris L. Carver,et al.  FunZ: An Intermediate Specification Language , 1995, Comput. J..

[2]  Peter Henderson,et al.  Executing formal specifications need not be harmful , 1996, Softw. Eng. J..

[3]  Robin Milner,et al.  A Calculus of Mobile Processes, II , 1992, Inf. Comput..

[4]  J. A. Robinson,et al.  A Machine-Oriented Logic Based on the Resolution Principle , 1965, JACM.

[5]  Eike Best,et al.  Semantics of sequential and parallel programs , 1996, Prentice Hall International series in computer science.

[6]  Didier Parigot,et al.  Integrating Natural Semantics and Attribute Grammars : the Minotaur System , 1993 .

[7]  J.F.Th. Kamperman,et al.  Compilation of Term Rewriting Systems , 1996 .

[8]  D. A. Turner,et al.  Miranda: A Non-Strict Functional language with Polymorphic Types , 1985, FPCA.

[9]  Susan Stepney,et al.  High integrity compilation - a case study , 1993 .

[10]  Henk Corporaal,et al.  Modular operational semantic specification of transport triggered architectures , 1997 .

[11]  Philip Wadler,et al.  The Glasgow Haskell Compiler: a technical overview , 1993 .

[12]  Wan Fokkink,et al.  Conservative Extension in Positive/Negative Conditional Term Rewriting with Applications to Software Renovation Factories , 1999, FASE.

[13]  Pieter H. Hartel,et al.  An Operational Model of QuickPay - Extended Abstract , 1998, CARDIS.

[14]  Philip Wadler,et al.  Packrat parsing:: simple, powerful, lazy, linear time, functional pearl , 2002, ICFP '02.

[15]  Robin Milner,et al.  Communication and concurrency , 1989, PHI Series in computer science.

[16]  Chris Verhoef,et al.  Concrete process algebra , 1995, LICS 1995.

[17]  Mikael Pettersson,et al.  Compiling Natural Semantics , 1999, Lecture Notes in Computer Science.

[18]  Patrick Borras,et al.  Centaur: the system , 1988, Software Development Environments.

[19]  David A. Watt,et al.  Executable semantic descriptions , 1986, Softw. Pract. Exp..

[20]  Mads Dam,et al.  Compiler Generation from Relational Semantics , 1986, ESOP.

[21]  Willem G. Vree,et al.  Communication lifting: fixed point computation for parallelism , 1995, Journal of Functional Programming.

[22]  Simon L. Peyton Jones,et al.  The Implementation of Functional Programming Languages , 1987 .

[23]  Robert D. Tennent,et al.  Semantics of programming languages , 1991, Prentice Hall International Series in Computer Science.

[24]  Mikael Pettersson A Compiler for Natural Semantics , 1996, CC.

[25]  Graham Hutton,et al.  Higher-order functions for parsing , 1992, Journal of Functional Programming.

[26]  Wan Fokkink,et al.  A conservative look at term deduction systems with variable binding , 1995 .

[27]  John C. Mitchell,et al.  Foundations for programming languages , 1996, Foundation of computing series.

[28]  Leslie Lamport,et al.  How to Write a Proof , 1995 .

[29]  Chris Verhoef,et al.  A Congruence Theorem for Structured Operational Semantics with Predicates and Negative Premises , 1994, Nord. J. Comput..

[30]  Adam C. Winstanley,et al.  EXPOSE: an animation tool for process-oriented specifications , 1991, Softw. Eng. J..

[31]  Jan Friso Groote,et al.  Structured Operational Semantics and Bisimulation as a Congruence , 1992, Inf. Comput..

[32]  Pieter H. Hartel,et al.  Using formal methods to cultivate trust in smart card operating systems , 1997, Future Gener. Comput. Syst..

[33]  Arie van Deursen,et al.  Language Prototyping: An Algebraic Specification Approach , 1996, AMAST Series in Computing.

[34]  Verónica Dahl,et al.  Logic Grammars , 1989, Symbolic Computation.

[35]  Pieter H. Hartel,et al.  The Operational Semantics of a Java Secure Processor , 1999, Formal Syntax and Semantics of Java.

[36]  Kenneth Slonneger,et al.  Executing continuation semantics: A comparison , 1993, Softw. Pract. Exp..

[37]  Peter Henderson,et al.  Questions and Answers About Ten Formal Methods , 1999 .

[38]  David A. Schmidt,et al.  Programming language semantics , 1996, CSUR.

[39]  Richard Bornat,et al.  Jape: A Calculator for Animating Proof-on-Paper , 1997, CADE.

[40]  Flemming Nielson,et al.  Semantics with applications - a formal introduction , 1992, Wiley professional computing.

[41]  Robin Milner,et al.  A Theory of Type Polymorphism in Programming , 1978, J. Comput. Syst. Sci..

[42]  Thomas Johnsson,et al.  Attribute grammars as a functional programming paradigm , 1987, FPCA.

[43]  Jim Grundy,et al.  Towards a Browsable Record of HOL Proofs , 1996 .