Skip to main content

Internal versus External DSLs for Trace Analysis

(Extended Abstract)

  • Conference paper

Part of the Lecture Notes in Computer Science book series (LNPSE,volume 7186)

Abstract

This tutorial explores the design and implementation issues arising in the development of domain-specific languages for trace analysis. It introduces the audience to the general concepts underlying such special-purpose languages building upon the authors’ own experiences in developing both external domain-specific languages and systems, such as Eagle, Hawk, Ruler and LogScope, and the more recent internal domain-specific language and system TraceContract within the Scala language.

Keywords

  • run-time verification
  • trace analysis
  • domain-specific language (DSL)
  • external DSL
  • internal DSL
  • TraceContract
  • Scala

Part of the work to be covered in this tutorial was carried out at Jet Propulsion Laboratory, California Institute of Technology, under a contract with the National Aeronautics and Space Administration.

This is a preview of subscription content, access via your institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (Canada)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (Canada)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (Canada)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

References

  1. Aho, A.V., Kernighan, B.W., Weinberger, P.J.: The AWK programming language. Addison-Wesley (1988)

    Google Scholar 

  2. Barringer, H., Goldberg, A., Havelund, K., Sen, K.: Rule-Based Runtime Verification. In: Steffen, B., Levi, G. (eds.) VMCAI 2004. LNCS, vol. 2937, pp. 44–57. Springer, Heidelberg (2004)

    CrossRef  Google Scholar 

  3. Barringer, H., Groce, A., Havelund, K., Smith, M.: Formal analysis of log files. Journal of Aerospace Computing, Information, and Communication 7(11), 365–390 (2010)

    Google Scholar 

  4. Barringer, H., Havelund, K.: TraceContract: A Scala DSL for Trace Analysis. In: Butler, M., Schulte, W. (eds.) FM 2011. LNCS, vol. 6664, pp. 57–72. Springer, Heidelberg (2011)

    CrossRef  Google Scholar 

  5. Barringer, H., Havelund, K., Kurklu, E., Morris, R.: Checking flight rules with TraceContract: Application of a Scala DSL for trace analysis. In: Scala Days 2011. Stanford University, California (2011)

    Google Scholar 

  6. Barringer, H., Rydeheard, D.E., Havelund, K.: Rule systems for run-time monitoring: from Eagle to RuleR. J. Log. Comput. 20(3), 675–706 (2010)

    CrossRef  MathSciNet  MATH  Google Scholar 

  7. d’Amorim, M., Havelund, K.: Event-based runtime verification of Java programs. ACM SIGSOFT Software Engineering Notes 30(4), 1–7 (2005)

    CrossRef  Google Scholar 

  8. Farber, D., Griswold, R., Polonsky, I.: SNOBOL, A string manipulation language. Jounral of the ACM 11(1), 21–30 (1964)

    CrossRef  MATH  Google Scholar 

  9. Fowler, M., Parsons, R.: Domain-Specific Languages. Addison-Wesley (2010)

    Google Scholar 

  10. Garillot, F., Werner, B.: Simple Types in Type Theory: Deep and Shallow Encodings. In: Schneider, K., Brandt, J. (eds.) TPHOLs 2007. LNCS, vol. 4732, pp. 368–382. Springer, Heidelberg (2007)

    CrossRef  Google Scholar 

  11. Lunar Atmosphere Dust Environment Explorer, http://www.nasa.gov/mission_pages/LADEE/main

  12. Scala, http://www.scala-lang.org

  13. Stolz, V., Huch, F.: Runtime verification of concurrent Haskell programs. In: Proc. of the 4th Int. Workshop on Runtime Verification (RV 2004). ENTCS, vol. 113, pp. 201–216. Elsevier (2005)

    Google Scholar 

  14. The Haskell Programming Language, http://www.haskell.org/haskellwiki/Haskell

  15. The Perl Programming Language, http://www.perl.org

  16. Yngve, V.H.: A programming language for mechanical translation. Mechanical Translation 5(1), 25–41 (1958)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and Permissions

Copyright information

© 2012 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Barringer, H., Havelund, K. (2012). Internal versus External DSLs for Trace Analysis. In: Khurshid, S., Sen, K. (eds) Runtime Verification. RV 2011. Lecture Notes in Computer Science, vol 7186. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-29860-8_1

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-29860-8_1

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-29859-2

  • Online ISBN: 978-3-642-29860-8

  • eBook Packages: Computer ScienceComputer Science (R0)