<?xml version="1.0" encoding="UTF-8"?>
<XML><RECORDS>
<RECORD>
	<REFERENCE_TYPE>0</REFERENCE_TYPE>
	<AUTHORS>
		<AUTHOR>Christian Grothoff</AUTHOR>
		<AUTHOR>Jens Palsberg</AUTHOR>
		<AUTHOR>Jan Vitek</AUTHOR>
	</AUTHORS>
	<YEAR>2007</YEAR>
	<TITLE>Encapsulating objects with confined types</TITLE>
	<SECONDARY_TITLE>ACM Transactions on Programming Languages and Systems</SECONDARY_TITLE>
	<PUBLISHER>ACM</PUBLISHER>
	<VOLUME>29</VOLUME>
	<NUMBER>6</NUMBER>
	<KEYWORDS>
		<KEYWORD>types,</KEYWORD>
		<KEYWORD>encapsulation,</KEYWORD>
		<KEYWORD>java,</KEYWORD>
		<KEYWORD>escape</KEYWORD>
		<KEYWORD>analysis</KEYWORD>
	</KEYWORDS>
	<ABSTRACT>  Object-oriented languages provide little support for encapsulating
  objects. Reference semantics allows objects to escape their defining scope,
  and the pervasive aliasing that ensues remains a major source of software
  defects.  This paper presents Kacheck/J a tool for inferring object
  encapsulation properties of large Java programs. Our goal is to develop
  practical tools to assist software engineers, thus we focus on simple and
  scalable techniques. Kacheck/J is able to infer confinement -- the
  property that all instances of a given type are encapsulated in their
  defining package. This simple property can be used to identify accidental
  leaks of sensitive objects, as well as for compiler optimizations. We report
  on the analysis of a large body of code and discuss language support
  and refactoring for confinement.</ABSTRACT>
	<URL>http://grothoff.org/christian/toplas.pdf</URL>
</RECORD>
</RECORDS></XML>