Принцип квалификации

В теории языков программирования принцип квалификации гласит, что любой семантически значимый синтаксический класс может допускать локальные определения. Другими словами, возможно включить блок в любой синтаксический класс, при условии, что фразы этого класса определяют некоторый вид вычисления. (Watt 1990)

Типичные примеры этого принципа включают:

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

Ссылки

  • Уотт, Дэвид А. (1990) [1990]. «Связывания». Концепции и парадигмы языков программирования . Prentice Hall. стр.  82– 83. ISBN 0-13-728874-3.


Взято с "https://en.wikipedia.org/w/index.php?title=Квалификационный_принцип&oldid=1260198885"