Qualification principle
{{More citations needed|date=June 2024}}
In programming language theory, the qualification principle states that any semantically meaningful syntactic class may admit local definitions. In other words, it's possible to include a block in any syntactic class, provided that the phrases of that class specify some kind of computation. {{Harv|Watt|1990}}
A common examples for of this principle includes:
- block command -- a command containing a local declaration, which is used only for executing this command. In the following excerpt from a C program,
tmp
variable declared is local to the surrounding block command:
if (a > b) {
int tmp;
tmp = a;
a = b;
b = tmp;
}
- block expression -- an expression containing a local declaration, which is used only for evaluating this expression. In the following excerpt from ML program, local declaration of
g
can be used only during evaluation of the following expression:
let
val g = 9.8
in
m * g * h
end
- block declaration is one containing a local declaration, the bindings produced by which are used only for elaborating the block declaration. In the following excerpt from ML program, local declaration of function
leap
, using an auxiliary functionmultiple
:
local
fun multiple (n: int, d: int) =
(n mod d = 0)
in
fun leap (y: int) =
(multiple (y,4)
andalso not multiple (y, 100))
orelse multiple (y,400)
end
References
- {{cite book
|last= Watt
|first= David A.
|authorlink= David Watt (computer scientist)
|title= Programming Language Concepts and Paradigms
|year= 1990
|orig-date= 1990
|publisher= Prentice Hall
|isbn= 0-13-728874-3
|pages= 82–83
|chapter= Bindings
}}
Category:Articles with example C code
Category:Articles with example OCaml code
Category:Programming language theory
{{compu-lang-stub}}
{{compu-sci-stub}}