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
-
D (programming language)
Multi-paradigm system programming language
Nº Q319268 ★★
Not listed
-
The Art of Computer Programming
Books about algorithms by Donald Knuth
Nº Q82438 ★★★
Not listed
-
Differential evolution
Method of mathematical optimization
Nº Q2662197 ★
Not listed
-
Tarjan's strongly connected components algorithm
Graph theory algorithm
Nº Q1972285 ★
Not listed
-
P
PEARL (programming language)
Programming language
Nº Q2043979 ★
Not listed
-
A
Artificial Linguistic Internet Computer Entity
Open-source chatterbot
Nº Q278333 ★
Not listed
-
L
LINPACK benchmarks
Software
Nº Q6458761 ★
Not listed
-
A
ABC (programming language)
Node js
Nº Q1057802 ★
Not listed
-
S
Solomonoff's theory of inductive inference
Mathematical formalization of Occam's razor that, assuming the world is generated by a computer program, the most likely one is the shortest, using Bayesian inference
Nº Q14947941 ★
Not listed
-
Connectionism
Approach in cognitive science that hopes to explain mental phenomena using artificial neural networks
Nº Q203790 ★
Not listed
-
K
Knuth's up-arrow notation
Method of notation of very large integers
Nº Q908427 ★★★
Not listed
-
T
Thompson's construction
Algorithm relating regular expressions to NFAs
Nº Q7795667 ★
Not listed
-
PDCA
Iterative four-step management method used in business for the control and continuous improvement of processes and products
Nº Q820214 ★★★★
Not listed
-
Liskov substitution principle
Object-oriented programming principle stating that, in a computer program, if S is a subtype of T, then objects of type T may be replaced with objects of type S without altering any of the desirable properties of the program (correctness, etc.)
Nº Q957386 ★★
Not listed
-
Parametron
Logic circuit
Nº Q7135236 ★★★
Not listed
-
C
Command pattern
Behavioral design pattern
Nº Q386776 ★
Not listed
-
Economic calculation problem
Critique of central economic planning proposed by Ludwig von Mises
Nº Q1629575 ★★★
Not listed
-
C
Curiously recurring template pattern
Software design pattern
Nº Q5194797 ★★
Not listed