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
-
C
Communicating sequential processes
Formal language for concurrent systems
Nº Q1120460 ★
Not listed
-
S
Shaping (psychology)
Psychological paradigm for behavior analysis
Nº Q1066177 ★★
Not listed
-
E
Eiffel (programming language)
Programming language
Nº Q732089 ★
Not listed
-
Algorism
Mathematical technique for arithmetic
Nº Q864014 ★
Not listed
-
E
Explicitly parallel instruction computing
Instruction set architecture
Nº Q1201158 ★★
Not listed
-
Bertrand Meyer
French computer scientist
Nº Q92946 ★
Not listed
-
P
Probable prime
Number that satisfies a given necessary condition for primality
Nº Q2654835 ★
Not listed
-
Homoiconicity
Feature of a programming language that a program written in it can be manipulated as data using the language, and thus the program's internal representation can be inferred just by reading the program itself
Nº Q925488 ★
Not listed
-
Dependency injection
Technique in software engineering
Nº Q635336 ★★★
Not listed
-
History of software
Description of the evolution and development of software throughout history
Nº Q17155144 ★
Not listed
-
P
Purely functional programming
Programming paradigm that treats all computation as the evaluation of mathematical functions
Nº Q28453809 ★
Not listed
-
Euclidean algorithm
Algorithm for computing greatest common divisors
Nº Q230848 ★★★
Not listed
-
P
Preimage theorem
Mathematical theorem (differential topology)
Nº Q7239984 ★
Not listed
-
Arithmetical hierarchy
Hierarchy which classifies certain sets based on the complexity of formulas that define them
Nº Q669094 ★
Not listed
-
F
First principle
Concept
Nº Q536351 ★★★
Not listed
-
Heyting algebra
Bounded lattice that models intuitionistic propositional logic
Nº Q1617044 ★
Not listed
-
P
Planning Domain Definition Language
Planning programming language
Nº Q7201366 ★
Not listed
-
H
Horner's method
Algorithm for polynomial evaluation
Nº Q944658 ★★
Not listed