{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,11,18]],"date-time":"2025-11-18T12:13:08Z","timestamp":1763467988296,"version":"3.37.3"},"publisher-location":"Berlin, Heidelberg","reference-count":49,"publisher":"Springer Berlin Heidelberg","isbn-type":[{"type":"print","value":"9783540221593"},{"type":"electronic","value":"9783540248514"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":[],"published-print":{"date-parts":[[2004]]},"DOI":"10.1007\/978-3-540-24851-4_17","type":"book-chapter","created":{"date-parts":[[2010,8,8]],"date-time":"2010-08-08T20:36:03Z","timestamp":1281299763000},"page":"365-389","source":"Crossref","is-referenced-by-count":12,"title":["Semantic Casts: Contracts and Structural Subtyping in a Nominal World"],"prefix":"10.1007","author":[{"given":"Robert Bruce","family":"Findler","sequence":"first","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Matthew","family":"Flatt","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Matthias","family":"Felleisen","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"297","reference":[{"key":"17_CR1","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"60","DOI":"10.1007\/BFb0019440","volume-title":"Foundations of Object-Oriented Languages","author":"P. America","year":"1991","unstructured":"America, P.: Designing an object-oriented programming language with behavioural subtyping. In: de Bakker, J.W., Rozenberg, G., de Roever, W.-P. (eds.) REX 1990. LNCS, vol.\u00a0489, pp. 60\u201390. Springer, Heidelberg (1991)"},{"key":"17_CR2","unstructured":"Bartetzko, D., Fischer, C., Moller, M., Wehrheim, H.: Jass - Java with assertions. In: Workshop on Runtime Verification, 2001. Held in conjunction with the 13th Conference on Computer Aided Verification, CAV (2001)"},{"key":"17_CR3","doi-asserted-by":"crossref","unstructured":"Bruce, K.B., Fiech, A., Petersen, L.: Subtyping is not a good \u201cmatch\u201d for object-oriented languages. In: Proceedings of European Conference on Object-Oriented Programming, pp. 104\u2013127 (1997)","DOI":"10.1007\/BFb0053376"},{"key":"17_CR4","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"crossref","first-page":"27","DOI":"10.1007\/3-540-49538-X_3","volume-title":"ECOOP \u201995 - Object-Oriented Programming","author":"K.B. Bruce","year":"1995","unstructured":"Bruce, K.B., Schuett, A., van Gent, R.: PolyTOIL:Atype-safe polymorphic object-oriented language. In: Olthoff, W. (ed.) ECOOP 1995. LNCS, vol.\u00a0952, pp. 27\u201351. Springer, Heidelberg (1995)"},{"issue":"9","key":"17_CR5","first-page":"23","volume":"7","author":"M. Carrillo-Castellon","year":"1996","unstructured":"Carrillo-Castellon, M., Garcia-Molina, J., Pimentel, E., Repiso, I.: Design by contract in smalltalk. Journal of Object-Oriented Programming\u00a07(9), 23\u201328 (1996)","journal-title":"Journal of Object-Oriented Programming"},{"key":"17_CR6","unstructured":"Cheon, Y.: A runtime assertion checker for the Java Modelling Language. Technical Report 03-09, Iowa State University Computer Science Department (April 2003)"},{"key":"17_CR7","unstructured":"Detlefs, D.L., Rustan, K., Leino, M., Nelson, G., Saxe, J.B.: Extended static checking. Technical Report 158, Compaq SRC Research Report (1998)"},{"key":"17_CR8","unstructured":"Duncan, A., H\u00f6lzle, U.: Adding contracts to Java with handshake. Technical Report TRCS98-32, The University of California at Santa Barbara (December 1998)"},{"key":"#cr-split#-17_CR9.1","doi-asserted-by":"crossref","unstructured":"Findler, R.B., Clements, J., Flanagan, C., Flatt, M., Krishnamurthi, S., Steckler, P., Felleisen, M.: DrScheme: A programming environment for Scheme. PLILP 1997\u00a012(2), 159\u2013182 (2002);","DOI":"10.1017\/S0956796801004208"},{"key":"#cr-split#-17_CR9.2","unstructured":"Hartel, P.H., Kuchen, H. (eds.) PLILP 1997. LNCS, vol.\u00a01292, pp. 369\u2013388. Springer, Heidelberg (1997)"},{"key":"17_CR10","doi-asserted-by":"crossref","unstructured":"Findler, R.B., Felleisen, M.: Contract soundness for object-oriented languages. In: Object- Oriented Programming, Systems, Languages, and Applications (2001)","DOI":"10.1145\/504282.504283"},{"key":"17_CR11","doi-asserted-by":"crossref","unstructured":"Findler, R.B., Felleisen, M.: Contracts for higher-order functions. In: Proceedings of ACM SIGPLAN International Conference on Functional Programming (2002)","DOI":"10.1145\/581478.581484"},{"key":"17_CR12","doi-asserted-by":"crossref","unstructured":"Findler, R.B., Latendresse, M., Felleisen, M.: Behavioral contracts and behavioral subtyping. In: Proceedings of ACM Conference Foundations of Software Engineering (2001)","DOI":"10.1145\/503209.503240"},{"key":"17_CR13","doi-asserted-by":"crossref","unstructured":"Fisher, K., Reppy, J.H.: The design of a class mechanism for Moby. In: Proceedings of ACM SIGPLAN Conference on Programming Language Design and Implementation (1999)","DOI":"10.1145\/301618.301638"},{"key":"17_CR14","doi-asserted-by":"crossref","unstructured":"Flanagan, C., Leino, K.R.M., Lillibridge, M., Nelson, G., Saxe, J.B., Stata, R.: Extended static checking for Java. In: Proceedings of ACM SIGPLAN Conference on Programming Language Design and Implementation, pp. 234\u2013245 (2002)","DOI":"10.1145\/512529.512558"},{"key":"17_CR15","unstructured":"Flatt, M.P.: MzScheme: Language manual. Technical Report TR97-280, Rice University (1997), http:\/\/www.mzscheme.org\/"},{"key":"17_CR16","doi-asserted-by":"crossref","unstructured":"Flatt, M., Krishnamurthi, S., Felleisen, M.: Classes and mixins. In: Proceedings of the ACM Conference Principles of Programming Languages, Janurary 1998, pp. 171\u2013183 (1998)","DOI":"10.1145\/268946.268961"},{"key":"17_CR17","unstructured":"Gomes, B., Stoutamire, D., Vaysman, B., Klawitter, H.: A Language Manual for Sather 1.1 (August 1996)"},{"key":"17_CR18","volume-title":"The Java(tm) Language Specification","author":"J. Gosling","year":"1996","unstructured":"Gosling, J., Joy, B., Guy Steele, J.: The Java(tm) Language Specification. Addison-Wesley, Reading (1996)"},{"key":"17_CR19","doi-asserted-by":"crossref","DOI":"10.1007\/978-1-4612-2704-5","volume-title":"Larch: Languages andTools forFormal Specification","author":"J.V. Guttag","year":"1993","unstructured":"Guttag, J.V., Horning, J.J.: Larch: Languages andTools forFormal Specification. Springer, Heidelberg (1993)"},{"issue":"3","key":"17_CR20","doi-asserted-by":"publisher","first-page":"197","DOI":"10.1016\/0167-6423(94)00004-2","volume":"22","author":"F. Henglein","year":"1994","unstructured":"Henglein, F.: Dynamic typing: Syntax and proof theory. Science of Computer Programming\u00a022(3), 197\u2013230 (1994)","journal-title":"Science of Computer Programming"},{"key":"17_CR21","doi-asserted-by":"publisher","first-page":"1310","DOI":"10.1145\/53580.53581","volume":"31","author":"R.C. Holt","year":"1988","unstructured":"Holt, R.C., Cordy, J.R.: The Turing programming language. Communications of the ACM\u00a031, 1310\u20131423 (1988)","journal-title":"Communications of the ACM"},{"key":"17_CR22","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"175","DOI":"10.1007\/3-540-48443-4_18","volume-title":"Meta-Level Architectures and Reflection","author":"M. Karaorman","year":"1999","unstructured":"Karaorman, M., H\u00f6lzle, U., Bruno, J.: jContractor: A reflective Java library to support design by contract. In: Cointe, P. (ed.) Reflection 1999. LNCS, vol.\u00a01616, p. 175. Springer, Heidelberg (1999)"},{"key":"17_CR23","unstructured":"Kizub, M.: Kiev language specification (1998), http:\/\/www.forestro.com\/kiev\/"},{"key":"17_CR24","unstructured":"K\u00f6lling, M., Rosenberg, J.: Blue: Language Specification, version 0.94 (1997)"},{"key":"17_CR25","unstructured":"Kramer, R.: iContract: The Java design by contract tool. In: Technology of Object-Oriented Languages and Systems (1998)"},{"key":"17_CR26","doi-asserted-by":"crossref","unstructured":"Lampson, B.W., Horning, J.J., London, R.L., Mitchell, J.G., Popek, G.J.: Report on the programming language Euclid. ACM Sigplan Notices\u00a012(2) (Feburary 1977)","DOI":"10.1145\/954666.971189"},{"key":"17_CR27","doi-asserted-by":"crossref","unstructured":"Leavens, G.T., Leino, K.R.M., Poll, E., Ruby, C., Jacobs, B.: JML: notations and tools supporting detailed design in Java. In: Object-Oriented Programming, Systems, Languages, and Applications Companion, Also Department of Computer Science, Iowa State University, TR 00-15, August 2000, pp. 105\u2013106 (2000)","DOI":"10.1145\/367845.367996"},{"key":"17_CR28","first-page":"142","volume-title":"Proceedings of the ACM Conference Principles of Programming Languages","author":"X. Leroy","year":"1995","unstructured":"Leroy, X.: Applicative functors and fully transparent higher-order modules. In: Proceedings of the ACM Conference Principles of Programming Languages, pp. 142\u2013153. ACM Press, New York (1995)"},{"key":"17_CR29","unstructured":"Leroy, X.: The Objective Caml system, Documentation and User\u2019s guide (1997)"},{"key":"17_CR30","doi-asserted-by":"crossref","unstructured":"Liskov, B.H., Wing, J.: Behavioral subtyping using invariants and constraints. Technical Report CMU CS-99-156, School of Computer Science, Carnegie Mellon University (July 1999)","DOI":"10.21236\/ADA367674"},{"key":"17_CR31","doi-asserted-by":"publisher","first-page":"9","DOI":"10.1109\/MS.1985.230345","volume":"2","author":"D.C. Luckham","year":"1985","unstructured":"Luckham, D.C., von Henke, F.: An overview of Anna, a specification language for Ada. IEEE Software\u00a02, 9\u201323 (1985)","journal-title":"IEEE Software"},{"key":"17_CR32","unstructured":"Man Machine Systems. Design by contract for Java using JMSAssert (2000), http:\/\/www.mmsindia.com\/DBCForJava.html"},{"key":"17_CR33","volume-title":"Eiffel: The Language","author":"B. Meyer","year":"1992","unstructured":"Meyer, B.: Eiffel: The Language. Prentice Hall, Englewood Cliffs (1992)"},{"key":"17_CR34","unstructured":"Microsoft Corporation. Microsoft C# Language Specifications. Microsoft Press (2001)"},{"key":"17_CR35","volume-title":"The Definition of Standard ML","author":"R. Milner","year":"1990","unstructured":"Milner, R., Tofte, M., Harper, R.: The Definition of Standard ML. MIT Press, Cambridge (1990)"},{"key":"17_CR36","unstructured":"Object Management Group. The object management architecture guide (1997), http:\/\/www.omg.org\/"},{"issue":"5","key":"17_CR37","doi-asserted-by":"publisher","first-page":"330","DOI":"10.1145\/355602.361309","volume":"15","author":"D.L. Parnas","year":"1972","unstructured":"Parnas, D.L.: A technique for software module specification with examples. Communications of the ACM\u00a015(5), 330\u2013336 (1972)","journal-title":"Communications of the ACM"},{"key":"17_CR38","unstructured":"Pl\u00f6sch, R.: Design by contract for Python. In: IEEE Proceedings of the Joint Asia Pacific Software Engineering Conference (1997), http:\/\/citeseer.nj.nec.com\/257710.html"},{"key":"17_CR39","doi-asserted-by":"crossref","unstructured":"Pl\u00f6sch, R., Pichler, J.: Contracts: From analysis to C++ implementation. In: Technology of Object-Oriented Languages and Systems, pp. 248\u2013257 (1999)","DOI":"10.1109\/TOOLS.1999.787553"},{"key":"17_CR40","doi-asserted-by":"crossref","unstructured":"R\u00e9my, D., Vouillon, J.: Objective ML: A simple object-oriented extension of ML. In: Proceedings of the ACM Conference Principles of Programming Languages, January 1997, pp. 40\u201353 (1997)","DOI":"10.1145\/263699.263707"},{"issue":"1","key":"17_CR41","doi-asserted-by":"publisher","first-page":"19","DOI":"10.1109\/32.341844","volume":"21","author":"D.S. Rosenblum","year":"1995","unstructured":"Rosenblum, D.S.: A practical approach to programming with assertions. IEEE Transactions on Software Engineering\u00a021(1), 19\u201331 (1995)","journal-title":"IEEE Transactions on Software Engineering"},{"key":"17_CR42","unstructured":"Sannella, D.: Formal program development in Extended ML for the working programmer. In: Proc. 3rd BCS\/FACS Workshop on Refinement; Springer Workshops in Computing, pp. 99\u2013130 (1991)"},{"key":"17_CR43","doi-asserted-by":"publisher","first-page":"229","DOI":"10.1007\/BF01211084","volume":"9","author":"D. Sannella","year":"1997","unstructured":"Sannella, D., Tarlecki, A.: Essential concepts of algebraic specification and program development. Formal Aspects of Computing\u00a09, 229\u2013269 (1997), http:\/\/www.dcs.ed.ac.uk\/home\/dts\/eml\/","journal-title":"Formal Aspects of Computing"},{"issue":"3","key":"17_CR44","first-page":"522","volume":"5","author":"D.S. Scott","year":"1976","unstructured":"Scott, D.S.: Data types as lattices. Society of Industrial and Applied Mathematics (SIAM) Journal of Computing\u00a05(3), 522\u2013586 (1976)","journal-title":"Society of Industrial and Applied Mathematics (SIAM) Journal of Computing"},{"key":"17_CR45","volume-title":"The C++ Programming Language","author":"B. Stroustrup","year":"1997","unstructured":"Stroustrup, B.: The C++ Programming Language. Addison-Wesley, Reading (1997)"},{"key":"17_CR46","volume-title":"Component Software","author":"C. Szyperski","year":"1998","unstructured":"Szyperski, C.: Component Software, 2nd edn. Addison-Wesley, Reading (1998)","edition":"2"},{"key":"#cr-split#-17_CR47.1","doi-asserted-by":"crossref","unstructured":"Wright, A., Felleisen, M.: A syntactic approach to type soundness. Information and Computation, pp. 38\u201394 (1994);","DOI":"10.1006\/inco.1994.1093"},{"key":"#cr-split#-17_CR47.2","unstructured":"First appeared as Technical Report TR160, Rice University (1991)"}],"container-title":["Lecture Notes in Computer Science","ECOOP 2004 \u2013 Object-Oriented Programming"],"original-title":[],"link":[{"URL":"http:\/\/link.springer.com\/content\/pdf\/10.1007\/978-3-540-24851-4_17.pdf","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,2,23]],"date-time":"2025-02-23T23:18:17Z","timestamp":1740352697000},"score":1,"resource":{"primary":{"URL":"http:\/\/link.springer.com\/10.1007\/978-3-540-24851-4_17"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2004]]},"ISBN":["9783540221593","9783540248514"],"references-count":49,"URL":"https:\/\/doi.org\/10.1007\/978-3-540-24851-4_17","relation":{},"ISSN":["0302-9743","1611-3349"],"issn-type":[{"type":"print","value":"0302-9743"},{"type":"electronic","value":"1611-3349"}],"subject":[],"published":{"date-parts":[[2004]]}}}