对于普通名词语义的研究,其中一个重要方面是它的指称性(referencingness)。在这方面,大多数文献只关注不定指称和确定指称之类的定指性(definiteness)的含义,例如,‘一个人’与‘这个人’之间的区别。

本人认为除了'确定性'这个层面外,普通名词还存在着另外一个很少有人关注的层面:指称性(referencingness)。亦即,物质名词(substantive nouns)除了可以指称确定或不确定的对象以外,还存在着无指称现象(referentless)。下面是一组英语例句
1.
a. I'm studying Palajami, a language spoken among American natives.
b. The language I'm working on is tough.
c. Language is the best mirror of human mind.

(1)中的‘language’有三种不同的用法:1a表示Palajami是众多美洲土语中的一种;1b的意思是我从事研究的那个语言;而1c没有明确的指称,因为language没有指称任何具体语言,而没有指称具体语言的language在这个世界上是根本不存在的。有人可能根据直感认为1c表达的是语言这个‘概念’,但是任何自然语言都是概念的具现化而不仅仅是1c,所以这种说法不能说明任何问题。汉语中无指称现象就更加多了。例如
2.
a. 今天我在他家吃了一顿饭。
b. 这顿饭吃的挺饱。
c. 吃饭靠工资,发财靠外快。

2c中的‘饭’就是一个无指称的名词。诸如此类的例子有:穿衣、扫地,打球、走路等。

无指称现象对于研究话语结构中动词和名词的赋格关系很有必要。例如土耳其语中有指称的名词作动词直接宾语时是accusative格,而无指称名词作宾语时就变成了nominative格,说明指称性不同的名词在话语结构中的差异是明显的。

自然语言中的定指、不定指和无指称还属于一种内在的语言知识,亦即一种tacit知识。而编程语言对任何事物的描述则必须是非常明确的(explicit)和精确的(precide)。在编程语言所描述的对象系统中,任何一个对象都存在三种可能性:类的实例(an instance of a class),类的实例集合(a collection of instances of a class)以及类本身。举例说明:
建立一个‘学生’类:
3

class Student {
	String name;
	String gender;
	int	  age;
	String school;
	String major;
	static long classifier = 1234L;
}



‘Student’类中的6个属性,除了最后一个其他都是实例对象的属性,而最后一个属性,‘classifier'表示’学生‘类本身的属性,亦即任何一个‘学生’类实例都具有的共同属性。




4


实例化一个学生对象


</pre><pre name="code" class="java">Student aStudent = new Student[] {
	new Student(),
	new Student(),
	new Student(),
	new Student(),
	new Student()
};



5


定义‘学生’实例(某个学生)的属性值:


aStudent.name = '张三';
aStudent.gender = '男';
aStudent.age = 22;
aStudent.school = '东北大学';
aStudent.major = '计算机科学';



6


定义students中第一个成员的属性:


students[0].name = '李四';
students[0].gender = '女';
students[0].age = 20;
students[0].school = '西南大学';
students[0].major = '物理';



7


访问‘学生’类的类属性:


System.out.println(Student.classifier);



这里的‘Student,就相当于自然语言中的无指称名词,亦即例句1c和2c中的名词。在上述编程语言的例子中,4的语义相当于自然语言的‘a student’;6的语义相当于‘students’。而6的语义对应着无指称的名词’学生‘,类似于自然语言中的:


8


a. 学生都应当好好学习



所以,名词的定指性、指称性,不仅仅是人类语言的心理认知,而且是可以明确、精确外在化(externalization)的物理实现,可以看做是这种认知心理在人工语言中运用。