Results 1 -
4 of
4
A Functional Database
, 1989
"... A Functional Database Phil Trinder D.Phil. Thesis Wolfson College Michaelmas Term, 1989 This thesis explores the use of functional languages to implement, manipulate and query databases. Implementing databases. A functional language is used to construct a database manager that allows efficient and c ..."
Abstract
-
Cited by 21 (3 self)
- Add to MetaCart
A Functional Database Phil Trinder D.Phil. Thesis Wolfson College Michaelmas Term, 1989 This thesis explores the use of functional languages to implement, manipulate and query databases. Implementing databases. A functional language is used to construct a database manager that allows efficient and concurrent access to shared data. In contrast to the locking mechanism found in conventional databases, the functional database uses data dependency to provide exclusion. Results obtained from a prototype database demonstrate that data dependency permits an unusual degree of concurrency between operations on the data. The prototype database is used to exhibit some problems that seriously restrict concurrency and also to demonstrate the resolution of these problems using a new primitive. The design of a more realistic database is outlined. Some restrictions on the data structures that can be used in a functional database are also uncovered. Manipulating databases. Functions over the database a...
New programming languages for
- Communications of the ACM
, 1974
"... In this paper the major components of every programming language are identified as: (1) the elementary program state-ment, (2) mechanisms for linking elementary statements together, (3) the means by which a program can obtain data inputs. Several alternative forms of each of these components are als ..."
Abstract
-
Cited by 7 (0 self)
- Add to MetaCart
In this paper the major components of every programming language are identified as: (1) the elementary program state-ment, (2) mechanisms for linking elementary statements together, (3) the means by which a program can obtain data inputs. Several alternative forms of each of these components are also described, compared and evaluated. Many examples, fre-quently from list processing languages, illustrate the forms described. The advantages, disadvantages and factors influencing the choice of a form of component for a language are dis-cussed, and the paper concludes with the suggestion that programming languages evolve toward one which will permit all the most convenient ways of structuring programs, organiz-ing systems and referencing data. 1.
Efficient Submatch Addressing for Regular Expressions
, 2001
"... String pattern matching in its different forms is an important topic in theoretical computer science. This thesis concentrates on the problem of regular expression matching with submatch addressing, where the position and extent of the substrings matched by given subexpressions must be provided. The ..."
Abstract
-
Cited by 6 (0 self)
- Add to MetaCart
String pattern matching in its different forms is an important topic in theoretical computer science. This thesis concentrates on the problem of regular expression matching with submatch addressing, where the position and extent of the substrings matched by given subexpressions must be provided. The algorithms in widespread use at the time either take exponential worst-case time to find a match, can handle only a subset of all regular expressions, or use space proportional to the length of the input string where constant space would suffice. This thesis proposes a new method for solving the submatch addressing problem using nondeterministic finite automata with transitions augmented by copy-on-write update operations. The resulting algorithm makes a single pass over the input string, always using time linearly proportional to the input. Space consumption depends only on the used regular expression, and not on the input string. To the author's knowledge, this is a new result. A prototype of a POSIX.2 compatible regular expression matcher using the algorithm was done. Benchmarking results indicate that the prototype compares favorably against some popular implementations. Furthermore, absence of exponential or polynomial time worst cases makes it possible to use any regular expression without performance problems, which is not the case with previous implementations or algorithms.
Evolving TXL
"... TXL is a functional programming language specifically designed for expressing source transformation tasks. Originally designed for the rapid prototyping of modest syntactic enhancements, in recent years it has been extensively used in large scale source code analysis and reengineering applications t ..."
Abstract
- Add to MetaCart
TXL is a functional programming language specifically designed for expressing source transformation tasks. Originally designed for the rapid prototyping of modest syntactic enhancements, in recent years it has been extensively used in large scale source code analysis and reengineering applications that are much more challenging. As a result, many common programming techniques needed in these larger scale applications are difficult or impossible to express in TXL. Examples include multi-way decisions, generic rules and functions, polymorphism and information hiding. In this paper we introduce ETXL, an experimental extension of TXL which includes convenient features designed to address these issues. Designed to be a compatible variant that remains faithful to the original TXL syntax and semantics, ETXL has itself been prototyped as a source transformation to original TXL.

