A Space-Efficient GM with Overlapping Pointers and Data

포인터와 자료를 중복하여 공간 효율을 높인 G-machine

  • Park, Hong-Yeong (Dept. of Computer Science, Korea Advanced Institute of Science and Technology) ;
  • Han, Tae-Suk (Dept. of Computer Science, Korea Advanced Institute of Science and Technology)
  • Published : 2001.08.01

Abstract

G-Machine은 주어진 표현식을 그래프 축약을 통해석 계산한다. 이러한 축약 과정은 표현식을 그래프로 표현하기 위해 많은 그래프 공간을 필요로 한다. 본 논문에서는 그래프 공간을 효율적으로 사용할 수 있는 방법을 제안한다. 본 논문에서는 우회 노드 장소에 자료를 중복 사용하는 방법을 제안하여 G-Machine에서 필요로 하는 그래프 공간을 절약하며, 이를 위한 새로운 추상기계인 poGM(Pointer Overlapped GM)을 제안한다. poGM에서는 필요한 곳에만 상대 주소를 사용하여, 그래프 내부 노드와 단말 노드 모두에서 그래프 공간을 절약할 수 있다. 기억 장소 재활용 체계를 포함하는 시뮬레이션의 결과벤치마크 프로그램에서 GM보다 총합 사용량은 평균32%, 최소합은 평균 47.6% 적게 사용하였으며, 수행 시간은 평균 30% 빠르게 수행되었다.

Keywords

References

  1. J. Backus. 'Can Programming Be Liberated form the von Neumann Style? A Functional Style and Its Algebra of Programs'. Communications of the ACM, 21(8):613-641, August 1978 https://doi.org/10.1145/359576.359579
  2. J. Hughes. 'Why Functional Programming Matters'. In D. A. Turner, editor, Research topics' in Functional Programming, UT Year of Programming Series, chapter 2, pp.17-42, Addison-Wesley, 1990
  3. L. Augustsson, 'A Compiler for Lazy ML,' In Proceedings of the 1986 ACM Conference on Lisp and Functional Programming, pages 218-227, August 1984 https://doi.org/10.1145/800055.802038
  4. T. Johnsson, 'Efficient compilation and lazy evaluation,' In Proceedings of the ACM SIGPLAN '84 Symposium on Compiler Construction, pages 58-69, June 1984 https://doi.org/10.1145/502874.502880
  5. Gyun Woo. A Space-Efficient G-machine Using Tag-Forwarding. PhD thesis. Korea Advanced Institute of Science and Technology, Taejon, Republic of Korea, 2000
  6. Gyun Woo. A Non-recursive Garbage Collection for the ZG-machine, 프로그래밍언어연구회 추계합동 학술 발표회 논문집, pp.1-6 , September 2000
  7. C. J. Cheney, 'A Non-recursive List Compacting Algorithm,' Communications of the ACM, 13(11):677-678, November 1970 https://doi.org/10.1145/362790.362798
  8. R. R. Fenichel and J. C. Yochelson, 'A LISP Garbage Collector for Virtual Memory Computer Systems,' Communications of the ACM, 12(11):611-612, November 1969 https://doi.org/10.1145/363269.363280
  9. S. L. Peyton Jones. 'Implementing Lazy Functional Languages on Stock Hardware: The Spineless Tagless G-machine'. Journal of Functional Programming, 2(2):127-202, April 1992
  10. T. Johnsson. 'Target Code Generation from G-machine Code'. In R. M. Keller and J.H.Fasel, editor, Proceedings of a Workshop on Graph Reduction, volume 279 of Lecture Notes in Computer Science, pp.119-159, Sante Fe, NM, 29th September-1st October 1986. Springer. 1986
  11. W. Partain. 'The nofib Benchmark Suite of Haskell Programs'. In J. Launchbury and P. M. Samson, editors, Functional Programming, Glasgow, Workshops in Computing, pp.195-202, Springer Verlag, 1992