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
-
IP (complexity)
Complexity class
Nº Q5973158 ★★
Not listed
-
H
Halley's method
Method of numerically finding roots of a function
Nº Q1476051 ★
Not listed
-
ZPP (complexity)
Complexity class
Nº Q136355 ★
Not listed
-
B
Back Orifice
Computer program designed for remote system administration
Nº Q798333 ★
Not listed
-
PTC Creo
Computer-aided design software suite
Nº Q4299727 ★
Not listed
-
Cook–Levin theorem
Theorem that Boolean satisfiability is NP-complete and therefore that NP-complete problems exist
Nº Q377276 ★
Not listed
-
Principal component analysis
Conversion of a set of observations of possibly correlated variables into a set of values of linearly uncorrelated variables called principal components
Nº Q2873 ★★★
Not listed
-
Hilary Putnam
American philosopher and mathematician
Nº Q221697 ★★
Not listed
-
P
Procedural programming
Programming paradigm
Nº Q1418502 ★★★
Not listed
-
Occam (programming language)
Concurrent programming language
Nº Q838062 ★
Not listed
-
H
Held–Karp algorithm
Solution of the traveling salesman problem
Nº Q20203442 ★
Not listed
-
F
F* (programming language)
Functional programming language inspired by ML and aimed at program verification
Nº Q5423569 ★
Not listed