Linearity analysis of concurrent logic programs

Kazunori Ueda*

*この研究の対応する著者

研究成果査読

抄録

Automatic memory management and the hiding of the notion of pointers are the prominent features of symbolic processing languages. They make programming easy and guarantee the safety of memory references. For the memory management of linked data structures, copying garbage collection is most widely used because of its simplicity and desirable properties. However, if certain properties about runtime storage allocation and the behavior of pointers can be obtaind by static analysis, a compiler may be able to generate object code closer to that of procedural programs. In the fields of parallel, distributed and real-time computation, it is highly desirable to be able to identify data structures in a program that can be managed without using garbage collection. To this end, this paper proposes a framework of linearity analysis for a concurrent logic language Moded Flat GHC, and proves its basic property. The purpose of linearity analysis is to distinguish between fragments of data structures that may be referenced by two or more pointers and those that cannot be referenced by two or more pointers. Data structures with only one reader are amenable to compile-time garbage collection or local reuse. The proposed framework of linearity analysis is constraint-based and involves both equality and implicational constraints. It has been implemented as part of klint v2, a static analyzer for KL1 programs.

本文言語English
ページ(範囲)188
ページ数1
ジャーナルElectronic Notes in Theoretical Computer Science
30
2
DOI
出版ステータスPublished - 2000
イベントWOID'99, Workshop on Optimization and Implementation of Declarative Programs (in Connetion with ICLP'99, International Conference on Logic) - Las Cruces, NM, United States
継続期間: 1999 12 21999 12 3

ASJC Scopus subject areas

  • 理論的コンピュータサイエンス
  • コンピュータ サイエンス(全般)

フィンガープリント

「Linearity analysis of concurrent logic programs」の研究トピックを掘り下げます。これらがまとまってユニークなフィンガープリントを構成します。

引用スタイル