Functional declarative language design and predicate calculus: A practical approach

被引:11
作者
Boute, R [1 ]
机构
[1] Univ Ghent, INTEC, B-9000 Ghent, Belgium
来源
ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS | 2005年 / 27卷 / 05期
关键词
design; documentation; languages; theory; verification; analysis; binary algebra; calculational reasoning; databases; declarative languages; elastic operators; function equality; functional predicate calculus; generic functionals; Leibniz's principle; limits; programming languages; program semantics; quantifiers; recursion; software engineering; summation;
D O I
10.1145/1086642.1086647
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
In programming language and software engineering, the main mathematical tool is de facto some form of predicate logic. Yet, as elsewhere in applied mathematics, it is used mostly far below its potential, due to its traditional formulation as just a topic in logic instead of a calculus for everyday practical use. The proposed alternative combines a language of utmost simplicity (four constructs only) that is devoid of the defects of common mathematical conventions, with a set of convenient calculation rules that is sufficiently comprehensive to make it practical for everyday use in most (if not all) domains of interest. Its main elements are a functional predicate calculus and concrete generic functionals. The first supports formal calculation with quantifiers with the same fluency as with derivatives and integrals in classical applied mathematics and engineering. The second achieves the same for calculating with functionals, including smooth transition between pointwise and point-free expression. The extensive collection of examples pertains mainly to software specification, language semantics and its mathematical basis, program calculation etc., but occasionally shows wider applicability throughout applied mathematics and engineering. Often it illustrates how formal reasoning guided by the shape of the expressions is an instrument for discovery and expanding intuition, or highlights design opportunities in declarative and (functional) programming languages.
引用
收藏
页码:988 / 1047
页数:60
相关论文
共 76 条
  • [1] Aarts C., 1992, RELATIONAL THEORY DA
  • [2] Almstrum. V. L., 1996, TEACHING LEARNING FO, P131
  • [3] ALUR R, 1996, LECT NOTES COMPUTER, V1066
  • [4] [Anonymous], 1987, FORMALIZATION SET TH
  • [5] [Anonymous], 1994, Concrete Mathematics: a Foundation for Computer Science
  • [6] [Anonymous], 1990, RADIO COMMUNICATIONS
  • [7] BACKUS J, 1978, COMMUN ACM, V21, P8
  • [8] BARENDREGT HP, 1984, LAMBDA CALCULUS ITS
  • [9] BIRD R, 1998, PRENTICE HALL INT SE
  • [10] BISHOP RH, 2001, LABVIEW STUDENT EDIT