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
-
I
Icon (programming language)
Programming language
Nº Q1156474 ★
Not listed
-
C
Copy elision
Compiler optimization that eliminates copying of objects under certain conditions
Nº Q5169174 ★
Not listed
-
Encapsulation (networking)
Method of designing modular communication protocols in which separate functions are abstracted from their underlying structures
Nº Q1172449 ★
Not listed
-
H
History of artificial neural networks
Aspect of history
Nº Q85766763 ★
Not listed
-
M
Multi-paradigm programming language
Programming language type
Nº Q12772052 ★★
Not listed
-
F
Fitch notation
Notational system for constructing formal proofs
Nº Q1142450 ★
Not listed
-
D
Declarative programming
Programming paradigm that expresses the logic of a computation without describing its control flow
Nº Q531152 ★★
Not listed
-
P
P-code machine
Programming virtual machine
Nº Q285614 ★
Not listed
-
B
Behavior tree (artificial intelligence, robotics and control)
Control method
Nº Q18205497 ★
Not listed
-
P
Pthreads
Execution model which allows for parallel computing
Nº Q928112 ★
Not listed
-
Newton's method
Algorithm for finding a zero of a function
Nº Q374195 ★★★
Not listed
-
W
Welch's method
Estimating signal power
Nº Q7980541 ★
Not listed
-
P
Process Lasso
Windows software
Nº Q4047412 ★★
Not listed
-
E
Exponentiation by squaring
Algorithm
Nº Q864127 ★★
Not listed
-
A
AKS primality test
Primality test
Nº Q294284 ★★
Not listed
-
T
TLA+
Programming language
Nº Q28955120 ★
Not listed
-
L
Literate programming
Programming paradigm
Nº Q607703 ★★
Not listed
-
APL (programming language)
Functional, symbolic programming language for operating on multidimensional arrays
Nº Q296187 ★★
Not listed