A Generalized Let-Polymorphic Type Inference Algorithm

일반화된 Let-다형성 타입 유추 알고리즘

  • Lee, Uk-Se (Dept. of Electronic Computer Science, Korea Advanced Institute of Science and Technology) ;
  • Lee, Gwang-Geun (Dept. of Electronic Computer Science, Korea Advanced Institute of Science and Technology)
  • 이욱세 (한국과학기술원 전자전산학과) ;
  • 이광근 (한국과학기술원 전자전산학과)
  • Published : 2001.01.01

Abstract

본 연구에서는 일반화된 let-다형성(let-polymorphic) 타입 유추 알고리즘을 제시하고, 이로부터 얻어지는 모든 예 알고리즘들은 Hindley/Milner 타입 체계를 안전하고 완전하게 (sound and complete) 구현하고 있음을 증명하며, 일반화된 알고리즘의 두 예 알고리즘들간에 어느 한쪽이 항상 오류를 더 신속히 감지하게 되는 조건을 제시한다. 일반화된 알고리즘으로부터 이론적으로 검증된 두 타입 유추 알고리즘, 즉, 상향성 표준 타입 유추 알고리즘 W와 하향성 알고리즘 M 뿐만 아니라 두 알고리즘의 혼성 알고리즘(hybrid algorithm)을 만들 수 있다. 만들어진 예 알고리즘들의 안전성, 완전성, 상대적인 신속한 오류 감지 성질들은 본 논문의 증명에 의해 자동적으로 유추된다. 본 논문에서 제시되는 알고리즘으로부터 만들어 낼 수 있는 예 알고르즘에는 SML/NJ와 Objective Caml 컴파일러에서 채택한 알고리즘을 포함하고 있다.

Keywords

References

  1. Robin Milner. A theory of type polymorphism in programming. Journal of Computer and System Sciences, 17:348-375, 1978 https://doi.org/10.1016/0022-0000(78)90014-4
  2. Luis Damas and Robin Milner. Principal type-scheme for functional programs. In Proceedings of the 9th Annual ACM Symposium on Principles of Programming Languages, pages 207-212, New York, 1982. ACM Press
  3. Luis Manuel Martins Damas. Type assignment in programming Languages. Ph. D. Thesis, University of Edinburgh, 1984
  4. Oukseh Lee and Kwangkeun Yi. Proofs about a folklore let-polymorphic type inference algorithm. ACM Transactions on Programming Languages and Systems, 20(4):707-723, July 1998. August 1998 https://doi.org/10.1145/291891.291892
  5. 이욱세, 이광근, 하향식 타입 유추 알고리즘 M의 속성 증명. 정보과학회 논문지, 25(8):1281-1292, August 1998
  6. The Standard ML of New Jersey, release 110.0.6. Bell Labs, Lucent Technologies, November 1999. http://cm.bell-labs.com/cm/cs/what/smlnj
  7. Xavier Leroy, Didier Remy, Jerome Vouillon, and Damien Doligez. The objective caml system release 2.04. Institut National de Recherche en Informatique et en Automatique, November 1999. http://caml.inria.fr
  8. 주상현, 이욱세, 이광근, 복합형 타입 유추 알고리즘 M의 병목을 해소하기 위한 알고리즘 H, 정보과학회 논문지, 2000. (심사완료)
  9. 주상현, M의 병목을 해소하는 타입유추 알고리즘, 석사논문, 한국과학기술원, 2000
  10. J. A. Robinson. A machine-oriented logic based on the resolution principle. Journal of the ACM, 12(1):23-41, January 1965 https://doi.org/10.1145/321250.321253
  11. Bruce J. McAdam. On the unification of substitutions in type inference. In Kevin Hammond, Anthony J. T. Davie, and Chris Clack, editors, Proceedings of The International Workshop on Implementation of Fuctional Languages, volume 1595 of Lecture Notes in Computer Science, pages 139-154. Springer-Verlag, September 1998
  12. Fritz Henglein. Type inference with polymorphic recursion. ACM Transactions on Programming Languages and Systems, 15(2):253-289, April 1993 https://doi.org/10.1145/169701.169692
  13. Kenta Cho and Kazunori Ueda. Diagnosing non-well-moded concurrent logic programs. In Joint International Conference on Logic Programming, pages 215-229. MIT Press, 1996
  14. Alexander Aiken and Edward L. Wimmers. Type inclusion constraints and type inference. In Proceedings of Functional Programming Languages and Computer Architecture, pages 31-41, 1993 https://doi.org/10.1145/165180.165188
  15. Satish R. Thatte. Type inference with partial types. Theoretical Computer Science, 124(1):127-148, February 1994 https://doi.org/10.1016/0304-3975(94)90056-6
  16. Didier Remy. Extending ML type system with a sorted equational theory. Research Report 1766, Institut National de Recherche en Informatique et Automatisme, Rocquencourt, BP 105, 78 153 Le Chesnay Cedex, France, 1992