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
-
L
Logic Theorist
Computer program
Nº Q4391896 ★★
Not listed
-
Extraordinary claims require extraordinary evidence
Statement about the burden of proof made by various writers throughout history and famously cited by Carl Sagan on the television programme Cosmos
Nº Q27963927 ★
Not listed
-
Polymorphism (computer science)
In programming languages and type theory, accessing different types using a common interface
Nº Q3240252 ★★★
Not listed
-
Charles Babbage
English mathematician, philosopher, and engineer (1791–1871)
Nº Q46633 ★★★★
Not listed
-
P
Principle of explosion
Theorem which states that any statement can be proven from a contradiction
Nº Q60190 ★★
Not listed
-
F
Functional programming language
Programming language that uses functional programming principles
Nº Q3839507 ★
Not listed
-
Derivative
Instantaneous rate of change (mathematics)
Nº Q29175 ★★★★
Not listed
-
N
Neural field
A neural field is a type of neural network that models a mathematical field in a continuous and differentiable way
Nº Q135271240 ★★
Not listed
-
Brainfuck
Esoteric, minimalist programming language
Nº Q244627 ★★★
Not listed
-
E
Einstellung effect
Predisposition to solve a given problem in a specific manner even though more appropriate methods of solving the problem exist
Nº Q5349816 ★
Not listed
-
M
MECE principle
Organizing method developed by McKinsey
Nº Q1074664 ★★
Not listed
-
Tcl (programming language)
Scripting language
Nº Q5288 ★★
Not listed
-
C (programming language)
General-purpose programming language
Nº Q15777 ★★★★★★
Not listed
-
Creo Parametric
CAD software
Nº Q926821 ★
Not listed
-
B
Bailey–Borwein–Plouffe formula
Formula for calculating π
Nº Q803807 ★
Not listed
-
C
Conflict-driven clause learning
SAT solving algorithm
Nº Q17008878 ★
Not listed
-
F
FOCAL (programming language)
Level programming language for the Lego Mindstorms NXT
Nº Q1966202 ★
Not listed
-
Hardware acceleration
Use of specialized computer hardware to perform some functions more efficiently than is possible in software running on a more general-purpose CPU
Nº Q600158 ★
Not listed