Abstract
This paper considers two kinds of optimizations for a specification language compiler for stream-based runtime verification: (i) the manual addition of core functions with dedicated translation schemas and (ii) an improved initialization that simplifies subsequent constant propagation. We employ both optimizations within the open source runtime verification framework TeSSLa, which comes with a trans-compiler as synthesis tool which translates TeSSLa specifications to Scala code eventually running on the JVM. Our evaluation shows that the first optimization improves the efficiency of the resulting monitor significantly while the second gets lost within the variety of optimizations present for the back end systems.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
References
Leucker, M., Schallhart, C.: A brief account of runtime verification. J. Log. Algebraic Program. 78(5), 293–303 (2009)
Pnueli, A.: The temporal logic of programs. In: Proceedings of the 18th IEEE Symposium on the Foundations of Computer Science (FOCS-77), IEEE Computer Society Press, Providence, Rhode Island, pp. 46–57 (1977)
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). https://doi.org/10.1007/978-3-540-24622-0_5
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)
Barringer, H., Falcone, Y., Havelund, K., Reger, G., Rydeheard, D.: Quantified event automata: towards expressive and efficient runtime monitors. In: Giannakopoulou, D., Méry, D. (eds.) FM 2012. LNCS, vol. 7436, pp. 68–84. Springer, Heidelberg (2012). https://doi.org/10.1007/978-3-642-32759-9_9
D’Angelo, B., et al.: LOLA: runtime monitoring of synchronous systems. In: TIME, IEEE Computer Society, pp. 166–174 (2005)
Faymonville, P., Finkbeiner, B., Schwenger, M., Torfah, H.: Real-time stream-based monitoring. CoRR abs/1711.03829 (2017)
Gorostiaga, F., Sánchez, C.: Striver: stream runtime verification for real-time event-streams. In: Colombo, C., Leucker, M. (eds.) RV 2018. LNCS, vol. 11237, pp. 282–298. Springer, Cham (2018). https://doi.org/10.1007/978-3-030-03769-7_16
Convent, L., Hungerecker, S., Leucker, M., Scheffel, T., Schmitz, M., Thoma, D.: TeSSLa: temporal stream-based specification language. In: Massoni, T., Mousavi, M.R. (eds.) SBMF 2018. LNCS, vol. 11254, pp. 144–162. Springer, Cham (2018). https://doi.org/10.1007/978-3-030-03044-5_10
Johnston, W.M., Hanna, J.R.P., Millar, R.J.: Advances in dataflow programming languages. ACM Comput. Surv. 36(1), 1–34 (2004)
Lindholm, T., Yellin, F.: The Java Virtual Machine Specification. 2nd edn. Addison Wesley (1999)
Baumeister, J., Finkbeiner, B., Kruse, M., Schwenger, M.: Automatic optimizations for stream-based monitoring languages. In: Deshmukh, J., Ničković, D. (eds.) RV 2020. LNCS, vol. 12399, pp. 451–461. Springer, Cham (2020). https://doi.org/10.1007/978-3-030-60508-7_25
Halbwachs, N., Raymond, P., Ratel, C.: Generating efficient code from data-flow programs. In: Maluszyński, J., Wirsing, M. (eds.) PLILP 1991. LNCS, vol. 528, pp. 207–218. Springer, Heidelberg (1991). https://doi.org/10.1007/3-540-54444-5_100
Amagbégnon, P., Besnard, L., Le Guernic, P.: Implementation of the data-flow synchronous language SIGNAL. In: PLDI, ACM, pp. 163–173 (1995)
Finkbeiner, B., Oswald, S., Passing, N., Schwenger, M.: Verified rust monitors for Lola specifications. In: Deshmukh, J., Ničković, D. (eds.) RV 2020. LNCS, vol. 12399, pp. 431–450. Springer, Cham (2020). https://doi.org/10.1007/978-3-030-60508-7_24
Kallwies, H., Leucker, M., Scheffel, T., Schmitz, M., Thoma, D.: Aggregate update problem for multi-clocked dataflow languages. In: CGO, IEEE, pp. 79–91 (2022)
Aycock, J.: A brief history of just-in-time. ACM Comput. Surv. 35(2), 97–113 (2003)
Barrett, E., Bolz, C.F., Killick, R., Mount, S., Tratt, L.: Virtual machine warmup blows hot and cold. CoRR abs/1602.00602 (2016)
Georges, A., Buytaert, D., Eeckhout, L.: Statistically rigorous java performance evaluation. In: Proceedings of the 22nd Annual ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages and Applications. OOPSLA 2007, New York, NY, USA, Association for Computing Machinery, pp. 57–76 (2007)
Adl-Tabatabai, A.R., Cierniak, M., Lueh, G.Y., Parikh, V., Stichnoth, J.: Fast, effective code generation in a just-in-time Java compiler. 33, 280–290 (1998)
Dragos, I.: Compiling Scala for Performance. PhD thesis, Ëcole Polytechnique Fédérale de Lausanne (2010)
Ivanov, V.: JVM JIT-compiler overview. http://cr.openjdk.java.net/~vlivanov/talks/2015_JIT_Overview.pdf at Oracle. Accessed 31 May 2021
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2022 Springer Nature Switzerland AG
About this paper
Cite this paper
Kallwies, H., Leucker, M., Prilop, M., Schmitz, M. (2022). Optimizing Trans-Compilers in Runtime Verification Makes Sense – Sometimes. In: Aït-Ameur, Y., Crăciun, F. (eds) Theoretical Aspects of Software Engineering. TASE 2022. Lecture Notes in Computer Science, vol 13299. Springer, Cham. https://doi.org/10.1007/978-3-031-10363-6_14
Download citation
DOI: https://doi.org/10.1007/978-3-031-10363-6_14
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-031-10362-9
Online ISBN: 978-3-031-10363-6
eBook Packages: Computer ScienceComputer Science (R0)