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
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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Aho, A.V., Kernighan, B.W., Weinberger, P.J.: The AWK programming language. Addison-Wesley (1988)
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)
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)
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)
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)
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)
d’Amorim, M., Havelund, K.: Event-based runtime verification of Java programs. ACM SIGSOFT Software Engineering Notes 30(4), 1–7 (2005)
Farber, D., Griswold, R., Polonsky, I.: SNOBOL, A string manipulation language. Jounral of the ACM 11(1), 21–30 (1964)
Fowler, M., Parsons, R.: Domain-Specific Languages. Addison-Wesley (2010)
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)
Lunar Atmosphere Dust Environment Explorer, http://www.nasa.gov/mission_pages/LADEE/main
Scala, http://www.scala-lang.org
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)
The Haskell Programming Language, http://www.haskell.org/haskellwiki/Haskell
The Perl Programming Language, http://www.perl.org
Yngve, V.H.: A programming language for mechanical translation. Mechanical Translation 5(1), 25–41 (1958)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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)