Theoretical Foundations for Practical ‘Totally Functional Programming’

Colin Kemp (2007). Theoretical Foundations for Practical ‘Totally Functional Programming’ PhD Thesis, School of Information Technology and Electrical Engineering, The University of Queensland.

       
Attached Files (Some files may be inaccessible until you login with your UQ eSpace credentials)
Name Description MIMEType Size Downloads
n33429551_PHD_abstract.pdf Final Thesis Lodgement application/pdf 19.33KB 3
n33429551_PHD_totalthesis.pdf Final Thesis Lodgement application/pdf 5.09MB 12
Author Colin Kemp
Thesis Title Theoretical Foundations for Practical ‘Totally Functional Programming’
School, Centre or Institute School of Information Technology and Electrical Engineering
Institution The University of Queensland
Publication date 2007-11
Thesis type PhD Thesis
Supervisor Prof P Bailes
Dr P Robinson
Total pages 354
Total black and white pages 354
Subjects 280000 Information, Computing and Communication Sciences
Abstract/Summary Interpretation is an implicit part of today’s programming; it has great power but is overused and has significant costs. For example, interpreters are typically significantly hard to understand and hard to reason about. The methodology of “Totally Functional Programming” (TFP) is a reasoned attempt to redress the problem of interpretation. It incorporates an awareness of the undesirability of interpretation with observations that definitions and a certain style of programming appear to offer alternatives to it. Application of TFP is expected to lead to a number of significant outcomes, theoretical as well as practical. Primary among these are novel programming languages to lessen or eliminate the use of interpretation in programming, leading to better-quality software. However, TFP contains a number of lacunae in its current formulation, which hinder development of these outcomes. Among others, formal semantics and type-systems for TFP languages are yet to be discovered, the means to reduce interpretation in programs is to be determined, and a detailed explication is needed of interpretation, definition, and the differences between the two. Most important of all however is the need to develop a complete understanding of the nature of interpretation. In this work, suitable type-systems for TFP languages are identified, and guidance given regarding the construction of appropriate formal semantics. Techniques, based around the ‘fold’ operator, are identified and developed for modifying programs so as to reduce the amount of interpretation they contain. Interpretation as a means of language-extension is also investigated. Finally, the nature of interpretation is considered. Numerous hypotheses relating to it considered in detail. Combining the results of those analyses with discoveries from elsewhere in this work leads to the proposal that interpretation is not, in fact, symbol-based computation, but is in fact something more fundamental: computation that varies with input. We discuss in detail various implications of this characterisation, including its practical application. An often more-useful property, ‘inherent interpretiveness’, is also motivated and discussed in depth. Overall, our inquiries act to give conceptual and theoretical foundations for practical TFP.
Keyword interpretation
functional programming

 
Citation counts: Google Scholar Search Google Scholar
Access Statistics: 121 Abstract Views, 15 File Downloads  -  Detailed Statistics
Created: Fri, 20 Mar 2009, 02:54:30 EST by Mr Colin Kemp on behalf of Library - Information Access Service