/*本文参考博客:http://xxxx.sina.com.cn/s/blog_49633a46010008r3.html */
指称语义:把语言成分映射为数学对象,然后用定义在对象上的运算所表达出的语言的语义。
指称语义方法定义语言的语义基本思想是:先确定指称物,然后给出语言成分至指称物的语义映象。这个映象要求满足:
(1)每个成分都对应有指称物;
(2)复合成分的指称只依赖于它的子成分的指称。
下面以算术表达式和赋值语句及顺序语句为例给以简要说明。
算术表达式的效果就是根据程序变量当前值计算表达式的值。程序变量的当前值可以用一个数值向量来表示。如果有k个程序变量,,…,,则k维数值向量(,,…,)表示的值为,的值为,…,的值为。程序变量的一种取值称为程序的一个状态。状态的全体集合称为状态空间,记作State。算术表达式的值的范围记作Num。算术表达式的指称物就是State至Num的一个映象,也就是根据State中的任意一个元素(即程序变量的一组取值)可求得Num中对应的一个元素(即表达式在变量的这组取值下的值)。数学中的映象只反映集合间元素的对应,用映象作为语言成分的指称物在语义的定义中就避免了涉及语言成分的执行过程。State至Num的全体映象,即全体表达式的指称物,记作State→Num。不同表达式的指称物是不同的,对算术表达式的语义下定义,就是要对每个算术表达式至其指称物的一个对应下定义,故也可表示为一种映象。
用Exp表示算术表达式的全体,那么Exp的语义,就是Exp至指称物集合(State,Num)的映象,记作Exp→(State→Num)常量n是一种算术表达式,变量x本身也是一种算术表达式,两个算术表达式的和