Context-free grammars are adequate for specifying the structure of almost all programming languages. But in such specifications, it is difficult and time consuming to analyze a statement in the programming language to recognize its structural components.
Precedence grammars, a subset of the context-free grammars, were, developed for quick and easy...
In this thesis we introduce alpha and beta tree acceptors,
generalizations of tree automata. The alpha tree acceptors recognize
a tree by final symbol and the beta tree acceptors by final state. We
show that alpha and beta tree acceptors recognize the same sets of
Gorn trees and demonstrate that...
Tree systems are used in syntactic pattern recognition for
describing two-dimensional patterns. We extend results on tree
automata with the introduction of the subtree-invariant equivalence
relation R. R relates two trees when the appearance of one implies the
appearance of the other in similar trees. A new state minimizing
algorithm...
Quickersort, Straight Insertion Sort, Mehlhorn's AVL-tree Sorting Algorithm and Cook's new sorting algorithm are compared on nearly and nedium sorted lists. The ratio of the minimum number of list elements that must be removed so that the remaining portion of the list is in order to the size of the...
Cichelli gave a simple machine independent minimal perfect hashing function for small static sets. The hash function value for a word is computed as the sum of the length of the word and the values associated with the first and last letters of the word. Cichelli's algorithm (word-oriented) to find...
Recently several minimal perfect hashing functions far small static word sets have been developed. However, they are limited to sets of 50 words or less. In this paper, a Two Level Minimal Perfect Hash Function for large data sets is given. It partitions a large static set into small sets...
Program understanding is a very important part of the testing and maintenance phases of the programming projects. The overall program knowledge, understanding the various parts of the program, and how they communicate are key steps in understanding the program. Hence data communication among modules contributes much to program complexity and...
Debugging, the process of locating and correcting errors in a computer
program, is a common programming task that is not well understood. Of the
several debugging studies reported in the literature, most compared the performance
differences between expert and novice programmers by measuring
their debug time and the number of...