High level reading and data structure compilation

In [Paige89], it was shown how to simulate a set machine in real-time on a RAM that provides cursor or even only pointer access to data. The underlying assumption was that the establishment of efficient data structures would be provided by some 'client' program. In the current paper, we fill in the gap by presenting a linear-time high level reading method that translates external input in string form into data structures that facilitate such real-time simulation. The algorithm builds the data structures for a much richer type system than what appeared in [Paige94], and is powerful enough to support our reading algorithm itself in an efficient way. Consequently, it equips a high level set-theoretic language with I/O, without the loss of computational transparency.This work alleviates the burden of creating low-level data structures manually, and builds the internal pointer-based inputs required by most pointer algorithms [Ben-Amram95] from the external string representation.

[1]  Robert Paige,et al.  Towards increased productivity of algorithm implementation , 1993, SIGSOFT '93.

[2]  Robert Paige,et al.  Using Multiset Discrimination to Solve Language Processing Problems Without Hashing , 1995, Theor. Comput. Sci..

[3]  Robert E. Tarjan,et al.  Three Partition Refinement Algorithms , 1987, SIAM J. Comput..

[4]  Deepak Goyal,et al.  The formal reconstruction and speedup of the linear time fragment of Willard's relational calculus subset , 1997, Algorithmic Languages and Calculi.

[5]  Olivier Danvy,et al.  Tutorial notes on partial evaluation , 1993, POPL '93.

[6]  Robert E. Tarjan,et al.  Data structures and network algorithms , 1983, CBMS-NSF regional conference series in applied mathematics.

[7]  Jean H. Gallier,et al.  Linear-Time Algorithms for Testing the Satisfiability of Propositional Horn Formulae , 1984, J. Log. Program..

[8]  Robert Paige,et al.  Real-time Simulation of a Set Machine on a Ram , 1989 .

[9]  Fritz Henglein,et al.  Mechanical Translation of Set Theoretic Problem Specifications into Efficient RAM Code-A Case Study , 1987, J. Symb. Comput..

[10]  Amir M. Ben-Amram,et al.  What is a “pointer machine”? , 1995, SIGA.

[11]  Robert Paige,et al.  Efficient Translation of External Input in a Dynamically Typed Language , 1994, IFIP Congress.

[12]  Richard T. Snodgrass Interface description language - definition and use , 1989, Principles of computer science series.

[13]  Jacob T. Schwartz,et al.  Automatic data structure choice in a language of very high level , 1975, CACM.