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
-
F
Forth (programming language)
Programming language
Nº Q275472 ★★
Not listed
-
I
Intuitionistic logic
Various systems of symbolic logic
Nº Q176786 ★★
Not listed
-
G
Greedy algorithm
Algorithm that makes locally optimal choices in a sequence of steps with the goal of reaching a global optimum
Nº Q504353 ★★★
Not listed
-
B
Backward Euler method
Numerical method for solving differential equations
Nº Q2736820 ★★
Not listed
-
A
Agent-oriented programming
Programming paradigm centred on the concept of software agents
Nº Q139008 ★
Not listed
-
Backward induction
Process of reasoning backwards in time
Nº Q968642 ★
Not listed
-
S
System F
Typed lambda calculus
Nº Q2552799 ★
Not listed
-
Copy-and-paste programming
Pejorative for the production of highly repetitive computer programming code, as produced by copy and paste operations
Nº Q5169171 ★
Not listed
-
Predictive maintenance
Determining the condition of in-service equipment in order to estimate when maintenance should be performed
Nº Q3182448 ★
Not listed
-
R
Risch algorithm
Algorithm used to compute integrals of functions, especially used in computer algebra systems
Nº Q1382512 ★
Not listed
-
Boolean satisfiability problem
Problem of determining if a Boolean formula could be made true
Nº Q875276 ★★
Not listed
-
B
Buddy memory allocation
Memory allocation algorithm
Nº Q1001112 ★
Not listed
-
B
Brent's method
Root-finding algorithm
Nº Q905988 ★
Not listed
-
C
Concepts (C++)
Compile-time predicate on C++ template parameters
Nº Q5158429 ★
Not listed
-
PP (complexity)
Complexity class
Nº Q1563053 ★
Not listed
-
Elvis operator
Binary operator in computer programming
Nº Q22682021 ★
Not listed
-
Idempotence
Property of certain operations in mathematics and computer science, that can be applied multiple times without changing the result beyond the initial application
Nº Q368988 ★★★★
Not listed
-
M
Method chaining
Programming syntax
Nº Q6823694 ★
Not listed