{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,3,25]],"date-time":"2025-03-25T14:23:45Z","timestamp":1742912625998,"version":"3.40.3"},"publisher-location":"Cham","reference-count":23,"publisher":"Springer International Publishing","isbn-type":[{"type":"print","value":"9783031171956"},{"type":"electronic","value":"9783031171963"}],"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-17196-3_12","type":"book-chapter","created":{"date-parts":[[2022,9,22]],"date-time":"2022-09-22T22:03:09Z","timestamp":1663884189000},"page":"221-239","update-policy":"https:\/\/doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":0,"title":["Runtime Verification of\u00a0Kotlin Coroutines"],"prefix":"10.1007","author":[{"given":"Denis","family":"Furian","sequence":"first","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Shaun","family":"Azzopardi","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Yli\u00e8s","family":"Falcone","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Gerardo","family":"Schneider","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"297","published-online":{"date-parts":[[2022,9,23]]},"reference":[{"issue":"5","key":"12_CR1","doi-asserted-by":"publisher","first-page":"3","DOI":"10.1147\/JRD.2010.2060276","volume":"54","author":"R Agarwal","year":"2010","unstructured":"Agarwal, R., et al.: Detection of deadlock potentials in multithreaded programs. IBM J. Res. Dev. 54(5), 3 (2010). https:\/\/doi.org\/10.1147\/JRD.2010.2060276","journal-title":"IBM J. Res. Dev."},{"key":"12_CR2","doi-asserted-by":"publisher","unstructured":"Azzopardi, S., Colombo, C., Pace, G.J.: CLARVA: model-based residual verification of Java programs. In: MODELSWARD2020, pp. 352\u2013359. SCITEPRESS (2020). https:\/\/doi.org\/10.5220\/0008966603520359","DOI":"10.5220\/0008966603520359"},{"key":"12_CR3","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"113","DOI":"10.1007\/978-3-030-03769-7_8","volume-title":"Runtime Verification","author":"S Azzopardi","year":"2018","unstructured":"Azzopardi, S., Ellul, J., Pace, G.J.: Monitoring smart contracts: ContractLarva and open challenges beyond. In: Colombo, C., Leucker, M. (eds.) RV 2018. LNCS, vol. 11237, pp. 113\u2013137. Springer, Cham (2018). https:\/\/doi.org\/10.1007\/978-3-030-03769-7_8"},{"key":"12_CR4","doi-asserted-by":"publisher","unstructured":"Clarke, E.M.: Proving the correctness of coroutines without history variables. In: 16th Annual Southeast Regional Conference. ACM-SE 2016, pp. 160\u2013167. ACM (1978). https:\/\/doi.org\/10.1145\/503643.503680","DOI":"10.1145\/503643.503680"},{"key":"12_CR5","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"135","DOI":"10.1007\/978-3-642-03240-0_13","volume-title":"Formal Methods for Industrial Critical Systems","author":"C Colombo","year":"2009","unstructured":"Colombo, C., Pace, G.J., Schneider, G.: Dynamic event-based runtime monitoring of real-time and contextual properties. In: Cofer, D., Fantechi, A. (eds.) FMICS 2008. LNCS, vol. 5596, pp. 135\u2013149. Springer, Heidelberg (2009). https:\/\/doi.org\/10.1007\/978-3-642-03240-0_13"},{"issue":"7","key":"12_CR6","doi-asserted-by":"publisher","first-page":"396","DOI":"10.1145\/366663.366704","volume":"6","author":"ME Conway","year":"1963","unstructured":"Conway, M.E.: Design of a separable transition-diagram compiler. Commun. ACM 6(7), 396\u2013408 (1963)","journal-title":"Commun. ACM"},{"key":"12_CR7","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"342","DOI":"10.1007\/978-3-319-23820-3_24","volume-title":"Runtime Verification","author":"P Daian","year":"2015","unstructured":"Daian, P., et al.: RV-Android: efficient parametric Android runtime verification, a brief tutorial. In: Bartocci, E., Majumdar, R. (eds.) RV 2015. LNCS, vol. 9333, pp. 342\u2013357. Springer, Cham (2015). https:\/\/doi.org\/10.1007\/978-3-319-23820-3_24"},{"key":"12_CR8","unstructured":"Detekt team: Detekt. http:\/\/detekt.dev. Accessed 18 May 2022"},{"key":"12_CR9","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"64","DOI":"10.1007\/978-3-030-03769-7_6","volume-title":"Runtime Verification","author":"A El-Hokayem","year":"2018","unstructured":"El-Hokayem, A., Falcone, Y.: Can we monitor all multithreaded programs? In: Colombo, C., Leucker, M. (eds.) RV 2018. LNCS, vol. 11237, pp. 64\u201389. Springer, Cham (2018). https:\/\/doi.org\/10.1007\/978-3-030-03769-7_6"},{"key":"12_CR10","doi-asserted-by":"crossref","unstructured":"Falcone, Y., Currea, S.: Weave droid: aspect-oriented programming on Android devices: fully embedded or in the cloud. In: IEEE\/ACM International Conference on Automated Software Engineering, ASE 2012, Essen, Germany, 3\u20137 September 2012, pp. 350\u2013353. ACM (2012)","DOI":"10.1145\/2351676.2351744"},{"key":"12_CR11","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"88","DOI":"10.1007\/978-3-642-35632-2_11","volume-title":"Runtime Verification","author":"Y Falcone","year":"2013","unstructured":"Falcone, Y., Currea, S., Jaber, M.: Runtime verification and enforcement for Android applications with RV-droid. In: Qadeer, S., Tasiran, S. (eds.) RV 2012. LNCS, vol. 7687, pp. 88\u201395. Springer, Heidelberg (2013). https:\/\/doi.org\/10.1007\/978-3-642-35632-2_11"},{"issue":"2","key":"12_CR12","doi-asserted-by":"publisher","first-page":"255","DOI":"10.1007\/s10009-021-00609-z","volume":"23","author":"Y Falcone","year":"2021","unstructured":"Falcone, Y., Krsti\u0107, S., Reger, G., Traytel, D.: A taxonomy for classifying runtime verification tools. Int. J. Software Tools Technol. Transfer 23(2), 255\u2013284 (2021). https:\/\/doi.org\/10.1007\/s10009-021-00609-z","journal-title":"Int. J. Software Tools Technol. Transfer"},{"issue":"2","key":"12_CR13","doi-asserted-by":"publisher","first-page":"189","DOI":"10.1023\/B:FORM.0000017721.39909.4b","volume":"24","author":"K Havelund","year":"2004","unstructured":"Havelund, K., Rosu, G.: An overview of the runtime verification tool Java pathexplorer. Formal Methods Syst. Des. 24(2), 189\u2013215 (2004). https:\/\/doi.org\/10.1023\/B:FORM.0000017721.39909.4b","journal-title":"Formal Methods Syst. Des."},{"key":"12_CR14","doi-asserted-by":"crossref","unstructured":"Huang, J., Meredith, P.O., Rosu, G.: Maximal sound predictive race detection with control flow abstraction. In: PLDI 2014, pp. 337\u2013348. ACM (2014)","DOI":"10.1145\/2666356.2594315"},{"key":"12_CR15","unstructured":"Kotlin: Language Documentation. https:\/\/kotlinlang.org\/docs\/home.html"},{"key":"12_CR16","unstructured":"Kotlin documentation: Dispatchers and threads. https:\/\/kotlinlang.org\/docs\/coroutine-context-and-dispatchers.html#dispatchers-and-threads. Accessed 18 May 2022"},{"key":"12_CR17","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"172","DOI":"10.1007\/3-540-48683-6_17","volume-title":"Computer Aided Verification","author":"O Kupferman","year":"1999","unstructured":"Kupferman, O., Vardi, M.Y.: Model checking of safety properties. In: Halbwachs, N., Peled, D. (eds.) CAV 1999. LNCS, vol. 1633, pp. 172\u2013183. Springer, Heidelberg (1999). https:\/\/doi.org\/10.1007\/3-540-48683-6_17"},{"key":"12_CR18","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"34","DOI":"10.1007\/978-3-319-75632-5_2","volume-title":"Lectures on Runtime Verification","author":"JM Louren\u00e7o","year":"2018","unstructured":"Louren\u00e7o, J.M., Fiedor, J., K\u0159ena, B., Vojnar, T.: Discovering concurrency errors. In: Bartocci, E., Falcone, Y. (eds.) Lectures on Runtime Verification. LNCS, vol. 10457, pp. 34\u201360. Springer, Cham (2018). https:\/\/doi.org\/10.1007\/978-3-319-75632-5_2"},{"key":"12_CR19","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-10256-6","volume-title":"Coroutines: A Programming Methodology, a Language Design and an Implementation, LNCS","author":"CD Marlin","year":"1980","unstructured":"Marlin, C.D.: Coroutines: A Programming Methodology, a Language Design and an Implementation, LNCS, vol. 95. Springer, Heidelberg (1980). https:\/\/doi.org\/10.1007\/3-540-10256-6"},{"issue":"2","key":"12_CR20","doi-asserted-by":"publisher","first-page":"6:1","DOI":"10.1145\/1462166.1462167","volume":"31","author":"AL de Moura","year":"2009","unstructured":"de Moura, A.L., Ierusalimschy, R.: Revisiting coroutines. ACM Trans. Program. Lang. Syst. 31(2), 6:1-6:31 (2009)","journal-title":"ACM Trans. Program. Lang. Syst."},{"key":"12_CR21","unstructured":"SonarSource S.A.: Kotlin rules for coroutines. https:\/\/rules.sonarsource.com\/kotlin\/tag\/coroutines. Accessed 18 May 2022"},{"key":"12_CR22","unstructured":"S\u00fastrik, M.: Blog post detailing structured concurrency. http:\/\/250bpm.com\/blog:71. Accessed 18 May 2022"},{"key":"12_CR23","doi-asserted-by":"crossref","unstructured":"Vella, M., Colombo, C.: Spotcheck: On-device anomaly detection for Android. In: \u00d6rs, S.B., El\u00e7i, A. (eds.) SIN 2020: 13th International Conference on Security of Information and Networks, Virtual Event \/ Istanbul, Turkey, 4\u20136 November 2020, pp. 20:1\u201320:6. ACM (2020)","DOI":"10.1145\/3433174.3433591"}],"container-title":["Lecture Notes in Computer Science","Runtime Verification"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/978-3-031-17196-3_12","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2023,1,4]],"date-time":"2023-01-04T14:05:38Z","timestamp":1672841138000},"score":1,"resource":{"primary":{"URL":"https:\/\/link.springer.com\/10.1007\/978-3-031-17196-3_12"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2022]]},"ISBN":["9783031171956","9783031171963"],"references-count":23,"URL":"https:\/\/doi.org\/10.1007\/978-3-031-17196-3_12","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":"23 September 2022","order":1,"name":"first_online","label":"First Online","group":{"name":"ChapterHistory","label":"Chapter History"}},{"value":"RV","order":1,"name":"conference_acronym","label":"Conference Acronym","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"International Conference on Runtime Verification","order":2,"name":"conference_name","label":"Conference Name","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"Tbilsi","order":3,"name":"conference_city","label":"Conference City","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"Georgia","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":"28 September 2022","order":7,"name":"conference_start_date","label":"Conference Start Date","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"30 September 2022","order":8,"name":"conference_end_date","label":"Conference End Date","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"22","order":9,"name":"conference_number","label":"Conference Number","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"rv2022","order":10,"name":"conference_id","label":"Conference ID","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"https:\/\/rv22.gitlab.io","order":11,"name":"conference_url","label":"Conference URL","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"Single-blind","order":1,"name":"type","label":"Type","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}},{"value":"EasyChair","order":2,"name":"conference_management_system","label":"Conference Management System","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}},{"value":"40","order":3,"name":"number_of_submissions_sent_for_review","label":"Number of Submissions Sent for Review","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}},{"value":"12","order":4,"name":"number_of_full_papers_accepted","label":"Number of Full Papers Accepted","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}},{"value":"10","order":5,"name":"number_of_short_papers_accepted","label":"Number of Short Papers Accepted","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}},{"value":"30% - The value is computed by the equation \"Number of Full Papers Accepted \/ Number of Submissions Sent for Review * 100\" and then rounded to a whole number.","order":6,"name":"acceptance_rate_of_full_papers","label":"Acceptance Rate of Full Papers","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}},{"value":"3","order":7,"name":"average_number_of_reviews_per_paper","label":"Average Number of Reviews per Paper","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}},{"value":"3","order":8,"name":"average_number_of_papers_per_reviewer","label":"Average Number of Papers per Reviewer","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}},{"value":"No","order":9,"name":"external_reviewers_involved","label":"External Reviewers Involved","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}}]}}