Predicative programming
Method of computer program specification
Predicative programming is the original name of a formal method for program specification and refinement, more recently called a Practical Theory of Programming, invented by Eric Hehner. The central idea is that each specification is a binary (boolean) expression that is true of acceptable computer behaviors and false of unacceptable behaviors.
Nº Q7239635 ★
Common · Knowledge
Predicative programming
Method of computer program specification
Predicative programming is the original name of a formal method for program specification and refinement, more recently called a Practical Theory of Programming, invented by Eric Hehner. The central idea is that each specification is a binary (boolean) expression that is true of acceptable computer behaviors and false of unacceptable behaviors.
From Wikipedia
Predicative programming is the original name of a formal method for program specification and refinement, more recently called a Practical Theory of Programming, invented by Eric Hehner. The central idea is that each specification is a binary (boolean) expression that is true of acceptable computer behaviors and false of unacceptable behaviors. It follows that refinement is just implication. This is the simplest formal method, and the most general, applying to sequential, parallel, stand-alone, communicating, terminating, nonterminating, natural-time, real-time, deterministic, and probabilistic programs, and includes time and space bounds. Commands in a programming language are considered to be a special case of specification—those specifications that are compilable. For example, if the program variables are x {\displaystyle x} , y {\displaystyle y} , and z {\displaystyle z} , the command x {\displaystyle x} := y {\displaystyle y} +1 is equivalent to the specification (binary expression) x ′ {\displaystyle x'} = y {\displaystyle y} +1 ∧ y ′ {\displaystyle y'} = y {\displaystyle y} ∧ z ′ {\displaystyle z'} = z {\displaystyle z} in which x {\displaystyle x} , y {\displaystyle y} , and z {\displaystyle z} represent the values of the program variables before the assignment, and x ′ {\displaystyle x'} , y ′ {\displaystyle y'} , and z ′ {\displaystyle z'} represent the values of the program variables after the assignment. If the specification is x ′ {\displaystyle x'} > y {\displaystyle y} , we easily prove ( x {\displaystyle x} := y {\displaystyle y} +1) ⇒ ( x ′ {\displaystyle x'} > y {\displaystyle y} ), which says that x {\displaystyle x} := y {\displaystyle y} +1 implies, or refines, or implements x ′ {\displaystyle x'} > y {\displaystyle y} . Loop proofs are greatly simplified. For example, if x {\displaystyle x} is an integer variable, to prove that while...
Text: Wikipédia, CC BY-SA 4.0. ·
Related cards
-
A
Aspect-oriented programming
Programming paradigm
Nº Q30267 ★★
Not listed
-
F
Functional reactive programming
Programming paradigm for reactive programming using key features of functional programming
Nº Q5508843 ★
Not listed
-
P
Predictor–corrector method
Algorithms in numerical analysis
Nº Q2650267 ★
Not listed
-
B
B (programming language)
Procedural programming language
Nº Q797302 ★★★
Not listed
-
P
P′′
Primitive computer programming language
Nº Q2072087 ★★
Not listed
-
Integer programming
Mathematical optimization problem in which variables are restricted to be integers
Nº Q6042592 ★★
Not listed
-
F
FRACTRAN
Turing-complete esoteric programming language invented by John Conway
Nº Q3063395 ★
Not listed
-
C
Convention over configuration
Software design paradigm
Nº Q1462470 ★
Not listed
-
A
Automatic programming
Type of computer programming where some mechanism generates a computer program allowing programmers to write code at higher abstraction levels
Nº Q762268 ★
Not listed
-
D
Dhrystone
Computer performance test
Nº Q1207761 ★
Not listed
-
S
Static program analysis
Program analysis performed without actually executing programs
Nº Q1329550 ★★★
Not listed
-
P
Pascal (programming language)
Programming language
Nº Q81571 ★★★★
Not listed
-
Bellman equation
Necessary condition for optimality associated with dynamic programming
Nº Q1430750 ★★
Not listed
-
Logic programming
Programming paradigm based on formal logic
Nº Q275603 ★★
Not listed
-
M
Markov algorithm
String rewriting system that uses grammar-like rules to operate on strings of symbols
Nº Q1900936 ★★
Not listed
-
P
Proper generalized decomposition
Numerical method for solving boundary value problems
Nº Q55080117 ★★
Not listed
-
T
TPK algorithm
Program to compare computer programming languages
Nº Q7831057 ★★
Not listed
-
F
Forth (programming language)
Programming language
Nº Q275472 ★★
Not listed