{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,4,4]],"date-time":"2026-04-04T05:59:09Z","timestamp":1775282349110,"version":"3.50.1"},"publisher-location":"Cham","reference-count":36,"publisher":"Springer International Publishing","isbn-type":[{"value":"9783030035914","type":"print"},{"value":"9783030035921","type":"electronic"}],"license":[{"start":{"date-parts":[[2018,1,1]],"date-time":"2018-01-01T00:00:00Z","timestamp":1514764800000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/www.springer.com\/tdm"},{"start":{"date-parts":[[2018,1,1]],"date-time":"2018-01-01T00:00:00Z","timestamp":1514764800000},"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":[[2018]]},"DOI":"10.1007\/978-3-030-03592-1_8","type":"book-chapter","created":{"date-parts":[[2018,11,22]],"date-time":"2018-11-22T23:45:32Z","timestamp":1542930332000},"page":"135-154","update-policy":"https:\/\/doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":0,"title":["A Java Bytecode Formalisation"],"prefix":"10.1007","author":[{"given":"Patryk","family":"Czarnik","sequence":"first","affiliation":[]},{"given":"Jacek","family":"Chrz\u0105szcz","sequence":"additional","affiliation":[]},{"given":"Aleksy","family":"Schubert","sequence":"additional","affiliation":[]}],"member":"297","published-online":{"date-parts":[[2018,11,24]]},"reference":[{"key":"8_CR1","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"18","DOI":"10.1007\/978-3-540-68103-8_2","volume-title":"Types for Proofs and Programs","author":"R Atkey","year":"2008","unstructured":"Atkey, R.: CoqJVM: an executable specification of the Java virtual machine using dependent types. In: Miculan, M., Scagnetto, I., Honsell, F. (eds.) TYPES 2007. LNCS, vol. 4941, pp. 18\u201332. Springer, Heidelberg (2008). https:\/\/doi.org\/10.1007\/978-3-540-68103-8_2"},{"key":"8_CR2","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"50","DOI":"10.1007\/11541868_4","volume-title":"Theorem Proving in Higher Order Logics","author":"BE Aydemir","year":"2005","unstructured":"Aydemir, B.E., et al.: Mechanized metatheory for the masses: the PoplMark challenge. In: Hurd, J., Melham, T. (eds.) TPHOLs 2005. LNCS, vol. 3603, pp. 50\u201365. Springer, Heidelberg (2005). https:\/\/doi.org\/10.1007\/11541868_4"},{"issue":"7","key":"8_CR3","doi-asserted-by":"publisher","first-page":"841","DOI":"10.1016\/S0167-739X(99)00094-1","volume":"16","author":"P Bertelsen","year":"2000","unstructured":"Bertelsen, P.: Dynamic semantics of Java bytecode. Future Gener. Comput. Syst. 16(7), 841\u2013850 (2000)","journal-title":"Future Gener. Comput. Syst."},{"key":"8_CR4","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"14","DOI":"10.1007\/3-540-44585-4_3","volume-title":"Computer Aided Verification","author":"Y Bertot","year":"2001","unstructured":"Bertot, Y.: Formalizing a JVML verifier for initialization in a theorem prover. In: Berry, G., Comon, H., Finkel, A. (eds.) CAV 2001. LNCS, vol. 2102, pp. 14\u201324. Springer, Heidelberg (2001). https:\/\/doi.org\/10.1007\/3-540-44585-4_3"},{"key":"8_CR5","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"130","DOI":"10.1007\/978-3-540-24849-1_9","volume-title":"Types for Proofs and Programs","author":"J Chrza\u0327szcz","year":"2004","unstructured":"Chrza\u0327szcz, J.: Modules in Coq are and will be correct. In: Berardi, S., Coppo, M., Damiani, F. (eds.) TYPES 2003. LNCS, vol. 3085, pp. 130\u2013146. Springer, Heidelberg (2004). https:\/\/doi.org\/10.1007\/978-3-540-24849-1_9"},{"issue":"4","key":"8_CR6","first-page":"19","volume":"264","author":"J Chrz\u0105szcz","year":"2011","unstructured":"Chrz\u0105szcz, J., Czarnik, P., Schubert, A.: A dozen instructions make Java bytecode. ENTCS 264(4), 19\u201334 (2011)","journal-title":"ENTCS"},{"key":"8_CR7","doi-asserted-by":"crossref","unstructured":"Coglio, A., Goldberg, A., Qian, Z.: Toward a provably-correct implementation of the JVM bytecode verifier. In: Proceedings DARPA Information Survivability Conference and Exposition, 2000. DISCEX 2000, vol. 2, pp. 403\u2013410. IEEE Computer Society (2000)","DOI":"10.1109\/DISCEX.2000.821537"},{"issue":"2","key":"8_CR8","doi-asserted-by":"publisher","first-page":"155","DOI":"10.1002\/cpe.714","volume":"15","author":"A Coglio","year":"2003","unstructured":"Coglio, A.: Improving the official specification of Java bytecode verification. Concurr. Comput.: Pract. Exp. 15(2), 155\u2013179 (2003). http:\/\/dblp.uni-trier.de\/db\/journals\/concurrency\/concurrency15.html#Coglio03","journal-title":"Concurr. Comput.: Pract. Exp."},{"key":"8_CR9","unstructured":"Coq development team: the Coq proof assistant reference manual V8.4. Technical Report 255, INRIA, France, March 2012. http:\/\/coq.inria.fr\/distrib\/V8.4\/refman\/"},{"key":"8_CR10","unstructured":"Czarnik, P., Chrz\u0105szcz, J., Schubert, A.: CoJaq: a hierarchical view on the Java bytecode formalised in Coq. In: Swacha, J. (ed.) Advances in Software Development, pp. 147\u2013157. Polish Information Processing Society (2013)"},{"key":"8_CR11","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"97","DOI":"10.1007\/978-3-642-17164-2_8","volume-title":"Programming Languages and Systems","author":"D Demange","year":"2010","unstructured":"Demange, D., Jensen, T., Pichardie, D.: A provably correct stackless intermediate representation for Java bytecode. In: Ueda, K. (ed.) APLAS 2010. LNCS, vol. 6461, pp. 97\u2013113. Springer, Heidelberg (2010). https:\/\/doi.org\/10.1007\/978-3-642-17164-2_8"},{"key":"8_CR12","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"501","DOI":"10.1007\/978-3-540-27813-9_46","volume-title":"Computer Aided Verification","author":"A Farzan","year":"2004","unstructured":"Farzan, A., Chen, F., Meseguer, J., Ro\u015fu, G.: Formal analysis of Java programs in JavaFAN. In: Alur, R., Peled, D.A. (eds.) CAV 2004. LNCS, vol. 3114, pp. 501\u2013505. Springer, Heidelberg (2004). https:\/\/doi.org\/10.1007\/978-3-540-27813-9_46"},{"issue":"6","key":"8_CR13","doi-asserted-by":"publisher","first-page":"1196","DOI":"10.1145\/330643.330646","volume":"21","author":"SN Freund","year":"1999","unstructured":"Freund, S.N., Mitchell, J.C.: The type system for object initialization in the Java bytecode language. ACM Trans. Program. Lang. Syst. 21(6), 1196\u20131250 (1999)","journal-title":"ACM Trans. Program. Lang. Syst."},{"issue":"3\u20134","key":"8_CR14","doi-asserted-by":"publisher","first-page":"271","DOI":"10.1023\/A:1025011624925","volume":"30","author":"SN Freund","year":"2003","unstructured":"Freund, S.N., Mitchell, J.C.: A type system for the Java bytecode language and verifier. J. Autom. Reason. 30(3\u20134), 271\u2013321 (2003). https:\/\/doi.org\/10.1023\/A:1025011624925","journal-title":"J. Autom. Reason."},{"key":"8_CR15","series-title":"The Java Series","volume-title":"The Java Language Specification","author":"J Gosling","year":"2005","unstructured":"Gosling, J., Joy, B., Steele, G., Bracha, G.: The Java Language Specification. The Java Series, 3rd edn. Addison Wesley, Boston (2005)","edition":"3"},{"key":"8_CR16","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"17","DOI":"10.1007\/3-540-49727-7_2","volume-title":"Static Analysis","author":"M Hagiya","year":"1998","unstructured":"Hagiya, M., Tozawa, A.: On a new method for dataflow analysis of Java virtual machine subroutines. In: Levi, G. (ed.) SAS 1998. LNCS, vol. 1503, pp. 17\u201332. Springer, Heidelberg (1998). https:\/\/doi.org\/10.1007\/3-540-49727-7_2"},{"issue":"4","key":"8_CR17","doi-asserted-by":"publisher","first-page":"517","DOI":"10.1145\/503112.503115","volume":"33","author":"PH Hartel","year":"2001","unstructured":"Hartel, P.H., Moreau, L.: Formalizing the safety of Java, the Java virtual machine, and Java card. ACM Comput. Surv. 33(4), 517\u2013558 (2001)","journal-title":"ACM Comput. Surv."},{"key":"8_CR18","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"284","DOI":"10.1007\/3-540-45314-8_21","volume-title":"Fundamental Approaches to Software Engineering","author":"B Jacobs","year":"2001","unstructured":"Jacobs, B., Poll, E.: A logic for the Java modeling language JML. In: Hussmann, H. (ed.) FASE 2001. LNCS, vol. 2029, pp. 284\u2013299. Springer, Heidelberg (2001). https:\/\/doi.org\/10.1007\/3-540-45314-8_21"},{"issue":"4","key":"8_CR19","doi-asserted-by":"publisher","first-page":"619","DOI":"10.1145\/1146809.1146811","volume":"28","author":"G Klein","year":"2006","unstructured":"Klein, G., Nipkow, T.: A machine-checked model for a Java-like language, virtual machine, and compiler. ACM Trans. Program. Lang. Syst. 28(4), 619\u2013695 (2006)","journal-title":"ACM Trans. Program. Lang. Syst."},{"issue":"4","key":"8_CR20","doi-asserted-by":"publisher","first-page":"319","DOI":"10.1002\/spe.438","volume":"32","author":"X Leroy","year":"2002","unstructured":"Leroy, X.: Bytecode verification on Java smart cards. Softw. Pract. Exper. 32(4), 319\u2013340 (2002)","journal-title":"Softw. Pract. Exper."},{"key":"8_CR21","unstructured":"Lindholm, T., Yellin, F.: The Java Virtual Machine Specification, 2nd edn. Addison-Wesley Professional, Boston (1999). Specification available at https:\/\/docs.oracle.com\/javase\/specs\/jvms\/se6\/html\/VMSpecTOC.doc.html"},{"key":"8_CR22","unstructured":"Lochbihler, A.: A Machine-Checked, Type-Safe Model of Java Concurrency : Language, Virtual Machine, Memory Model, and Verified Compiler. Ph.D. thesis, Karlsruher Institut f\u00fcr Technologie, Fakult\u00e4t f\u00fcr Informatik, July 2012"},{"key":"8_CR23","doi-asserted-by":"publisher","DOI":"10.7551\/mitpress\/2319.001.0001","volume-title":"The Definition of Standard ML - Revised","author":"R Milner","year":"1997","unstructured":"Milner, R., Harper, R., MacQueen, D., Tofte, M.: The Definition of Standard ML - Revised. The MIT Press, Cambridge (1997)"},{"key":"8_CR24","unstructured":"MOBIUS Consortium: Deliverable 3.1: bytecode specification language and program logic (2006). http:\/\/mobius.inria.fr"},{"key":"8_CR25","first-page":"227","volume-title":"Models, Algebras and Logic of Engineering Software","author":"JS Moore","year":"2003","unstructured":"Moore, J.S.: Proving theorems about Java and the JVM with ACL2. In: Broy, M., Pizka, M. (eds.) Models, Algebras and Logic of Engineering Software, pp. 227\u2013290. IOS Press, Amsterdam (2003)"},{"key":"8_CR26","doi-asserted-by":"crossref","unstructured":"O\u2019Callahan, R.: A simple, comprehensive type system for Java bytecode subroutines. In: Proceedings of POPL1999, pp. 70\u201378. ACM (1999)","DOI":"10.1145\/292540.292549"},{"key":"8_CR27","unstructured":"Pichardie, D.: Bicolano - Byte Code Language in Coq (2006). http:\/\/mobius.inria.fr\/bicolano. Summary appears in [24]"},{"key":"8_CR28","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"175","DOI":"10.1007\/BFb0055863","volume-title":"Computer Security \u2014 ESORICS 98","author":"J Posegga","year":"1998","unstructured":"Posegga, J., Vogt, H.: Byte code verification for Java smart cards based on model checking. In: Quisquater, J.-J., Deswarte, Y., Meadows, C., Gollmann, D. (eds.) ESORICS 1998. LNCS, vol. 1485, pp. 175\u2013190. Springer, Heidelberg (1998). https:\/\/doi.org\/10.1007\/BFb0055863"},{"key":"8_CR29","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"89","DOI":"10.1007\/3-540-49059-0_7","volume-title":"Tools and Algorithms for the Construction and Analysis of Systems","author":"C Pusch","year":"1999","unstructured":"Pusch, C.: Proving the soundness of a Java bytecode verifier specification in Isabelle\/HOL. In: Cleaveland, W.R. (ed.) TACAS 1999. LNCS, vol. 1579, pp. 89\u2013103. Springer, Heidelberg (1999). https:\/\/doi.org\/10.1007\/3-540-49059-0_7"},{"key":"8_CR30","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"271","DOI":"10.1007\/3-540-48737-9_8","volume-title":"Formal Syntax and Semantics of Java","author":"Z Qian","year":"1999","unstructured":"Qian, Z.: A formal specification of Java$$\\cal{M}$$ virtual machine instructions for objects, methods and subroutines. In: Alves-Foss, J. (ed.) Formal Syntax and Semantics of Java. LNCS, vol. 1523, pp. 271\u2013311. Springer, Heidelberg (1999). https:\/\/doi.org\/10.1007\/3-540-48737-9_8"},{"key":"8_CR31","unstructured":"Raghavan, A.D., Leavens, G.T.: Desugaring JML method specifications. Technical Report TR #00-03d, Iowa State University, March 2000"},{"key":"8_CR32","doi-asserted-by":"publisher","first-page":"303","DOI":"10.1023\/B:JARS.0000021015.15794.82","volume":"31","author":"E Rose","year":"2003","unstructured":"Rose, E.: Lightweight bytecode verification. J. Autom. Reason. 31, 303\u2013334 (2003)","journal-title":"J. Autom. Reason."},{"key":"8_CR33","unstructured":"Soubiran, E.: D\u00e9veloppement modulaire de th\u00e9ories et gestion de l\u2019espace de nom pour l\u2019assistant de preuve Coq. Ph.D. thesis, Ecole Polytechnique (2010)"},{"key":"8_CR34","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-59495-3","volume-title":"Java and the Java Virtual Machine: Definition, Verification, Validation","author":"RF St\u00e4rk","year":"2001","unstructured":"St\u00e4rk, R.F., Schmid, J., B\u00f6rger, E.: Java and the Java Virtual Machine: Definition, Verification, Validation. Springer, Heidelberg (2001). https:\/\/doi.org\/10.1007\/978-3-642-59495-3"},{"issue":"1","key":"8_CR35","doi-asserted-by":"publisher","first-page":"90","DOI":"10.1145\/314602.314606","volume":"21","author":"R Stata","year":"1999","unstructured":"Stata, R., Abadi, M.: A type system for Java bytecode subroutines. ACM Trans. Program. Lang. Syst. 21(1), 90\u2013137 (1999)","journal-title":"ACM Trans. Program. Lang. Syst."},{"key":"8_CR36","doi-asserted-by":"crossref","unstructured":"Yelland, P.M.: A compositional account of the Java virtual machine. In: Proceedings of POPL1999, pp. 57\u201369. ACM (1999)","DOI":"10.1145\/292540.292548"}],"container-title":["Lecture Notes in Computer Science","Verified Software. Theories, Tools, and Experiments"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/978-3-030-03592-1_8","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2026,4,4]],"date-time":"2026-04-04T05:13:32Z","timestamp":1775279612000},"score":1,"resource":{"primary":{"URL":"https:\/\/link.springer.com\/10.1007\/978-3-030-03592-1_8"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2018]]},"ISBN":["9783030035914","9783030035921"],"references-count":36,"URL":"https:\/\/doi.org\/10.1007\/978-3-030-03592-1_8","relation":{},"ISSN":["0302-9743","1611-3349"],"issn-type":[{"value":"0302-9743","type":"print"},{"value":"1611-3349","type":"electronic"}],"subject":[],"published":{"date-parts":[[2018]]},"assertion":[{"value":"24 November 2018","order":1,"name":"first_online","label":"First Online","group":{"name":"ChapterHistory","label":"Chapter History"}},{"value":"VSTTE","order":1,"name":"conference_acronym","label":"Conference Acronym","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"Working Conference on Verified Software: Theories, Tools, and Experiments","order":2,"name":"conference_name","label":"Conference Name","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"Oxford","order":3,"name":"conference_city","label":"Conference City","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"United Kingdom","order":4,"name":"conference_country","label":"Conference Country","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"2018","order":5,"name":"conference_year","label":"Conference Year","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"18 July 2018","order":7,"name":"conference_start_date","label":"Conference Start Date","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"19 July 2018","order":8,"name":"conference_end_date","label":"Conference End Date","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"10","order":9,"name":"conference_number","label":"Conference Number","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"vstte2018","order":10,"name":"conference_id","label":"Conference ID","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"http:\/\/vstte18.it.uu.se\/","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":"24","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":"19","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":"0","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":"79% - 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":"2","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":"Yes","order":9,"name":"external_reviewers_involved","label":"External Reviewers Involved","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}}]}}