{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,3,25]],"date-time":"2025-03-25T16:26:43Z","timestamp":1742920003657,"version":"3.40.3"},"publisher-location":"Cham","reference-count":28,"publisher":"Springer International Publishing","isbn-type":[{"type":"print","value":"9783031198489"},{"type":"electronic","value":"9783031198496"}],"license":[{"start":{"date-parts":[[2022,1,1]],"date-time":"2022-01-01T00:00:00Z","timestamp":1640995200000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/www.springer.com\/tdm"},{"start":{"date-parts":[[2022,1,1]],"date-time":"2022-01-01T00:00:00Z","timestamp":1640995200000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.springer.com\/tdm"}],"content-domain":{"domain":["link.springer.com"],"crossmark-restriction":false},"short-container-title":[],"published-print":{"date-parts":[[2022]]},"DOI":"10.1007\/978-3-031-19849-6_5","type":"book-chapter","created":{"date-parts":[[2022,10,19]],"date-time":"2022-10-19T15:03:32Z","timestamp":1666191812000},"page":"65-87","update-policy":"https:\/\/doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":1,"title":["Specification-Based Monitoring in\u00a0C++"],"prefix":"10.1007","author":[{"given":"Klaus","family":"Havelund","sequence":"first","affiliation":[]}],"member":"297","published-online":{"date-parts":[[2022,10,17]]},"reference":[{"key":"5_CR1","doi-asserted-by":"crossref","unstructured":"Attard, D.P., Cassar, I., Francalanza, A., Aceto, L., Ing\u00f3lfsd\u00f3ttir, A.: A runtime monitoring tool for actor-based systems. In: Gay, S., Ravara, A. (eds.) Behavioural Types: from Theory to Tools, chapter 3, pp. 49\u201376. River Publishers (2017)","DOI":"10.1201\/9781003337331-3"},{"key":"5_CR2","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"111","DOI":"10.1007\/978-3-540-77395-5_10","volume-title":"Runtime Verification","author":"H Barringer","year":"2007","unstructured":"Barringer, H., Rydeheard, D., Havelund, K.: Rule systems for run-time monitoring: from Eagle to RuleR. In: Sokolsky, O., Ta\u015f\u0131ran, S. (eds.) RV 2007. LNCS, vol. 4839, pp. 111\u2013125. Springer, Heidelberg (2007). https:\/\/doi.org\/10.1007\/978-3-540-77395-5_10"},{"key":"5_CR3","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"44","DOI":"10.1007\/978-3-540-24622-0_5","volume-title":"Verification, Model Checking, and Abstract Interpretation","author":"H Barringer","year":"2004","unstructured":"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\u201357. Springer, Heidelberg (2004). https:\/\/doi.org\/10.1007\/978-3-540-24622-0_5"},{"issue":"11","key":"5_CR4","doi-asserted-by":"publisher","first-page":"365","DOI":"10.2514\/1.49356","volume":"7","author":"H Barringer","year":"2010","unstructured":"Barringer, H., Groce, A., Havelund, K., Smith, M.: Formal analysis of log files. J. Aerosp. Comput. Inf. Commun. 7(11), 365\u2013390 (2010)","journal-title":"J. Aerosp. Comput. Inf. Commun."},{"issue":"3","key":"5_CR5","doi-asserted-by":"publisher","first-page":"262","DOI":"10.1007\/s10703-015-0222-7","volume":"46","author":"DA Basin","year":"2015","unstructured":"Basin, D.A., Klaedtke, F., Marinovic, S., Z\u0103linescu, E.: Monitoring of temporal first-order properties with aggregations. Formal Methods Syst. Design 46(3), 262\u2013285 (2015)","journal-title":"Formal Methods Syst. Design"},{"key":"5_CR6","doi-asserted-by":"crossref","unstructured":"Colombo, C., Pace, G.J., Schneider, G.: LARVA \u2013 safer monitoring of real-time Java programs (tool paper). In: Proceedings of the 2009 Seventh IEEE International Conference on Software Engineering and Formal Methods, SEFM \u201909, pp. 33\u201337, Washington, DC, USA, IEEE Computer Society (2009)","DOI":"10.1109\/SEFM.2009.13"},{"key":"5_CR7","doi-asserted-by":"crossref","unstructured":"d\u2019Amorim, M., Havelund, K.: Event-based runtime verification of Java programs. In: Proceedings of the Third International Workshop on Dynamic Analysis, WODA \u201905, pp. 1\u20137, New York, NY, USA, Association for Computing Machinery (2005)","DOI":"10.1145\/1083246.1083249"},{"key":"5_CR8","doi-asserted-by":"publisher","unstructured":"Dams, D., Havelund, K., Kauffman, S.: Python library for trace analysis. In: Dang, T., Stolz, V. (eds) Runtime Verification. Tbilisi, Georgia, September 28\u201330, Springer, Cham, LNCS (2022). https:\/\/doi.org\/10.1007\/978-3-031-17196-3_15","DOI":"10.1007\/978-3-031-17196-3_15"},{"key":"5_CR9","unstructured":"D\u2019Angelo, B., et al.: LOLA: Runtime monitoring of synchronous systems. In: Proceedings of TIME 2005: the 12th International Symposium on Temporal Representation and Reasoning, pp. 166\u2013174, IEEE (2005)"},{"key":"5_CR10","unstructured":"Daut. https:\/\/github.com\/havelund\/daut (2022)"},{"issue":"2","key":"5_CR11","doi-asserted-by":"publisher","first-page":"205","DOI":"10.1007\/s10009-015-0380-3","volume":"18","author":"N Decker","year":"2016","unstructured":"Decker, N., Leucker, M., Thoma, D.: Monitoring modulo theories. Softw. Tools Technol. Transf. (STTT) 18(2), 205\u2013225 (2016)","journal-title":"Softw. Tools Technol. Transf. (STTT)"},{"key":"5_CR12","unstructured":"Robert, B.: Doorenbos. Production Matching for Large Learning Systems. PhD thesis, Carnegie Mellon University, Pittsburgh, PA (1995)"},{"key":"5_CR13","doi-asserted-by":"publisher","first-page":"17","DOI":"10.1016\/0004-3702(82)90020-0","volume":"19","author":"C Forgy","year":"1982","unstructured":"Forgy, C.: Rete: a fast algorithm for the many pattern\/many object pattern match problem. Artif. Intell. 19, 17\u201337 (1982)","journal-title":"Artif. Intell."},{"key":"5_CR14","unstructured":"Graphviz. https:\/\/graphviz.org (2022)"},{"issue":"2","key":"5_CR15","doi-asserted-by":"publisher","first-page":"192","DOI":"10.1109\/TSC.2011.10","volume":"5","author":"S Hall\u00e9","year":"2012","unstructured":"Hall\u00e9, S., Villemaire, R.: Runtime enforcement of web service message contracts with data. IEEE Trans. Serv. Comput. 5(2), 192\u2013206 (2012)","journal-title":"IEEE Trans. Serv. Comput."},{"key":"5_CR16","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"7","DOI":"10.1007\/978-3-540-68524-1_3","volume-title":"Testing of Software and Communicating Systems","author":"K Havelund","year":"2008","unstructured":"Havelund, K.: Runtime verification of C programs. In: Suzuki, K., Higashino, T., Ulrich, A., Hasegawa, T. (eds.) FATES\/TestCom -2008. LNCS, vol. 5047, pp. 7\u201322. Springer, Heidelberg (2008). https:\/\/doi.org\/10.1007\/978-3-540-68524-1_3"},{"key":"5_CR17","doi-asserted-by":"crossref","unstructured":"Havelund, K.: Data automata in Scala. In: 2014 Theoretical Aspects of Software Engineering Conference, TASE 2014, Changsha, China, September 1\u20133, pp. 1\u20139. IEEE Computer Society (2014)","DOI":"10.1109\/TASE.2014.37"},{"issue":"2","key":"5_CR18","doi-asserted-by":"publisher","first-page":"143","DOI":"10.1007\/s10009-014-0309-2","volume":"17","author":"K Havelund","year":"2015","unstructured":"Havelund, K.: Rule-based runtime verification revisited. Softw. Tools Technol. Transf. (STTT) 17(2), 143\u2013170 (2015)","journal-title":"Softw. Tools Technol. Transf. (STTT)"},{"key":"5_CR19","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"90","DOI":"10.1007\/978-3-030-03769-7_7","volume-title":"Runtime Verification","author":"K Havelund","year":"2018","unstructured":"Havelund, K., Peled, D.: Runtime verification: from propositional to first-order temporal logic. In: Colombo, C., Leucker, M. (eds.) RV 2018. LNCS, vol. 11237, pp. 90\u2013112. Springer, Cham (2018). https:\/\/doi.org\/10.1007\/978-3-030-03769-7_7"},{"key":"5_CR20","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"239","DOI":"10.1007\/978-3-030-32079-9_14","volume-title":"Runtime Verification","author":"K Havelund","year":"2019","unstructured":"Havelund, K., Peled, D.: An extension of LTL with rules and its application to runtime verification. In: Finkbeiner, B., Mariani, L. (eds.) RV 2019. LNCS, vol. 11757, pp. 239\u2013255. Springer, Cham (2019). https:\/\/doi.org\/10.1007\/978-3-030-32079-9_14"},{"key":"5_CR21","unstructured":"Kim, M., Kannan, S., Lee, I., Sokolsky, O.: Java-MaC: a run-time assurance tool for Java. In: Proceedings of the 1st International Workshop on Runtime Verification (RV\u201901), vol.55(2) of ENTCS. Elsevier (2001)"},{"key":"5_CR22","unstructured":"LogFire. https:\/\/github.com\/havelund\/logfire"},{"key":"5_CR23","unstructured":"LogScope in Python. https:\/\/github.com\/havelund\/logscope (2022)"},{"key":"5_CR24","unstructured":"LogScope in Scala\/C++. https:\/\/github.com\/logscope (2022)"},{"key":"5_CR25","doi-asserted-by":"crossref","unstructured":"Meredith, P.O.N., Jin, D., Griffith, D., Chen, F., Ro\u015fu, G.: An overview of the MOP runtime verification framework. Int. J. Softw. Tech. Technol. Transf (STTT) 14249\u2013289 (2011)","DOI":"10.1007\/s10009-011-0198-6"},{"issue":"4","key":"5_CR26","doi-asserted-by":"publisher","first-page":"235","DOI":"10.1007\/s11334-013-0223-x","volume":"9","author":"L Pike","year":"2013","unstructured":"Pike, L., Wegmann, N., Niller, S., Goodloe, A.: Copilot: Monitoring embedded systems. Innov. Syst. Softw. Eng. 9(4), 235\u2013255 (2013)","journal-title":"Innov. Syst. Softw. Eng."},{"key":"5_CR27","unstructured":"PyContract. https:\/\/github.com\/pyrv\/pycontract (2022)"},{"key":"5_CR28","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"596","DOI":"10.1007\/978-3-662-46681-0_55","volume-title":"Tools and Algorithms for the Construction and Analysis of Systems","author":"G Reger","year":"2015","unstructured":"Reger, G., Cruz, H.C., Rydeheard, D.: MarQ: monitoring at runtime with QEA. In: Baier, C., Tinelli, C. (eds.) TACAS 2015. LNCS, vol. 9035, pp. 596\u2013610. Springer, Heidelberg (2015). https:\/\/doi.org\/10.1007\/978-3-662-46681-0_55"}],"container-title":["Lecture Notes in Computer Science","Leveraging Applications of Formal Methods, Verification and Validation. Verification Principles"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/978-3-031-19849-6_5","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2023,11,29]],"date-time":"2023-11-29T04:18:28Z","timestamp":1701231508000},"score":1,"resource":{"primary":{"URL":"https:\/\/link.springer.com\/10.1007\/978-3-031-19849-6_5"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2022]]},"ISBN":["9783031198489","9783031198496"],"references-count":28,"URL":"https:\/\/doi.org\/10.1007\/978-3-031-19849-6_5","relation":{},"ISSN":["0302-9743","1611-3349"],"issn-type":[{"type":"print","value":"0302-9743"},{"type":"electronic","value":"1611-3349"}],"subject":[],"published":{"date-parts":[[2022]]},"assertion":[{"value":"17 October 2022","order":1,"name":"first_online","label":"First Online","group":{"name":"ChapterHistory","label":"Chapter History"}},{"value":"ISoLA","order":1,"name":"conference_acronym","label":"Conference Acronym","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"International Symposium on Leveraging Applications of Formal Methods","order":2,"name":"conference_name","label":"Conference Name","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"Rhodes","order":3,"name":"conference_city","label":"Conference City","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"Greece","order":4,"name":"conference_country","label":"Conference Country","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"2022","order":5,"name":"conference_year","label":"Conference Year","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"22 October 2022","order":7,"name":"conference_start_date","label":"Conference Start Date","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"30 October 2022","order":8,"name":"conference_end_date","label":"Conference End Date","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"11","order":9,"name":"conference_number","label":"Conference Number","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"isola2022","order":10,"name":"conference_id","label":"Conference ID","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"http:\/\/www.isola-conference.org\/","order":11,"name":"conference_url","label":"Conference URL","group":{"name":"ConferenceInfo","label":"Conference Information"}}]}}