$\It{When developing a system with object oriented programming languages, sometimes inter-object aliasing becomes the root of defects. Ownership type systems were introduced in order to prevent the problems caused by the inter-object aliasing. The ownership type system tries to explicitly express the data sharing information and to help developers track value flow when they are debugging through providing additional information on data sharing relationships among objects.}$
$\It{ However, there is an obstacle that the ownership type systems are not used easily. Working with legacy system becomes a barrier because the legacy system should be reviewed and the ownership type annotations inserted.}$
$\It{The constraint-based inference algorithm was suggested in order to remove the legacy system problem. However, three improvements can be made in the algorithm.}$
$\It{We propose a reachable reference algorithm that searches type parameters based on reachable objects. Our algorithm increases scalability by inferring one class at a time. The algorithm also reduces ownership type parameter, and increase accuracy of the inferred annotation since the algorithm actually visits reachable references to find out type parameters. In this thesis, the three improvements are shown using two source codes.}$
객체 지향 언어를 개발할 때 종종 객체간 앨리어싱으로 인하여 디펙트가 발생한다. 이 문제를 해결하기 위해 오너십 타입 시스템이 제안되었다. 오너십 타입 시스템은 데이터 공유 정보를 명시적으로 표현하는 시스템을 통칭한다. 하지만, 기존에 사용하던 시스템에는 수작업으로 오너십 타입을 넣어야 하는 불편함 때문에 이 시스템이 널리 사용되지 못하고 있다.
자동으로 오너십 타입을 추론하는 알고리즘이 이미 제안되었으나, 본 연구에서는 이를 세 가지 측면에서 발전시킨 알고리즘을 선보인다. 우선 한 번에 하나의 클래스를 추론함으로써 확장성을 증가시킨다. 또한, 제안하는 알고리즘은 타입 파라미터의 개수를 줄이고 추론된 오너십 타입의 정확도도 증가시킨다.