В теории языков программирования принцип квалификации гласит, что любой семантически значимый синтаксический класс может допускать локальные определения. Другими словами, возможно включить блок в любой синтаксический класс, при условии, что фразы этого класса определяют некоторый вид вычисления. (Watt 1990)
Типичные примеры этого принципа включают:
tmp
объявленная переменная является локальной для команды блока окружения:если ( а > б ) { int tmp ; tmp = а ; а = б ; б = tmp ; }
g
может использоваться только во время вычисления следующего выражения:пусть значение g = 9 . 8 в m * g * h конец
leap
, использующее вспомогательную функцию multiple
:локальный 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