Qualification principle

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. (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

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 function `multiple`:

local
fun multiple (n: int, d: int) =
(n mod d = 0)

fun leap (y: int) =
(multiple (y,4)
andalso not multiple (y, 100))
orelse multiple (y,400)
end

## References

* Watt, David A. (1990). "Bindings". Programming Language Concepts and Paradigms. Prentice Hall. pp. 82–83. ISBN 0-13-728874-3.

0.00

(0 votes)

Original source: https://en.wikipedia.org/wiki/Qualification principle. Read more

|

Retrieved from "https://handwiki.org/wiki/index.php?title=Qualification_principle&oldid=3982029"