skip to main content
tutorial

Engineering domain-specific languages with formula 2.0

Published:10 November 2013Publication History
Skip Abstract Section

Abstract

Domain-specific languages (DSLs) are useful for capturing and reusing engineering expertise. They can formalize industrial patterns and practices while increasing the scalability of verification, because input programs are written at a higher level of abstraction. However, engineering new DSLs with custom verification is a non-trivial task in its own right, and usually requires programming language, formal methods, and automated theorem proving expertise.

In this tutorial we present FORMULA 2.0, which is formal framework for developing DSLs. FORMULA specifications are succinct descriptions of DSLs, and specifications can be immediately connected to state-of-the-art analysis engines without additional expertise. FORMULA provides: (1) succinct specifications of DSLs and compilers, (2) efficient compilation and execution of input programs, (3) program synthesis and compiler verification.

We take a unique approach to provide these features: Specifications are written as strongly-typed open-world logic programs. These specifications are highly declarative and easily express rich synthesis / verification problems. Automated reasoning is enabled by efficient symbolic execution of logic programs into quantifier-free sub-problems, which are dispatched to the state-of-the-art SMT solver Z3. FORMULA has been applied within Microsoft to develop DSLs for verifiable device drivers and protocols. It has been used by the automotive / embedded systems industries for software / hardware co-design and design-space exploration under hard resource allocation constraints. It is being used to develop semantic specifications for complex cyber-physical systems.

References

  1. L. M. de Moura and N. Bjørner. Satisfiability modulo theories: introduction and applications. Commun. ACM, 54(9):69--77, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. A. Desai, V. Gupta, E. K. Jackson, S. Qadeer, S. K. Rajamani, and D. Zufferey. P: safe asynchronous event-driven programming. In PLDI, pages 321--332, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. E. K. Jackson, N. Bjørner, and W. Schulte. Canonical regular types. In ICLP (Technical Communications), pages 73--83, 2011.Google ScholarGoogle Scholar
  4. E. K. Jackson, N. Bjørner, and W. Schulte. Open-world logic programs: A new foundation for formal specifications. Technical Report MSR-TR-2013-55, Microsoft Research, 2013. http://research.microsoft.com/pubs/192963/MSR-TR-2013-55.pdf.Google ScholarGoogle Scholar
  5. E. K. Jackson, E. Kang, M. Dahlweid, D. Seifert, and T. Santen. Components, Platforms and Possibilities: Towards Generic Automation for MDA. In EMSOFT, pages 39--48, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. E. K. Jackson, W. Schulte, and N. Bjørner. Detecting specification errors in declarative languages with constraints. In MoDELS, pages 399--414, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. E. K. Jackson, G. Simko, and J. Sztipanovits. Diversely Enumerating System-Level Architectrues. In EMSOFT, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. G. Simko, D. Lindecker, T. Levendovszky, S. Neema, and J. Sztipanovits. Formal semantics specification of cyber-physical components integration and composition. In MoDELS, 2013.Google ScholarGoogle Scholar

Index Terms

  1. Engineering domain-specific languages with formula 2.0

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in

      Full Access

      • Published in

        cover image ACM SIGAda Ada Letters
        ACM SIGAda Ada Letters  Volume 33, Issue 3
        HILT '13
        December 2013
        80 pages
        ISSN:1094-3641
        DOI:10.1145/2658982
        Issue’s Table of Contents
        • cover image ACM Conferences
          HILT '13: Proceedings of the 2013 ACM SIGAda annual conference on High integrity language technology
          November 2013
          100 pages
          ISBN:9781450324670
          DOI:10.1145/2527269

        Copyright © 2013 Owner/Author

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 10 November 2013

        Check for updates

        Qualifiers

        • tutorial

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader
      About Cookies On This Site

      We use cookies to ensure that we give you the best experience on our website.

      Learn more

      Got it!