文档库 最新最全的文档下载
当前位置:文档库 › 语义分析与符号表

语义分析与符号表

语义分析与符号表
语义分析与符号表

第五章语义分析

5.1语义分析基础

5.1.1 语义分析内容

程序设计语言的语义可分为静态语义和动态语义。所谓静态语义是指在编译阶段能检查的语义,而动态语义则指只有在目标码的运行阶段才能检查的语义。如果所有类型均能在编译阶段检查,则称这种语言为强类型语言。Pascal是强类型语言的一个例子。

在某些语言里变量的类型是可变的,这时类型的语义成为动态语义,因为类型相容问题只能在代码运行时才能检查出来。语言的静态语义成分越多编译器和解释器的区别会越大,如果都属于动态语义,那么编译器和好的解释器的差别将会变小。

类型在大多数语言里都属于静态语义,而且它是最重要的静态语义,可以说,静态语义问题主要是类型相容的问题。类型检查主要有以下几种:

?各种条件表达式的类型是不是boolean型?

?运算符的分量的类型是否相容?

?赋值语句的左右部的类型是否相容?

?形参和实参的类型是否相容?

?下标表达式的类型是否为所允许的类型?

?变体记录中表示情形的常量是否为合法类型?

?函数说明中的函数类型和返回值的类型是否一致?等

除了上述类型检查外,还要进行如下一些语义检查:

?V[E]中的V是不是变量,而且是数组类型?

?V.i中的V是不是变量,而且是记录类型? i是不是该记录类型中的域名?

?V↑中的V是不是指针或文件变量?

?y+f(....)中的f是不是函数名?形参个数和实参个数是否一致?

?p(....)语句中的p是不是过程名?形参个数和实参个数是否一致?

?每个使用性标识符是否都有相应的声明?在同层内有无标识符被声明多次?

?标号是否有声明?有无重复声明和重复定位错误?有无非法转入错误?

?子界类型中的下界和上界类型是否相容?下界是否小于等于上界?

? ..........................................

一遍扫描的编译器是从源程序的ASC码序列即源语言的字符串序列直接生成目标

代码,因此不会有独立的语义分析器。多遍扫描的编译器,也未必有独立的语义分析器,如果没有,则意味着把语义检查工作分散到编译过程的几个阶段中顺便完成。

语义分析是整个编译过程中的最重要的基础工作,因此要熟练地掌握编译原理必须熟练地掌握语义分析原理。基于这种思想我们把语义分析部分独立出来加以介绍。实际上,只要掌握了独立化的语义分析方法,那么可毫不费力地掌握非独立化情形的语义分析方法。这里要介绍的语义分析器将完成所有静态语义的检查,并且输出与输入几乎一样的TOKEN 序列,不同的仅仅是把语句中的标识符TOKEN:(#id, idAddr),统统替换成新的TOKEN:(#id, Entry)。其中idAddr 是标识符在名表NameList 中的地址,而Entry 是标识符在符号表SymbTable 中的地址。

5.1.2 标识符的内部表示

我们知道最小的语义单位是所谓的单词。单词可分为几类,其中除了标识符外,单词的含义已经完全表示在TOKEN 中,而标识符则在其TOKEN 表示中只有名字信息,并没有代表其含义的任何其他信息。因此,对于每个标识符要构造出表示其含义的属性记录,并用某种结构的表--称之为标识符的属性表或简称符号表标识符--来记录每个标识符的含义。有了标识符的属性表后即可检查类型、说明、表达式和语句等复杂成分的语义错误。我们的语义分析器就是完成这些工作。

在Pascal 语言中标识符可表示如下对象:

? 常量名 ? 类型名 ? 变量名 ? 函数名 ? 过程名 ? 域名 于是可写出如下类型声明:

TYPE idKind=( consKind, typeKind, varKind, fieldKind, procKind, funcKind )

其中过程以外均涉及类型,对于过程情形可虚设其类型。关于标识符的内部表示并没有众所公认的一种统一的结构,究竟采用哪种结构完全取决于语言和编译器的设计者。下

? TypePtr 指向类型的内部表示

? constKind 表示相应标识符是常量标识符 ?

Value 是常量值

? typeKind 表示是类型标识符

? Forward 表示是向前引用的类型标识符

变量标识符 常量标识符

类型标识符

? Access 表示是直接变量还是间接变量:access =(dir, indir) ? indir 表示是间接变量(变参属于间接变量),di r 表示直接变量 ? Level 表示该变量声明所在主程序/函数/过程的层数 ? Off 表示该变量相对它所在主程序/函数/过程的偏移量

? TypePtr 表示域名所对应域类型的内部表示的地址

? Off 表示域名相对所在记录的偏移量

? HostType 表示域名所对应的记录类型的内部表示地址

? TypePtr 表示函数类型的内部表示地址(过程情形是void)

? routKind 表示标识符是过程/函数标识符 ? Level 表示过程/函数层数

? Parm 表示信参信息表地址(可以是符号表地址)

? Class=actual 表示是实在过程/函数名,另一种情形是Class=formal ? Code 表示过程/函数的目标代码地址(此部分在代码生成阶段填写) ? Size 表示本过程/函数所需的空间大小 ? Forward=rtue 表示是向前声明

? 为了使内部表示变短,可把上述内部表示分成两部分

? 形参过程/函数情形的内部表示是:

? Class=formal 表示作为形参的过程/函数标识符 ? Off 表示作为形参的过程/函数标识符偏移量 ? 其他情形同前

记录类型域名标识符的属性必须登记在某个地方,其方法可有两种:一种是登记在SymbTable 表中;另外一种是登记在记录类型的内部表示中。各有利弊,很难说哪种是最好的。第一种方法的缺点是,他可能使得在同层符号表中出现多个相同标识符的情形。例如,假设有记录类型

RECORD j : integer ; r : RECORD j : integer;

b: boolean

END

END

域名标识符

过函标识符

则其中有两个名字相同的域标识符j ,因此要在符号表中构造两个j 符号项(在同层)。显然,这在逻辑上是不太合理的,而且每个域名还要记住其所在的记录类型。后一种方法可避免这种现象, 这时上例中的里层记录将产生自己的内部表示,这样自动地把两个不同的j 加以分开了。

从理解角度来看,也是后一种方法更容易理解,因此我们将采用后一种方法。这就是说,在符号表里不出现域名标识符,换句话说在标识符种类里没有域名种类。 假设有声明部分:

CONST pai = 3.14 TYPE vector= ARRAY [1 .. 10] OF integer :

VAR

x ,y :real; r ,s :vector

并且当前层数和可用Offset 值分别为L 和0,则标识符pai, vector, x, y, r 和s 的属性表示将是分别如下:

其中realPtr 是指向实数类型内部表示的固定指针值;aPtr 则表示例中数组类型内部表示(用到10个单元) 的地址。

在标识符的内部表示中涉及到层数、偏移量、过程/函数的存储大小和目标代码入口地址等内容。其中层数和偏移量可在处理声明部分时确定,而其他部分只能在目标代码的生成阶段确定。这些内容将在后面分别介绍。

据上述讨论,标识符的属性都有类型部分,即第一个属性是类型信息,过程情形其类型为虚类型。其他信息部分则随标识符的种类的不同而不同`。标识符的属性结构可用类Pascal 语言描述如下:

TYPE idKind = (consKind , typeKind, varKind, routKind ); AccessKind = (dir , indir ) ; LevelRange = 0 .. LevelMax ; OffsetRange = 0 .. OffsetMax ; CodeRange = 0 .. CodeMax ;

PFclass = ( formal, actual) ;

PFparam

= RECORD Entry : ↑SymbTable ;

pai vector

x

y

r s

Next :↑PFparam

END

AttributeIR= RECORD

idType :↑TypeIR ;

CASE Kind : idKind OF

consKind :( Valu :ConsValue );

typeKind :( );

varKind :( Access :AccessKind;

Level :LevelRange;

Off :OffsetRange

)

routKind :( Level : LevelRange ;

Param :↑PFparam ;

CASE Class OF

Actual : (

Code : ObjeetCode;

Size : SizeRange;

Forward: Boolean

);

Formal : ( Off : OffRange )

)

END;

在Pascal等语言中没有记录值的概念,因此当给一个记录变量赋值时采用一个域一个域的赋值办法。显然,这是一件麻烦的事情,因此我们将引进记录值的概念,有了这一概念,只要把记录值直接赋给记录变量就可以了。例如,假设有记录类型:Node = RECORD elem1 : real ; elem2 : char END

那么下面是其记录值的一个例子:

Node'( elem1: 0.55, elem2: ' A ')

总的思想是,由带‘’’的记录类型名打头,以后是“域名:值”的序列。下面考虑带变体的记录,假设有记录类型的定义:

Node=RECORD Size : integer ;

CASE Kind : boolean OF

false :( elem1, elem2: real );

true :( comp: integer );

END

则下面都是上述记录类型的记录值:

Node'( Size: 100, Kind: false( elem1:0.5 , elem2:0.05 ) )

这样我们可以写出如下的记录赋值语句:

V := Node'( Size: 100, Kind: false( elem1:0.5 , elem2:0.05 ) )

上面的表示法由于带域名可读性好一些,但写起来比较长。因此,以后一般写成下面形

式简单形式:

V := Node ( 100, false(0.5 , 0.05 ) )

它们实际表示的是:V := ( 100, false(0.5 , 0.05 ) )。如果带类型名,则即可找出记录值中各部分所对应的域名,因此有它方便的一面。

5.1.3 类型的内部表示

类型在静态语义中扮演着最重要的角色,可以说它是最重要的静态属性值,因此我们专门讨论类型的内部表示。不同的编译器都有类型的内部表示,当然其表示形式未必是相同的。我们考虑类Pascal语言的类型,为了简单起见不考虑紧缩问题,事实上如果考虑的话,主要在内部表示中增加一个表示是否紧缩的域即可。

| real

| array [ ] of

| record end

| set of

| file of

| ↑tid

< OrdiType> →id | |

→( IdentifierList )

→Const .. Const

;

→|

→id : Type ;..................................................(未考虑idList)

→|

→| case id : of

| ;

→id: ( ) ................................(未考虑idList)

我们假设整数值、逻辑值、字符值和实数值所需要的存储单元个数分别为intSize、

boolSize 、charSize 和realSize ,这些值依赖于具体编译器。为方便起见,以后在例子中不妨假设它们的值均为1。类型的内部表示可图示如下:

? HostType 表示子界类型的宿主类型(

指针) ? Low 和Up 分别表示下界值和上界值

? 子界类型的大小SubSize 均相同(依赖于具体编译器)

? 记录表示例: TypeIR '( Size:1, Kind: subTy( HostType: intPtr, low:1, up :10 ))

? Elems 表示枚举元素表的头地址

? Leng 如果必要的话可增加枚举表的元素个数部分

? 枚举类型的大小EnumSize 均相同(依赖于具体编译器)

? 记录表示例: TypeIR ' ( Size:1, Kind: enumTy( Elemse:Ptr, Leng:10) )

? IndexType 表示下标类型(指针)

? ElemType 表示数组元素的类型(指针)

? 记录表示例: TypeIR '( Size:10, Kind: arrayTy( IndexType:Ptr0, ElemType :Ptr1) )

? FixBody 指向记录的固定部分的域类型表(链)地址:

record 标准类型的内部表示已事先构造好:它们的内部地址分别表示为intPtr,boolPtr, charPtr, realPtr 。非标准类型的内部表示,均在处理类型时生成。 array

enum subrange

? VariBody 指向变体部分的标志域结点的地址

? BaseType 表示集合类型的基类型

? 集合值类型的存储空间大小均相同(依赖于具体编译器)

? CompType 表示文件类型的成分类型(指针)

? 文件类型的大小FileSize 均相同

? TypeName 表示定义指针类型的类型标识符的符号表地址 ? TypeName 部分未必当时能填写,因为定义指针类型的标识符可能是向前引用

如果用Pascal 语言来描述类型的种类,则有

TypeKind = ( intTy, boolTy, charTy, realTy, enumTy, subTy, arrayTy, recordTy, setTy, fileTy , pointerTy )

类型内部结构的第一个成分是类型大小的信息,其他信息的内容则随类型的不同而不同。类型的内部结构可用下面记录来描述:

TypeIR = RECORD size : SizeRange; CASE kind : TypeKind OF intTy : ( ); boolTy : ( ); charTy : ( ); realTy : ( ); enumTy :( Elems :↑ IdL ); subTy :( HostType :↑TypeIR ; Low : Value; Up : Value ); arrayTy :( IndexType :↑TypeIR ; ElemType :↑TypeIR ); recordTy :( FixBody :↑FixBodyIR; VariBody :↑VariBodyIR ); setTy :( BaseType :↑TypeIR );

fileTy :( CompType :↑TypeIR );

file pointer set

pointerTy:( TypeName : ↑SymbTable );

END ;

IdL = RECORD Elem : String ;NextElem :↑IdL END;

FixBodyIR = RECORD id :String ;

FixUnitType :↑TypeIR;

Off :OffRange;

Next :↑FixBodyIR

END;

.................... FixBodyIR'( name, tpPtr, off, nextPtr )....................记录值表示

VariBodyIR= RECORD CaseUnit :CaseUnitIR;

VariUnits :↑VariUnitsIR

END;

..................VariBodyIR'(caseU, variUS)...................................记录值表示

CaseUnitIR= RECORD

id :String;

CaseType :↑TypeIR;

Off :OffRange

END;

...................VariBodyIR'(name, tp, off)...................................记录值表示

VariUnitsIR = RECORD

FixBody :↑FixBodyIR;

VariBody :↑VariBodyIR;

Next :↑VariUnitsIR

END;

....................VariUnitsIR'( fixBodyPtr, variBodyPtr, nextVariUnitsPtr)

在记录类型的内部表示中,我们没用到VariUnit中的情形常量。如果想把它加到内部表示,那么只要在VariUnitIR中再增加一个情形常量域即可。根据我们的定义,各类型的内部结构可表述如下:

INTEGER :TypeIR'(IntSize, intTy() )

REAL :TypeIR'( RealSize, realTy() )

BOOLEAN :TypeIR'( BoolSize, boolTy() )

CHAR :TypeIR'( CharSize, charTy() )

ENUM : TypeIR'( EnumSize, enumTy( listPtr) )

SUBRANGE : TypeIR'( SubSize, subTy( value1 , value2 ) )

ARRAY : TypeIR'( ArraySize, arrayTy(tpPtr0, tpPtr1 ))

RECORD : TypeIR'( RecordSize, recordTy(fixPtr ,variPtr) )

SET OF : TypeIR'( SetSize, setTy( tpPtr))

FILE OF : TypeIR'( FileSize, fileTy (tpPtr))

POINTER : TypeIR '( PointSize, pointerTy( entry ) )

下面给出数组类型和记录类型内部表示的例子。

为确定起见,假设简单类型的值一律占一个单元。假设所考虑的数组类型定义是:

at = ARRAY [1..10] OF ARRAY [1..100] OF integer; rt= RECORD x : real; a : at; CASE u : boolean OF

false:( k : integer );

true :( y: real; b :boolean )

END

则相应的内部结构如5.1.3.1、图5.1.3.2所示。数组共需1000个单元。

图5.1.3.1 数组类型的内部表示图

■注意!本书在描述中使用了比Pascal语言更广的语言。请读者不要把它作为Pascal 语言来学。比如在类型内部结构的Pascal描述中,用到了形如下面的类型定义:RT = RECORD X :real ; next : ↑RT END

这在Pascal是不允许的。正确的Pascal写法应是:

Q =↑RT;

RT = RECORD X :real ; next : Q END

还有,在Pascal中不少地方只能写类型名而不能写一般的类型,但为了简单起见,我们有意地打破了这些规定。

5.1.4 值的内部表示

我们还是以Pascal为例考虑值的内部表示问题。在Pascal里可作为表达式或函数值的是非结构类型的值,而非结构类型整数类型、布尔类型、字符类型、枚举类型、子界类型、实数类型和指针类型,因此我们只需考虑上述类型的值的表示问题。其中整数类型和实数类型的值分别对应整数和实数值,而指针类型值则对应地址,因此主要考虑的是其他简单类型的值的问题。

简单类型的特点是它们有相应的常量,其中指针类型只有nil常量。实数类型的常量是不可排序的,因此不属于有序类型。有序类型的常量是可排序的,因此每个常量都有相应的序号,为此Pascal语言定义了一个函数ord,它的具体定义如下:

■整数常量: ord(N)=N;

■布尔常量: ord(false)=0,ord(true)=1;

■字符常量: ord(C)=ASCII码(C);

■枚举常量: 设有枚举类型(D,A, B),则有ord(D)=0,ord(A)=1,ord(B)=2;

■枚举常量: 设有子界类型C1 .. C2,则它表示值空间[ord(C1), ord(C2)];

其中C1 和C2是引用型出现,因此ord(C1) 和ord(C2)有定义。

总而言之,有序类型的常量值都被表示为一个整数形式。因此,在生成有序类型值的关系运算等操作代码时,可产生同样的目标代码,而不需要区别对待。根据上述约定,假设有变量声明:

VAR x : ( a, b )

则该声明实际定义了三个标识符和一个类型。假设被定义的枚举类型的内部表示是由tpPtr指向的,则上述三个标识符的内部表示即属性表示应如下:

a : AttributeIR'( tpPtr, consKind( 0 ) ) ........................ ( tpPtr, consKind, 0 )

b : AttributeIR'( tpPtr, consKind( 1 ) ) ........................ ( tpPtr, consKind, 1 )

x : AttributeIR ( tpPtr, variKind( dir, Level, Off ) ) ....... ( tpPtr, varkind, dir, Level, Off )

5.2符号表

符号表是存放标识符信息的一种表,其中信息表示的是标识符的属性(语义),因此也称符号表为标识符的属性表或词典。我们将用SymbTable表示符号表的类型名,它代表的可以是一个数组也可以是链表。在程序中被声明的每个标识符,都要在符号表中记录其属性。表项分为两部分,其中前者是标识符名字(或在名表中的地址),而后者是属性部分。对于任何编译器来说,符号表都是不可缺少的最基本的组成部分,因此可以说符号表是任何编译器中语义分析和代码生成的基础部分。符号表中的主要问题有下列一些:符号表的建立与查找;符号表的局部化;符号表的界面。

作为符号表的查表技术,主要介绍顺序查表法、平分查表法和散列查表法;作为符号表的局部化技术,主要介绍局部符号表法和外拉链散列式的全局符号表法。符号表的具体结构与查表方法有关,若用的是顺序查表法,则一般用相连表(数组)或拉链表;若用平分查表法,则一般用相连表或二叉树;若用散列查表法,则一般相连表或相连表与拉链表的联合结构。

5.2.1 表处理技术

每个编译器用到大量的表,并且要频繁地去查各种表,特别是前面所讲的符号表更是如此。因此,提高查表速度是提高编译速度的非常重要环节。好的查表速度和差的查表速度可相差几十倍,甚至是上百倍,因此表处理技术是非常重要的一种编译技术。表有建表和查表两种操作,其中建表是一次性的,而查表是重复性的,因此主要要研究的是查表技术,而不是建表技术。当然,查表方法不一样,相应的建表方法也不一样。常见的查表方法主要有以下三种方法。

顺序查表法是最简单的一种方法,当不追求速度或无法使用其他更好的方法时使用这种方法。顺序表可用数组来表示,也可用链表来表示。数组形式的特点是表元素直接相连,不需要指出下一元素在何处。这种方法的缺点是,对于每个表要确定其长度,而这一工作是很难做的。当用到的表多时,不管怎么确定表长度,都容易产生某表区溢出或某表区空闲的现象。用链表方法就可避免上述问题,但每个表元素都要用指针来指明下一元素的位置,这就要多占空间,而且多少会影响查表速度。顺序查表法在填表时按出现次序依次填表,而在查表时从第一个元素开始依次查表。

下面考虑查表速度问题。所谓查表时间是指查所要关键字所需的关键字的比较次

数。对于表中的每一项来说,其查找次数固定,因此可用t i来表示第i项的查找时间。假设表长度为N,则查表的总时间为T=t1+ t2+......+t N,而平均查表时间则是T/N。对于顺序查表来说,t i =i,因此总查表时间是N(N+1)/2,平均查表时间是(N+1)/2,其中N 是表长度。

假设符号表的查表用的是顺序查表法,则符号表的相连表和拉链表结构可用类Pascal语言描述如下:

■SymbTable = ARRAY [ 0..N] OF Iterm

Iterm = RECORD id : String; Attrib : AttributeIR END

■SymbTable=RECORD id : String ; Attrib : AttributeIR; Next :↑SymbTable END

平分查表法是这样一种方法,即对每个关键字按一定规则确定一个排序值,并在填表时严格按其排序值的大小顺序来排列。在查表时首先与表中间位置上的关键字进行比较,如果不等,则有两种可能:一是待查关键字的排序值小于中间位置上关键字的排序值;二是待查关键字的排序值大于中间位置上关键字的排序值。如果是属于前一种情形,则用同样的方法查前半部;否则查后半部。Pascal的P4-编译器使用了这种方法。

确定排序值的比较自然的一种办法是取符号串的ASCII码值。假设有关键字集ZA, AB, DA, BB, ED, FF, GA

则它们被填写成下面表:

AB, BB, DA, ED, FF, GA, ZA

这时查BB、DA的过程可图示如下:

为了讨论方便,假设表是用二叉树表示的,其中根结点表示中间结点。在下面图中t

当然,构造出的二叉树未必精确的具有上述形式,但基本上具有这种形式,因此我们就假设具有这种形式,并且层数为K 。结点的个数应等于表项个数N ,故有下面式子: N = 20 + 21 + 22 + .......+ 2K--1 = 2K -1 k = log 2 (N+1)

这就表明每个元素的查表时间不超过log 2(N+1)。这种方法的查表速度能比顺序查表速度提高很多。下面是两种查表方法的速度比较表(看最大的比较速度):

如果在填表期间不查表,即建表完才查表,那么可按顺序表那样建表,然后再集中地把表改造成平分查表所要求的形式。 如果符号表是用相连表来表示的,则其建表和查表算法都比较简单(平分查表)。但如果用二叉树来表示表,那么建表过程就变得复杂起来。比如,给定关键字W 1,W 2,W 3,W 4,W 5 ,W 6,W 7的相应排序值分别为1,2,3,4,5,6,7,则构造出的较好二叉树应是如下面图所示:

对于给定关键字序列可能构造出多个不一样的二叉树来,那么应该构造出什么样的二叉树? 它应保证所建二叉树的高度最小,这样它能提高查表速度。如何构造这种二叉树?读者不妨试一试。假设符号表用的是二叉树结构,则其Pscal 描述可如下:

SymbTable= RECORD id

: String;

Attrib

: AttributeIR;

Left,Right :↑SymbTable

END

在目前所用的查表方法中,散列查表法是速度最快的一种方法。一般来说查表速度快,其填表速度慢,但填表动作只做一次,而查表动作是要做很多次的,因此在处理中要注重的是查表速度,而不是填表速度。有些实际编译器采用了这种方法。

散列法的主要思想是在关键字域上定义一个所谓的散列函数H使得:

H : KeyWord→[0, N-1]

其中N是表长度。从定义可以看出散列函数H是对给定关键字确定其表位置的一种函数,就是说不用查表,而是由H直接计算出关键字在表中的地址。假设表元素的序号为0,1,2,....,N-1,则有0≤H(s) ≤N-1。

■直接散列法

我们所以叫直接散列是因为一次散列即可查到所要查的元素。对于一般的散列法来说,一次散列是不够的,需要多级处理。直接散列法主要用于固定表或关键字是固定情形。假设有以以下名字作为关键字的表:

AOB, BOA, EWP, LOK, NOB, NYQ, OKN,WXT

则它们的ASCII码表示分别为如下:

AOB...........................657966,BOA. (667965)

OKN...........................797578,LOK. (767975)

NOB...........................787966,EWP. (698780)

WXT..........................878884,NYQ. (788981)

若用D i (s)表示关键字s的ASCII码之第i位数字,并定义散列数

H(s) = D1(s) + D2(s) + D3(s) + D4(s) + D5(s) - 33

则得到下面所示的散列值,构造出的表如图5.2.1.1所示。

H(AOB) = 0 , H(BOA) = 1 , H(OKN) =2, H(LOK) =3,

H(NOB) = 4 , H(EWP) = 5 , H(WXT) =6, H(NYQ) =7

图5.2.1.1 散列符号表例

对上例读者也许觉得更简单的办法是按字典序排。但问题是如何定义相应的散列函数H,使得在表中不出现空单元。散列函数要尽可能的把关键字映射到表的所有地方,即要避免只映射到表区一部分的现象。

如果对不同的关键字s1和s2有H(s1)=H(s2),则称散列函数H有冲突。我们有没有完全避免冲突的办法呢?回答是否定的,当然对于具体的表来说,有可能避免。不冲突意味着不同关键字要对应不同表项,但表区总是有限,而关键字则很难做到有效的限制。就拿标识符来说,长度不超过4的就有3万多个,显然,一个编译器不么能给符号表留这么多个单元。上述事实表明限制关键字数的办法是行不通的,换句话说,我们应该研究的是如何处理冲突,而不是如何消除冲突。

解决冲突的主要方法有:再散列法和拉链法。我们假定表项的长度一样,而且是占一个单元。因此,对于长度为N的表来说,散列函数H将产生0,1,2,...,N-1。如果表项均占K个单元,那么只需用K乘该散列值即可得到散列地址。

假设表长度为N,则再散列的主要思想是,当H(W)发生冲突时,按某种原则产生整数p1,并W与(H(W)+p1) mod N中的关键字进行比较(以表长度N为模)。如果再次发生冲突,再产生p2并W与(H(W)+p2) mod N进行比较。这种过程继续到某个表项(H(W)+p i) mod N为空或包含所找W,或又回到H(W)(p i=0)这三种情形之一为止。对于后一种情形表示表满,因此只好停止。下面考虑定义p i的几种可能的方法。

■线性再散列:

最简单的再散列法是所谓的线性再散列法,它的做法是:

p1 =1,p2 =2,p3 = 3,..................p n =n

这是效率最低的一种再散列法。当我们能找到较好值p1 ,p2,p3 ,.......时这种方法会比平分查表法快得多。

■随机再散列:

这种方法是按随机方式产生p i序列,它可消除线性再散列中所产生的堆聚问题。

■加散列码的再散列法:

这种方法是取p i =i H(W),即令H(W) = h,则有

p1 =h,p2 =h+h,p3 =h+h+h,...............

开始取h,以后每次加h,因此称之为加散列码的再散列法。显然,h不能是0,即h 只能取1,2,3,....,N-1。这种方法可阻止出现长链,但如果所有散列地址均被试过,则N 必须是素数。

上面介绍了再散列法,下面考虑拉链法。拉链法可分为内拉链和外拉链法,内拉链法是把链拉在散列表区内,而外拉链法则把链拉在散列表区的外部。我们将考虑外拉链法,这种方法的主要特点是,把关键字按散列值分成N组,换言之,把表分成N个子

表(0~N-1),并在散列表中存放相应子表的起始地址。这时查表过程分两步:第一步,确定子表的起始地址;第二步,查相应子表。

外拉链散列法是比较实用的一种散列法。这里要注意的是,散列表中存的是子表地址,而不是关键字本身。 假设我们想把表分成N 个子表,则需定义散列函数H :KeyWord →[0, N-1]。开始令散列表的内容为空。当把关键字s 填入表时,首先要判断H(s)位置的内容是否空,如果是空,则不单把s 填入相应子表区,而且还要把子表的起始地址填入散列表中,如果H(s)位置上的内容不为空,则说明子表不为空,因此只要把关键字填入到相应表中即可。

外拉链散列法中的子表可采用顺序查表法。这里的问题之一是,子表的空间问题。我们无法确定子表的具体长度,因此可能出现有些子表区拥挤(甚至可能溢出),而有些子表区则空闲的现象。解决这一问题的一种办法是不把表区分成独立的几个小区,而是所有子表共用整个表区,为此要把表元素按链的方式存起来,而不是以数组的方式存放。 为了比较查表速度,我们假设N 个子表的长度均为M(已填满),并且对子表采用的是顺序查表法。如果整个表是完全用顺序查表法查的,则顺序表的总长为N ?M ,因此总的查找时间为(N ?M)(N ?M+1)/2≈(N ?M)2/2。如果计算散列值的时间是可忽略的,那么外拉链散列法的总的查找时间就是查一个子表的总时间:N(N+1)/2≈N 2/2。比较这两个总时间可得比较值M 2,这就表示散列表长度增加一倍,不是提高一倍,而是成倍地提高:

从中可看出,当M=2时,散列法速度是顺序法的2倍;而M= 4时,顺序法的16倍。 前面介绍了几种散列法,但并没有介绍散列函数的定义方法,下面就考虑这个问题。对于散列函数的基本要求是:它只依赖于散列表的长度,它能散列满整个散列表区,并且散列速度快。

定义散列函数的常用办法是:首先给出对每个关键字W i 确定相应整数n i 的规则,然后取(n i mod N)为散列值。这样可保证散列值一定在[0, 1]区间内,即每个关键字的散列值一定落入散列表中。其中确定n i 的规则可有多种,比如,假设有关键字keyword=S 1S 2...S k ,并且c i 表示字符S i 的相应整数(如Pascal 中的ord(S i )),则散列函数

0: N-1: 图5.2.1.2 外拉链散列法

可定义如下:

?H(S1S2...S k ) = (c1 +c2 + .....+ c k) mod N

?H(S1S2...S k ) = (c1 ?c2? .....? c k) mod N

当然,这些并非绝对的。UW -Pascal编译器采用了下述方法:

?H(S1S2...S k ) = (c1 ? c k) mod N

其中只用到了第一个字符和最末一个字符。

尽管使用关键字的所有字符的方法开销不很大并且效果也好,但UW -Pascal编译器所采用的方法还是一个很好的方法。如果符号表采用外拉链式的散列法,则符号表的结构描述如下:

■SymbTable= array [ 0..N-1] of SubTable;

■SubTable = record id :String; Attrib: AttributeIR; Next :↑SubTable end

5.2.2 符号表的局部化

标识符的符号表与一般表不同的最大特点是,它有局部化问题,而且这种局部化问题给我们带来很大的麻烦。标识符处理的主要思想是:当遇到定义性标识符时填写被定义标识符的符号项;而当遇到使用性标识符时,用该标识符去查符号表求得其属性。而当今的Pascal等语言允许过程声明嵌套过程声明,因此允许出现一个标识符x在不同嵌套层的过程中被声明多次的现象,这样就出现当用x去查符号表时,在符号表内可能有多个x表项的情形,那么到底哪个是所要找的表项? 按语言的定义,x的最新表项应是所要找的表项,称这种规则为嵌套作用域规则。在标识符处理中最关键的问题就是其作用域问题。

标识符的作用域是一个程序段,称之为程序的局部化单位。程序的局部化单位通常是一个子程序或分程序:

■PROCEDURE ........... END

■FUNCTION ........... END

■BEGIN ...........END

■RECORD ............E ND

在Pascal里没有BEGIN...END类,但在C语言中有。RECORD...END表示记录类型段,它是针对记录中的域名而言的。当然,记录段部分可以不作为局部化区来处理,但要采取特殊的办法。

我们说一个局部化单位的符号表在程序的P点处是有效的,如果该局部化单位包含点P。假设标识符是出现在点P处,那么对它有效的声明是包含P的那些嵌套局部化单位中的声明部分。这表明在点P处查符号表时,只能查在此处有效的那些符号表,这就要求编译器在程序的每点能判断哪些符号表(或符号表项)是有效的,局部化处理的本质也就在此。

为了重点说明标识符局部化处理的逻辑原理,我们暂不考虑查表速度问题,即假设一律用顺序查表法。逻辑原理最简单的局部化处理方法恐怕是用树型结构。例如,假设有图5.2.2.1所示的嵌套分程序,则相应符号表组织结构可表示为图5.2.2.2所示。其中的箭头指向一个符号表的紧外层符号表。查表时只要从当前符号表开始按箭头方向查表即可。

BEGIN A, B,C: real;

BEGIN B, D: boolean;

BEGIN T, Z: string;

END

END ;

BEGIN A, F: integer;

BEGIN T, Z: char;

END

END

END

图5.2.2.1 嵌套局部化单位例

图5.2.2.2 符号表的树型组织结构

我们的目的是说明符号表如何体现符号表的局部化和嵌套作用域规则。上述树型组织结构中的箭头符号表的局部化,而从当前表开始顺着箭头往上查表的过程,就实现了嵌套作用域的规则。

后面将介绍一些编译器中曾经采用过的符号表结构。从大的角度来说,符号表可分为局部式、全局式。所谓局部式是指每个局部化单位有其独立的一个符号表,并且查表单位是每个局部符号表;而全局式符号表,则表示整个程序具有一张符号表,而且查表单位是整个一张表。嵌套表本质上是局部式符号表。下面三节中将介绍以下三种方式的符号表:二叉式局部符号,散列式全局符号表,嵌套式局部符号表。

5.2.3 二叉式局部符号表

这里说的二叉式局部符号表是,指使用平分查表法的局部符号表,即把每个局部符号表构造成二叉树的形式,并用平分查表方法。当使用局部符号表结构时,采用二叉树查表法是合适的。

常用的一种局部符号表法是使用一个所谓的Scope栈,栈的所有元素都指向一个局部符号表。我们称被Scope栈所指向的符号表为活跃符号表(表示有效)。栈顶所指向的符号表为当前最内层的活跃符号表。使用Scope栈实现局部化嵌套规则的具体过程是:

?进入新局部化单位时,创建新的空符号表,并将其地址压入Scope栈;

?遇到定义性标识符时,将其属性登记到当前符号表中;

?遇到使用性标识符时,首先查栈顶所指的符号表,其次查次栈顶所指的符号表,一直进行到查到或再没有表可查为止;

?结束一个局部化单位时,弹出Scope栈的栈顶元素。

注意,如果允许标识符引用在前,那么查表时只能查本层符号表(Scope栈的栈顶所指向的符号表)。关于引用在前情形的处理方法,将在以后的章节中做专门的介绍。

图5.2.3.1使用Scope栈的局部符号表法

局部符号表法的主要问题是,当要查寻一个名字时可能要查找几个不同的符号表。例如,对于一个全局变量名,可能要对活跃的所有符号表进行查找,而这种查找的代价是比较大的。实际中的这种代价可依程序的不同而相差很大,主要取决于对非局部变量的引用。

局部符号表法的另一个问题是,当要对每个局部符号表采用散列法时,需要给每层的散列表分配一块存储空间,如果空间定义很大,则由于许多层中只有几个名字的定义,易造成空间的浪费;如果空间定义很小,那么对于定义许多名字的层,特别是最外层来说,由于散列链很长,会造成降低查找速度。当然,可以在深层中定义小一些的表,因为在深层中不太可能出现太多定义,但这种方法可能复杂些。这就是说,对于局部符号表情形采用散列法未必合适,即采用二叉树方法可能更为好些。

假设有嵌套的局部化单位:

[1] BEGIN A :integer;

[2]BEGIN A :real;

[3]BEGIN A :boolean; A := false END ;

A := 0.55 ;

END ;

A := 100

END

一、化学元素表巧记口诀复习过程

一、化学元素表巧记 口诀

一、化学元素表巧记口诀 (一)、元素符号有来由,拉丁名称取字头;第一个字母要大写,附加字母小写后。 对比碳C,铜Cu,N氮、P磷、S硫; Si硅、氧是O,铝A1、铅Pb; Ba钡、钨W, Ag是银、Zn锌; I碘、K钾、Br溴, H是氢、U是铀; Fe铁、Na钠, Mg镁、Ca钙; Hg汞、金Au,Sn锡、Sb锑; 氯Cl、钻Co,元素符号要熟记。 (二)、化学元素符号歌(外文按英语字母发音读) 碳是C,磷是P,铅的符号是Pb。 Cu铜,Ca钙,钨的符号W。 H氢,S硫,硅的符号Si。 金Au,银Ag,镁的符号Mg。 钠Na,氖Ne,汞的符号Hg。 硼是B,钡Ba,铁的符号Fe。 锌Zn,锰Mn,锡的符号Sn。 钾是K,碘是I,氟的符号是F。 氧是O,氮是N,溴的符号是Br。 Al铝,Cl氯,锑的符号Sb。(三)常见元素符号名称歌(可边写边读)(写)C H O N Cl S P,(读)碳氢氧氮氯硫磷。(写)K Ca Na Mg Al FeZn,

(读)钾钙钠镁铝铁锌。(写)Br I Mn Ba Cu Hg Ag,(读)溴碘锰钡铜汞银。(写)Sb Si Sn Pb W和Au,(读)锑硅锡铅钨和金 二、前二十种元素 氢氦锂铍硼,碳氮氧氟氖; 钠镁铝硅磷,硫氯氩钾钙。 三、常见元素的化合价 (一) 一价元素氢锂钠钾银,二价元素氧钙钡镁锌; 三价铝,四价硅。还有变价元素往后推 铜汞一二来铁二三,正二正四本是碳 磷是双三外加五,最难记的氮锰氯 氯价通常显负一,还有正价一五七; 锰显正价二四六,最高价数也是七。 (二) 钾钠银氢正一价,钙镁钡锌正二价; 一二铜汞二三铁,三铝四硅五氮磷; 二四六硫二四碳,金正非负单质零。 (三) 一价钾钠银氢氟,二价钙镁和钡锌; 铝价正三氧负二,以上价态要记真; 铜一二来铁二三,碳硅二四要记全; 硫显负二正四六,负三正五氮和磷; 氯价通常显负一,还有正价一五七;

化学元素符号快速记忆方法

化学元素符号快速记忆方法 导读:我根据大家的需要整理了一份关于《化学元素符号快速记忆方法》的内容,具体内容:元素符号是国际通用的化学用语,它是学习化学不可缺少的重要工具。记住化学元素符号也是学习化学的基础。下面是由我给大家带来关于化学元素符号的快速记忆方法,希望对大家有帮助!化学...元素符号是国际通用的化学用语,它是学习化学不可缺少的重要工具。记住化学元素符号也是学习化学的基础。下面是由我给大家带来关于化学元素符号的快速记忆方法,希望对大家有帮助! 化学元素符号的快速记忆方法 一、拼音法 钠(Na)、钡(Ba)、氟(F)、钨(W)、锂(Li):这些元素名称的汉语拼音与该元素的元素符号相似。 如钠元素(Na),"钠"的汉语拼音为n; 钡元素(Ba),"钡"的读音由汉语拼音"b"的发音与英语字母"a"的发音拼成; 氟元素(F),"氟"的读音的声母为"f", 钨元素(W),"钨"的汉语拼音的声母为"w"; 锂元素(Li),"锂"的汉语拼音为"lǐ". 二、形象法 有些元素的元素符号可采用形象的方法记忆. 钨元素(W),可以联想白炽灯内的钨丝,酷似"W"形;

硫元素(S),可以联想起弯弯曲曲的小溪中的流水,形如"S"状; 氧元素(O),可以联想圆圆的太阳形状; 钾元素(K),可以联想到剪指甲时张开的剪刀的形状. 三、谐音法 如金元素(Au),可以设想这样的情景:有人突然看到地上有一块金光闪闪的金子,他一定会情不自禁地发出"哎哟"的惊叹声,这"哎哟"的发音不正是英文字母"Au"的发音吗? 四、韵语法 ①按字母对比记忆法. "A"开头,金银铝氩, "B"字开头钡和溴,钙铜碳氯先写"C", "M"领头锰和镁. 常用元素符号按英文字母顺序对比记忆: A:Ag(银)、Al(铝)、Ar(氩)、Au(金). B:Be(铍)、B(硼)、Ba(钡). C:C(碳)、Cl(氯)、Ca(钙)、Cu(铜). F:F(氟) H:H(氢)、He(氦)、Hg(汞). I:I(碘). K:K(钾). L:Li(锂). M:Mg(镁)、Mn(锰).

常用化学元素符号表

创作编号: GB8878185555334563BT9125XW 创作者:凤呜大王* 常用分子式 氮气:N2氢气:H2甲烷:CH4氧气:O2 氨:NH3水:H2O 一氧化碳:CO 二氧化碳:CO2 硫:S 二氧化硫:SO2硫代硫酸钠:Na2S2O3 铁:Fe 二价铁离子:Fe2+三价铁离子:Fe3+硫酸钠:Na2SO4

磷酸三钠:Na3PO4碳酸钠:Na2CO3 碳酸钙:CaCO3碳酸氢钠:NaHCO3氢氧化钠:NaOH 盐酸:HCL 碳酸氢铵:NH4HCO3硝酸:HNO3 硫酸:H2SO4尿素:CO(NH2) 碳酸:H2CO3 化学需氧量:COD 高锰酸钾:KMnO4锰酸钾:K2MnO4 缩二尿:NH2CONHCONH2硝酸银:AgNO3硫酸铜:CuSO4 碳酸丙稀脂(碳丙液):C3H6CO3甲醇:CH3OH 乙醇:CH3CH2OH 甲醛:HCHO 一甲氨:NH2CH3二甲氨:NH(CH3)2 三甲氨:N(CH3)3三氧化二铝:AL2O3三氧化二铁:Fe2O3 氧化铜:CuO 氯化钠:NaCL 一、初中化学常见混合物的重要成分 1、空气:氮气(N2)和氧气(O2) 2、水煤气:一氧化碳(CO)和氢气(H2) 3、煤气:一氧化碳(CO) 4、天然气:甲烷(CH4) 5、石灰石/大理石:(CaCO3) 6、生铁/钢:(Fe) 7、木炭/焦炭/炭黑/活性炭:(C) 8、铁锈:(Fe2O3) 二、初中化学常见物质俗称 1、氯化钠(NaCl):食盐 2、碳酸钠(Na2CO3) :纯碱,苏打,口碱 3、氢氧化钠(NaOH):火碱,烧碱,苛性钠 4、氧化钙(CaO):生石灰 5、氢氧化钙(Ca(OH)2):熟石灰,消石灰 6、二氧化碳固体(CO2):干冰 7、氢氯酸(HCl):盐酸 8、碱式碳酸铜(Cu2(OH)2CO3):铜绿 9、硫酸铜晶体(CuSO4 .5H2O):蓝矾,胆矾 10、甲烷(CH4):沼气 11、乙醇(C2H5OH):酒精 12、乙酸(CH3COOH):醋酸 13、过氧化氢(H2O2):双氧水 14、汞(Hg):水银 15、碳酸氢钠(NaHCO3):小苏打 三、物质的除杂 1、CO2(CO):把气体通过灼热的氧化铜,

初中化学常见的元素符号

常见的元素符号: 氢氦锂铍硼,碳氮氧氟氖,钠镁铝硅磷,硫氯氩钾钙。锰钡碘H He Li Be B , C N O F Ne , Na Mg Al Si P , S Cl Ar K Ca 。Mn Ba I 金属活动性顺序:钾钙钠镁铝,锌铁锡铅氢铜汞银铂金 K Ca Na Mg Al, Zn Fe Sn Pb(H),Cu Hg Ag Pt Au 常见元素的化合价:金正,非负,单质零,氢+1,氧-2,正负总价和为零。 钾钠银氢+1价,钙镁钡锌+2价;氟氯溴碘-1价,通常氧是-2价; 铜+1,+2铝+3;铁有+2,+3 硅+4; 2,4,6硫 2,4碳; 氮磷-3,+5最常见;2,4,6,7锰变价;单质中元素零价要记清。化学式: 单质:氢气H2氧气O2氮气N2氯气Cl2氖气Ne碳 C 铜Cu铁Fe 化合物:氧化物:一氧化碳CO二氧化碳CO2五氧化二磷P2O5二氧化硫SO2二氧化锰MnO2三氧化二铁Fe2O3四氧化三铁Fe3O4 氧化亚铁FeO氧化镁MgO氧化钙CaO三氧化二铝Al2O3 氧化汞HgO氧化铜CuO 酸:盐酸HCl硫酸H2SO4硝酸HNO3碳酸H2CO3磷酸H3PO4碱:氢氧化钠NaOH氢氧化钙Ca(OH)2氢氧化钡Ba(OH)2氢氧化钾KOH 氢氧化铁(红褐色)Fe(OH)3氢氧化铜(蓝色)Cu(OH)2 盐:氯化钠NaCl氯化镁MgCl2氯化铝AlCl3 氯化钾 KCl氯化铁FeCl3氯化亚铁FeCl2氯化锌ZnCl2 氯化钡BaCl2氯化铜CuCl2氯化银AgCl(盐酸盐) 碳酸钙CaCO3碳酸钠Na2CO3碳酸钾K2CO3碳酸钡BaCO3 硫酸亚铁FeSO4硫酸铁Fe2(SO4)3硫酸钠Na2SO4硫酸镁MgSO4 硫酸铝Al2(SO4)3硫酸铜CuSO4硫酸锌ZnSO4硫酸钡BaSO4 硝酸银AgNO3硝酸汞Hg(NO3)2硝酸锌Zn(NO3)2硝酸钡Ba(NO3)2 -1硝酸、氢氧根,-2碳酸、硫酸根,-3记住磷酸根,+1价的是铵根。

语言学 语汇和语义答案

测 试 试 卷(第五章 语汇和语义) 测试时间: 2010——2011学年度第二学期第十五周 测试对象: 2009 级 汉语言文学 专业 课程: 语言学概论 考试时量: 100分钟 考试方式:闭卷 一、填空:11分 1、汉语的姐姐、妹妹,英语用( )表示,汉语的叔叔、伯伯、舅舅、姨父、姑父,英语用( )表示。 2、多义词有多项意义,最初的那项意义叫( ),离开上下文人们就能知道的那项意义叫( ),例如“老”有“年纪大”、“经常”、“过去的”等意义,“年纪大”是( ),其余的是( )。(本义 中心义 中心义 派生义) 3、( )( )( )是词义概括性的三个重要的表现形式。(一般性 模糊性 全民性) 4、派生义的产生方式主要有( )和( )两种。(隐喻 换喻) 二、判断:6分 1、“红”和“白”,“男”和“女”都是相对反义词。( × ) 2、反义词可分为相对反义和绝对反义两类。例如“生”与“死”是相对反义词。( × ) 3、英语单词pen 本意是指羽毛,派生意是指钢笔,这种词义引申方式是换喻。( √ ) 4、基本词汇具有一般性、模糊性和全民常用性三个特点。( × ) 5、同义词“little-small ”的意义差别是感情色彩不同。( √ ) 6、一个词最初的意义就是这个词的中心意义。( × ) 三、单项选择:8分 1、词义具有模糊性特点,( )组词语的意义不具有模糊性。( ) A .运动 学习 射击 B .伟大 渺小 早晨 C .白天 晚上 中午 D .快乐 悲伤 非常 2、下列各组词都属于基本词的是( ) A .map cut cap really B .dear cut cap really C .miss classroom TV D .make look do get 3、一般说来,新词、古词、方言词、行业词和外来词等( )。 A .属于一般词汇 B .属于基本词汇 C .有的属于基本词汇,有的属于一般词汇 D .有时属于基本词汇,有时属于一般词汇 4、同义词"抢劫"和"抢夺"的区别是( A )不同。 A .词义轻重不同。 B .感情色彩不同。 C .风格色彩不同。 D .语法功能不同。 四、术语解释:22分 1、同义词 2、本义和派生意义 词的有历史可查的最初的意义是本义,它是产生其他意义的基础;由本义衍生出来的意义是派生意义。 3、反义词 4、隐喻和换喻 是词义引申的两种方式。隐喻反映的是不同现实现象之间的相似关系。换喻反映的是两类现实现象之间存在着某种相关关系,这种相关关系在人们的心目中经常出现而固定化,因而可以用指称甲类现象的词去指称乙类现象。 5、义素 义素是词义的最小的语义构成成分,又叫语义特征。例如“男子”是由“人”+“男性”+“成年”等义素构成的,这些义素合起来来,是“成年男性”,这就是“男子”这个词的意义。 6、多义词和单义词 7、基本词汇和一般词汇 词汇体系中,标志着与人们世世代代的日常生活有密切关系的事物的词以及表示事物关系的常用虚词的总汇,是词汇中的主要部分,具有全民常用性、稳固性、能产性等特点。 语言词汇中除了基本词汇以外的词构成语言的一般词汇,它的主要特点是:不是全民常用的;或者虽然在短期内为全民所常用,但不稳固,容易发生变化;一般没有构词能力或者构词能力比较弱。 五、简答:25分 1、举例说明基本词汇的特点。 基本词汇有以下三个特点: 1)全民常用性。基本词汇里的词表示的都是一些最常见的现实现象和基本概念。例如汉语中的“水、饭、菜、睡、衣服、车、吃、走、看、听、大、热、高、新”等; 2)稳固性。基本词汇中的词大多是自古就有的,历史悠久,人们世世代代都在使用,不容易发生变化。例如汉语三千年前的甲骨文中已经有了“牛、马、鸡、酒、日、月、雨、风、大、小”等词,这些词自古至今都是常用的; 3)构词能力强,是构成新词的基础。例如“火”,可以组成“火车、火箭、炮火、烈火、火红”等。 2、什么是词义的全民性?为什么词义具有全民性的特点? 词义的全民性指词义反映的现实现象是全社会成员共同认知的,没有阶级之分,没有阶级性。 词义的全民性是由语言作为人类最重要的交际工具这一社会职能决定的。语言没有阶级性,一视同仁地为全社会成员服务,词义作为语言要素的组成部分,当然也不可能有阶级性。 院(系):___________级别:_________ 专业(班次):____ ___学号:______ ____姓名:______ (请考生将上述信息按规定要求填在密封线以上的栏目中,未按要求填写的试卷作废) -----------------------------试----------------------卷-----------------密---------------封----------------线---------------------

常用化学元素符号表

常用分子式 氮气:N2氢气:H2甲烷:CH4氧气:O2 氨:NH3水:H2O 一氧化碳:CO 二氧化碳:CO2 硫:S 二氧化硫:SO2硫代硫酸钠:Na2S2O3 铁:Fe 二价铁离子:Fe2+三价铁离子:Fe3+硫酸钠:Na2SO4磷酸三钠:Na3PO4碳酸钠:Na2CO3 碳酸钙:CaCO3碳酸氢钠:NaHCO3氢氧化钠:NaOH 盐酸:HCL 碳酸氢铵:NH4HCO3硝酸:HNO3 精品

硫酸:H2SO4尿素:CO(NH2) 碳酸:H2CO3 化学需氧量:COD 高锰酸钾:KMnO4锰酸钾:K2MnO4 缩二尿:NH2CONHCONH2硝酸银:AgNO3硫酸铜:CuSO4 碳酸丙稀脂(碳丙液):C3H6CO3甲醇:CH3OH 乙醇:CH3CH2OH 甲醛:HCHO 一甲氨:NH2CH3二甲氨:NH(CH3)2 三甲氨:N(CH3)3 三氧化二铝:AL2O3三氧化二铁:Fe2O3 氧化铜:CuO 氯化钠:NaCL 一、初中化学常见混合物的重要成分 1、空气:氮气(N2)和氧气(O2) 2、水煤气:一氧化碳(CO)和氢气(H2) 3、煤气:一氧化碳(CO) 4、天然气:甲烷(CH4) 5、石灰石/大理石:(CaCO3) 6、生铁/钢:(Fe) 7、木炭/焦炭/炭黑/活性炭:(C) 8、铁锈:(Fe2O3) 二、初中化学常见物质俗称 1、氯化钠(NaCl):食盐 2、碳酸钠(Na2CO3) :纯碱,苏打,口碱 3、氢氧化钠(NaOH):火碱,烧碱,苛性钠 4、氧化钙(CaO):生石灰 5、氢氧化钙(Ca(OH)2):熟石灰,消石灰 6、二氧化碳固体(CO2):干冰 7、氢氯酸(HCl):盐酸 8、碱式碳酸铜(Cu2(OH)2CO3):铜绿 9、硫酸铜晶体(CuSO4 .5H2O):蓝矾,胆矾 10、甲烷(CH4):沼气 11、乙醇(C2H5OH):酒精 12、乙酸(CH3COOH):醋酸 13、过氧化氢(H2O2):双氧水 14、汞(Hg):水银 15、碳酸氢钠(NaHCO3):小苏打 三、物质的除杂 1、CO2(CO):把气体通过灼热的氧化铜, 2、CO(CO2):通过足量的氢氧化钠溶液 3、H2(水蒸气):通过浓硫酸/通过氢氧化钠固体 4、CuO(C):在空气中(在氧气流中)灼烧混合物 5、Cu(Fe) :加入足量的稀硫酸 6、Cu(CuO):加入足量的稀硫酸 精品

词语之间的几种语义联系

词语之间的几种语义联系 自从“现代语言学之父”、世界最著名的语文学家索绪尔于本世纪初提出“语言是一个符号系统”的观点以来,词语之间的系统联系一直是语言学家关注的焦点之一。特别是近几十年来,词语之间的语义联系越来越受到语言学家重视,围绕词语之音的语义联系问题,语言学家提出了一系列重要的新理论、新方法和新概念,如语义场理论、义素分析法等等。传统语言学只注意到词语之间的同义关系和反义关系,而实际上词语之间还有许多别的重要的语义关系。有些语义关系已被语言学家发掘出来了,还有一些则有待于进一步发掘。这里谈谈除了同义反义关系之外的几种重要的语义聚合关系,并谈谈他们在词语解释中的作用。 一、上下义关系 上下义关系是词语之间语义上的包含与被包含的关系,凡是一个词语的全部语义(概念意义)包括在另一个词语的语义之中,这两个词语就构成上下义关系。上下义关系就是逻辑学上的属种关系,具有属种关系的一组词就是上下义词,其中表示属概念的词是上义词,表示种概念的词是下义词,如:“笔-钢笔”、“人-男人”、“听-偷听”、“销售-批发”、“红-粉红”、“白-雪白”等等。其中“笔”是“钢笔”的上义词,“钢笔”是“笔”的下义词。其余依此类推。 上下义词都有属种关系,没有属种关系的词不是上下义词,如构成整体与部分关系的词就不是上下义词,如“中国-北京”、“衣服-衣襟”、“森林-树”、“船-船队”都不是上下义词。表示等级关系的词也不是上下义词,如“博士-硕士”、“处长-科长”、“年-月”都不是上下义词。因为这些词语之间并没有逻辑上的属种关系。 上下义词具有包容性,上义词的所指范围包容下义词所指范围,可以进入“乙是甲”的格式,但不能反过来说“甲是乙”。如可以说“钢笔是笔”,但不能说“笔是钢笔”。从逻辑上讲,如果乙真,则甲必真;如果乙假,则甲或真或假。如,“这是钢笔”为真,那么“这是笔”必真;若“这是钢笔”为假,那么,“这是笔”可能是真的,也可能是假的。 上下义词具有相对性,甲词是乙词的上义词,乙词又可能是丙词的上义词。如“枪”是“武器”的下义词,又是“手枪”的上义词。 由于上下义词还具有传递性,若甲词是乙词的上义词,乙词是丙词的上义词,那么甲词也是丙词的上义词。反之亦然,如“人”是“男人”的上义词,“男人”是“老汉”的上义词,那么“人”也是“老汉”的上义词。 由于上下义词具有传递性,因此上下义词的上下义关系有远有近。具有最邻近的上下义词,就是直接上下义词,其他上下义词就是间接上下义词,如“人-男人”就是直接上下义词,“人-老汉”就是间接上下义词。 上下义关系是词语之间的重要语义关系,我们平常解释词语,给概念下定义,常常要利用词语之间的上下义关系,构成“属加种差定义”。如“钢笔是笔头用金属制成的笔。”“石雕是在石头上雕刻形象、花纹的艺术。”这种“属加种差定义”是最常见的定义方式。 二、总分关系 总分关系是词语之间语义上的整体与部分的关系。如果一个词语所指的事物属于另一个词语所指事物的一个构成部分,这两个词语之间就构成总分关系。具有整体部分关系的一组词是总分词,其中表示整体的词是总义词,表示部分的词是分义词,如“中国-上海”、“大学-系”、“房子-客厅”、“教学楼-教室”、“ 身体-头”、“鞋子-鞋底”、“四季-春天”、“森林-树”、“船队-船”等等。其中“中国”是“上海”的总义词,“上海”是“中国”的分义词。其余依此类推。总分词中分义词所指对象是总义词所指对象的构成部分,可以进入“乙是甲的一部分”的格式。如“上海是中国的一部分”。 总分词与上下义词有类似之处,都可进入“甲包括乙”的格式。但上下义词之间是属与种的关系,可以进入“乙是甲”的格式,总分词之间是整体与部分的关系,不能进入“乙是

编译原理 第八章符号表

第八章符号表 编译过程中编译程序需要不断汇集和反复查证出现在源程序中各种名字的属性和特征等有关信息。这些信息通常记录在一张或几张符号表中。符号表的每一项包含两部分,一部分是名字(标识符),另一部分是此名字的有关信息。每个名字的有关信息一般指种属(如简单变量、数组、过程等)、类型(如整、实、布尔等)等等。这些信息将使用于语义检查、产生中间代码以及最终生成目标代码等不同阶段。 编译过程中,每当扫描器识别出一个单词后,编译程序就查阅符号表,看它是否已在其中。如果它是一个新名就将它填进表里。它的有关信息将在词法分析和语法-语义分析过程中陆续填入。 符号表中所登记的信息在编译的不同阶段都要用到。在语义分析中,符号表所登记的内容将用于语义检查(如检查一个名字的使用和原先的说明是否相一致)和产生中间代码。在目标代码生成阶段,当对符号名进行地址分配时,符号表是地址分配的依据。对于一个多遍扫描的编译程序,不同遍所用的符号表也往往各有不同。因为每遍所关心的信息各有差异。 本章重点:符号表的一般组织和使用方法。 第一节符号表的组织和使用 信息栏通常包含许多子栏和标志位,用来记录相应名字的种种不同属性。由于查填符号表一般都是通过匹配名字来实现的,因此,名字栏也称主栏。主栏的内容称为关键字(key word)。 虽然原则上说,使用一张统一的符号表也就够了,但是,许多编译程序按名字的不同种属分别使用许多符号表,如常数表、变量名表、过程名表等等。这是因为,不同种属名字的相应信息往往不同,并且信息栏的长度也各有差异的缘故。因而,按不同种属建立不同的符号表在处理上常常是比较方便的。 对于编译程序的符号表来说,它所涉及的基本操作大致可归纳为五类: 1、对给定名字,确定此名是否在有中; 2、填入新名; 3、对给定名字,访问它的有关信息; 4、对给字名字,填写或更新它的某些信息; 5、删除一个或一组无用的项。 不同种类的表格所涉及的操作往往也是不同的。上述五方面只是一些基本的共同操作。 符号表最简单的组织方式是让各项各栏所占的存储单元的长度都是固定的。这种项栏长度固定的表格易于组织、填写和查找。对于这种表格,每一栏的内容可直接填写在有关的区段里。例如,有些语言规定标识符的长度不得超过8个字符,于是,我们就可以用两个机器字作为主栏(假定每个机器字可容四个字符)每个名字直接填写在主栏中。若标识长度不到8个字符,则用空白符补足。这种直接填写式的表格形式如下: 但是,有许多语言对标识符的长度几乎不加限制,或者说,标识符的长度范围甚宽。譬如说,

产品语意及设计方法

产品语意及设计方法 2009/09/11 22:03 摘要:在符号逻辑支配的消费社会,产品语意学无疑成为产品由明晰的实用功能转向潜移默化的文化积淀的利器。本文从产品语意学的历史发展入手,将产品语意分析和设计方法与当前在用户研究中广泛运用的群体文化学方法相结合,提出结合用户研究、团队管理和产品语意的设计程序,以及如何在研究阶段发现语意源、在整合阶段提取语意点、在设计阶段运用语意点等方法,通过形式与内容的呼应与互补,将深埋于用户意识和潜意识中的心理、文化、社会、环境等深层意义更准确投射在视觉形式上,引发他者的感知进而共鸣。 关键词:产品语意学;群体文化学;设计程序;设计方法 布西雅(Jan Baudrillard)融合了马克思理论与符号学观点,总结了人为“物”的三个属性:强调“使用价值”的“工具”属性,其支配逻辑是日常生活的领域的功用逻辑;强调“交换价值”的“商品”属性,其支配逻辑是市场的领域的经济逻辑;强调“符号价值”的“符号”属性,其支配逻辑是地位和声望的领域的符号逻辑。产品就是充满、交织着这三个属性的文本,购买、使用产品的过程本身就是消费者的解读过程,通过对显在的形态、符号、语意的解读,进入隐藏在表层注释背后的意义象征,从而完成从明晰的实用功能到潜移默化的文化积淀的转向。产品语意学无疑是有效完成这一转向的利器。以下,就从产品语意学的历史沿革入手,结合现代设计程序与方法,探讨产品意义发生、转化、实现的程序与方法。 1、产品语意学发展回顾和理论简介 语意(Semantic)即语言的意义,产品语意学(Product Semantics)则是研究产品语言(Product Language)的意义的学问。其理论架构始于1950年德国乌尔姆造型大学的“符号运用研究”,更远可追溯至芝加哥新包豪斯学校的查理斯(Charles)与莫理斯(Morris)的记号论。这一概念于1983年由美国的克里彭多夫(K. Krippendorf)、德国的布特教授(R. Butter)明确提出,并在1984年美国克兰布鲁克艺术学院(Cranbrook Academy of Art)由美国工业设计师协会(IDSA)所举办的“产品语意学研讨会”中予以定义:产品语意学乃是研究人造物的形态在使用情境中的象征特性,以及如何应用在工业设计上的学问。它突破了传统设计理论将人的因素都归入人机工程学的简单作法,扩宽了人机工程学的范畴;突破了传统人机工程学仅对人物理及生理机能的考虑,将设计因素深入至人的心理、精神因素。会议论文结集由《创新》(Innovation)杂志专辑出版。1985年在荷兰举办了全球性的产品语意研讨会,飞利浦公司在布莱克(Blaich Robert)的领导下采取“造型传达设计策略”而获得空前成功,展现了产品语意理论的具体应用成果。1989年夏,荷兰赫尔辛基工业艺术大学举办了国际产品语意学讲习班。由此,产品语意学被推广到欧洲。1991年毕德克在《设计——产品造型的历史、理论及实务》一书中详细介绍了产品语言和产品语意的众多论述,并指出“产品语言”是设计领域的深层知识(In-depth Knowledge)和设计的核心竞争力(Core Competence)。1997年,德国《form》杂志再度以产品语言为主题(On Language, Objects and Design),重新对产

常用化学元素符号表

二、常用化学元素符号表 三、常用金属材料容重表 四、常用工业材料比重表

中碳钢(含碳0.4%) 高碳钢(含碳1%)高速钢(含钨9%)高速钢(含钨18%)不锈钢(含铬13%)62-1锡黄铜 60-1锡黄铜 77-2铝黄铜 60-1-1铝黄铜 58-2锰黄铜 59-1-1铁黄铜 80-3硅黄铜 4-3锡青铜 4-4-2.5锡青铜 4-4-4锡青铜 6.5~0.1锡青铜 4~0.3锡青铜 五号防锈铝 廿一号防锈铝 一号硬铝 三号硬铝 十一号硬铝 十二号硬铝 十四号硬铝 二号锻铝 四号锻铝 五号锻铝 八号锻铝 九号锻铝 4-1铸锌铝合金 锡 铅板 工业镍 15-20锌白铜 43-0.5锰白铜 40-1.5锰白铜 28-2.5-1.5镍铜合金9镍铬合金 锡基轴承合金7.82 7.81 8.3 8.7 7.75 8.45 8.45 8.6 8.2 8.5 8.5 8.6 8.8 8.79 8.9 8.8 8.9 2.65 2.73 2.75 2.73 2.84 2.8 2.8 2.69 2.65 2.75 2.8 2.8 6.9 7.3~7.5 11.37 8.9 8.6 8.89 8.90 8.8 8.72 7.34~7.75 74-3铅黄铜 63-3铅黄铜 59-1铅黄铜 90-1锡黄铜 70-1黄铜锡 3-12-5铸锡青铜 5-5-5铸锡青铜 6-6-3铸锡青铜 5铝青铜 7铝青铜 9-2铝青铜 9-4铝青铜 10-3-1.5铝青铜 2铍青铜 3-1硅青铜 铝板 二号防锈铝 二号锻铝 四号超硬铝 五号铸造铝合金 六号铸造铝合金 七号铸造铝合金 十三号铸造铝合金 十五号铸造铝合金 工业镁 锌板 铸锌 10-5锌铝合金 4-3铸锌铝合金 钴 钛 3钨钴合金 6钨钴合金 8钨钴合金 5钨钴钛合金 15钨钴钛合金 汞 锰 铬 8.70 8.5 8.5 8.8 8.54 8.69 8.8 8.82 8.2 7.8 7.63 7.6 7.5 8.23 8.47 2.73 2.67 2.8 2.8 2.55 2.60 2.65 2.67 2.95 1.74 7.2 6.86 6.3 6.75 8.9 4.51 14.9~15.3 14.6~15.0 14.4~14.8 12.3~13.2 11.0~11.7 13.6 7.43 7.19

化学元素表带拼音

第 02 号元素: 氦 [化学符号]He, 读“亥”第 03 号元素: 锂 [化学符号]Li, 读“里”第 04 号元素: 铍 [化学符号]Be, 读“皮”第 05 号元素: 硼 [化学符号]B, 读“朋” 第 06 号元素: 碳 [化学符号]C, 读“炭” 第 07 号元素: 氮 [化学符号]N, 读“淡” 第 08 号元素: 氧 [化学符号]O, 读“养” 第 09 号元素: 氟 [化学符号]F, 读“弗” 第 10 号元素: 氖 [化学符号]Ne, 读“乃”第 11 号元素: 钠 [化学符号]Na, 读“纳”第 12 号元素: 镁 [化学符号]Mg, 读“美”第 13 号元素: 铝 [化学符号]Al, 读“吕”第 14 号元素: 硅 [化学符号]Si, 读“归”第 15 号元素: 磷 [化学符号]P, 读“邻” 第 16 号元素: 硫 [化学符号]S, 读“流” 第 17 号元素: 氯 [化学符号]Cl, 读“绿”第 18 号元素: 氩 [化学符号]Ar,A, 读“亚”第 19 号元素: 钾 [化学符号]K, 读“甲” 第 20 号元素: 钙 [化学符号]Ca, 读“丐”第 21 号元素: 钪 [化学符号]Sc, 读“亢”第 22 号元素: 钛 [化学符号]Ti, 读“太”第 23 号元素: 钒 [化学符号]V, 读“凡”

第 25 号元素: 锰 [化学符号]Mn, 读“猛”第 26 号元素: 铁 [化学符号]Fe, 读“铁”第 27 号元素: 钴 [化学符号]Co, 读“古”第 28 号元素: 镍 [化学符号]Ni, 读“臬”第 29 号元素: 铜 [化学符号]Cu, 读“同”第 30 号元素: 锌 [化学符号]Zn, 读“辛”第 31 号元素: 镓 [化学符号]Ga, 读“家”第 32 号元素: 锗 [化学符号]Ge, 读“者”第 33 号元素: 砷 [化学符号]As, 读“申”第 34 号元素: 硒 [化学符号]Se, 读“西”第 35 号元素: 溴 [化学符号]Br, 读“秀”第 36 号元素: 氪 [化学符号]Kr, 读“克”第 37 号元素: 铷 [化学符号]Rb, 读“如”第 38 号元素: 锶 [化学符号]Sr, 读“思”第 39 号元素: 钇 [化学符号]Y, 读“乙”第 40 号元素: 锆 [化学符号]Zr, 读“告”第 41 号元素: 铌 [化学符号]Nb, 读“尼”第 42 号元素: 钼 [化学符号]Mo, 读“目”第 43 号元素: 碍 [化学符号]Tc, 读“得”第 44 号元素: 钌 [化学符号]Ru, 读“了”第 45 号元素: 铑 [化学符号]Rh, 读“老”第 46 号元素: 钯 [化学符号]Pd, 读“巴”

常用化学元素符号表

常用化学元素符号 元素名称符号元素名称符号元素名称符号铬Cr铌Nb铅Pb 镍Ni钽Ta铋Bi 硅Si氢H锕Ac 锰Mn碳C铈Ce 铝Al氧O铍Be 磷P钠Na铯Se 钨W镁Mg锆Zr 钼Mo硫S镧La 钒V氯Cl钡Ba 钛T钾K汞Hg 铜Cu锌Zn钙Ca 铁Fe银Ag碘I 硼B锡Sn溴Br 钴Co锑Sb氟F 氮N金Au烯土Re 常用分子式 氮气:N2氢气:H2甲烷:CH4氧气:O2 氨:NH3水:H2O 一氧化碳:CO 二氧化碳:CO2 硫:S 二氧化硫:SO2硫代硫酸钠:Na2S2O3 铁:Fe 二价铁离子:Fe2+三价铁离子:Fe3+硫酸钠:Na2SO4 磷酸三钠:Na3PO4碳酸钠:Na2CO3 碳酸钙:CaCO3碳酸氢钠:NaHCO3氢氧化钠:NaOH 盐酸:HCL 碳酸氢铵:NH4HCO3硝酸:HNO3 硫酸:H2SO4尿素:CO(NH2) 碳酸:H2CO3 化学需氧量:COD 高锰酸钾:KMnO4锰酸钾:K2MnO4 缩二尿:NH2CONHCONH2硝酸银:AgNO3硫酸铜:CuSO4 碳酸丙稀脂(碳丙液):C3H6CO3甲醇:CH3OH 乙醇:CH3CH2OH 甲醛:HCHO 一甲氨:NH2CH3二甲氨:NH(CH3)2 三甲氨:N(CH3)3 三氧化二铝:AL2O3三氧化二铁:Fe2O3 氧化铜:CuO 氯化钠:NaCL 一、初中化学常见混合物的重要成分 1、空气:氮气(N2)和氧气(O2)

2、水煤气:一氧化碳(CO)和氢气(H2) 3、煤气:一氧化碳(CO) 4、天然气:甲烷(CH4) 5、石灰石/大理石:(CaCO3) 6、生铁/钢:(Fe) 7、木炭/焦炭/炭黑/活性炭:(C) 8、铁锈:(Fe2O3) 二、初中化学常见物质俗称 1、氯化钠(NaCl):食盐 2、碳酸钠(Na2CO3) :纯碱,苏打,口碱 3、氢氧化钠(NaOH):火碱,烧碱,苛性钠 4、氧化钙(CaO):生石灰 5、氢氧化钙(Ca(OH)2):熟石灰,消石灰 6、二氧化碳固体(CO2):干冰 7、氢氯酸(HCl):盐酸 8、碱式碳酸铜(Cu2(OH)2CO3):铜绿 9、硫酸铜晶体(CuSO4 .5H2O):蓝矾,胆矾 10、甲烷(CH4):沼气 11、乙醇(C2H5OH):酒精 12、乙酸(CH3COOH):醋酸 13、过氧化氢(H2O2):双氧水 14、汞(Hg):水银 15、碳酸氢钠(NaHCO3):小苏打 三、物质的除杂 1、CO2(CO):把气体通过灼热的氧化铜, 2、CO(CO2):通过足量的氢氧化钠溶液 3、H2(水蒸气):通过浓硫酸/通过氢氧化钠固体 4、CuO(C):在空气中(在氧气流中)灼烧混合物 5、Cu(Fe) :加入足量的稀硫酸 6、Cu(CuO):加入足量的稀硫酸 7、FeSO4(CuSO4): 加入足量的铁粉 8、NaCl(Na2CO3):加入足量的盐酸 9、NaCl(Na2SO4):加入足量的氯化钡溶液 10、NaCl(NaOH):加入足量的盐酸 11、NaOH(Na2CO3):加入足量的氢氧化钙溶液 12、NaCl(CuSO4):加入足量的氢氧化钡溶液 13、NaNO3(NaCl):加入足量的硝酸银溶液 14、NaCl(KNO3):蒸发溶剂 15、KNO3(NaCl):冷却热饱和溶液。 16、CO2(水蒸气):通过浓硫酸

化学 元素符号表示的量

温州龙文教育 科学 学科导学案(第 次课) 教师: 邓云峰 学生: 年级: 九 日期:15. 星期: 时段: 课 题 化学 4 元素符号表示的量 教学目标 本节知识中计算相对分子质量、化合价中各元素质量比,以及一定量物质中某元素的质 量同现实生活结合起来考查,作为近几年中考命题中的热点,特别是关注社会热点和新闻报 道中的化学问题,以此为线索进行的命题设计是以信息为载体,以考查基础知识为目的的信 息迁移能力。 教学重点 相对分子质量、化合价中各元素质量比,以及一定量物质中某元素的质量计算 教学难点 相对分子质量、化合价中各元素质量比,以及一定量物质中某元素的质量计算 教学方法 基础知识点复习,考点精讲,讲练结合,课后巩固 学习内容与过程 第7节:元素符号表示的量(1) 【知识梳理】 1.相对原子质量 以一种碳原子(碳—12)的质量1/12作为标准,把其他原子的质量跟这个标准相比较所得的比值,叫做这种原子的相对的原子质量。 注意:根据最新国家计量标准,相对原子质量的单位符号为“1”,“1”不用明确写出,因此,相对质量是有单位的。以下的相对分子质量的单位也为“1”。 2.相对分子质量 化学式中各原子的相对原子质量的总和就是相对分子质量。 3.相对分子质量的典型计算 (1)CO 2的相对分子质量 =12+16×2=44; (2)2CO 2相对分子质量总和 =2(12+16×2)=88; (3)Ca(OH)2的相对分子质量 =40+(16+1)×2=74 (4)SO 42-的相对分子质量 =32+16×4=96; (5)CuSO 4·5H 2O 的相对分子质量 =64+32+16×4+5×(1×2+16)=250 相对原子质量=———————————— 一个该原子的质量 1/12(一个碳原子的质量) =—————————— 一个该原子的质量 1.661×10-27千克

词汇的构成

现代词汇的构成 一、二课时 一、导语 二、词的总汇 语言中所有的词的总和就是词的总汇。 (一)基本词汇 1、什么是基本词汇? 语言中表示最必需、最重要事物和概念的词为基本词。基本词的总汇即基本词汇。 基本词汇是一种语言中最重要的、最核心的、不可或缺的组成部分,它和语法规则一起构成了一种语言的基础。无论是孩童习得母语,还是本族人学习外语,基本词汇都是他们首先接触到和必须掌握的词汇。因此,基本词汇的存亡决定着一种语言的存亡。虽然基本词汇的数量不多,但它和人们的生活有着密不可分的关系。例如: 表示自然界现象的:风、雨、雷、电、天、地、日、月、星、土、等。 表示生产劳动、生活资料的:耕、种、锄、网、刀、粮、肉、布、等。 表示亲属关系的:父、母、兄弟、姑、舅、叔、子、孙等。 表示基本动作行为的:生、死、走、坐、说、看、开、病等。 表示事物基本性质的:大、小、高、低、冷、热、厚、薄、长、短等。 表示人体器官、部位的词:头、眼、口、手、脚、肩、背、腰、胸等。 表示方位的:前、后、左、右、上、下、东、西、南、北等。 表示数量的:个、十、百、千、万、一、二、三、四、五、斤等。 表示人称和指代关系的:你、我、他、这、那、谁等 2、基本词汇的主要特征 基本词汇具有普遍性、稳固性、构词能力强三个主要特征。 (1)普遍性 基本词汇是表示最必需、最重要事物和概念的,因此是掌握和使用这一语言的人谁也不可能离开的词汇,是被全民普遍使用的。基本词汇一定是不受文化层次、行业、地域、阶层等限制的。一个人可以因为文化程度低而不懂、不用“令尊”、“参差”等文言词,可以因为“隔行如隔山”的缘故而不懂、不用“花刀”、“白案”等(烹饪)行业词,可以因为地域差异而不懂、不用“埋汰”、“邋遢”等方言词,可以因为信息封闭而不懂“克隆”、“比基尼”等新词和外来词,但他绝对不可能不用基本词。基本词是全民族的所有成员普遍使用和经常使用的,因此,它的使用范围之广,使用频率之高,是一般词汇所不能及的。

实用文库汇编之初中化学常见的元素符号

*作者:角狂风* 作品编号:1547510232155GZ579202 创作日期:2020年12月20日 实用文库汇编之常见的元素符号: 氢氦锂铍硼,碳氮氧氟氖,钠镁铝硅磷,硫氯氩 钾钙。锰钡碘 H He Li Be B , C N O F Ne , Na Mg Al Si P , S Cl Ar K Ca 。Mn Ba I 金属活动性顺序:钾钙钠镁铝,锌铁锡铅氢铜汞银铂金 K Ca Na Mg Al, Zn Fe Sn Pb(H),Cu Hg Ag Pt Au 常见元素的化合价:金正,非负,单质零,氢+1,氧-2,正负总价和为零。 钾钠银氢+1价,钙镁钡锌+2价;氟氯溴碘-1 价,通常氧是-2价; 铜+1,+2铝+3;铁有+2,+3 硅+4; 2,4, 6硫 2,4碳; 氮磷-3,+5最常见;2,4,6,7锰变价;单 质中元素零价要记清。 化学式: 单质:氢气H2氧气O2氮气N2氯气Cl2氖气Ne碳 C 铜Cu铁Fe 化合物:氧化物:一氧化碳CO二氧化碳CO2五氧化 二磷P2O5 二氧化硫SO2二氧化锰MnO2三氧化二铁Fe2O3四 氧化三铁Fe3O4氧化亚铁FeO氧化镁MgO氧

化钙CaO三氧化二铝Al2O3氧化汞HgO 氧化铜CuO 酸:盐酸HCl硫酸H2SO4硝酸HNO3碳酸H2CO3磷酸H3PO4 碱:氢氧化钠NaOH氢氧化钙Ca(OH)2氢氧化钡Ba(OH)2氢氧化钾KOH 氢氧化铁(红褐色)Fe(OH)3氢氧化铜(蓝色)Cu(OH)2盐:氯化钠NaCl氯化镁MgCl2氯化铝AlCl3氯化钾 KCl氯化铁FeCl3氯化亚铁FeCl2氯化锌ZnCl2 氯化钡BaCl2氯化铜CuCl2氯化银AgCl (盐酸盐) 碳酸钙CaCO3碳酸钠Na2CO3碳酸钾K2CO3碳酸钡BaCO3 硫酸亚铁FeSO4硫酸铁Fe2(SO4)3硫酸钠Na2SO4硫酸镁MgSO4 硫酸铝Al2(SO4)3硫酸铜CuSO4硫酸锌ZnSO4硫酸钡BaSO4 硝酸银AgNO3硝酸汞Hg(NO3)2硝酸锌Zn(NO3)2 硝酸钡Ba(NO3)2 硝酸铝Al(NO3)3硝酸铁Fe(NO3)3硝酸铜Cu(NO3)2

基于《知网》的词汇语义相似度计算

基于《知网》的词汇语义相似度计算1 刘群??李素建? {liuqun,lisujian}@https://www.wendangku.net/doc/a712615560.html, ?中国科学院计算技术研究所 ?北京大学计算语言学研究所 摘要: 《知网》是一部比较详尽的语义知识词典。在基于实例的机器翻译中,词语相似度计算是一个重要的环节。不过,由于《知网》中对于一个词的语义采用的是一种多维的知识表示形式,这给词语相似度的计算带来了麻烦。这一点与WordNet和《同义词词林》不同。在WordNet和《同义词词林》中,所有同类的语义项(WordNet的synset或《同义词词林》的词群)构成一个树状结构,要计算语义项之间的距离,只要计算树状结构中相应结点的距离即可。而在《知网》中词语相似度的计算存在以下问题: 1.每一个词的语义描述由多个义原组成,例如“暗箱”一词的语义描述为:part|部件,%tool|用具,body|身,“写信”一词的语义描述为: #TakePicture|拍摄write|写,ContentProduct=letter|信件; 2.词语的语义描述中各个义原并不是平等的,它们之间有着复杂的关系,通过一种专门的知识描述语言来表示。 我们的工作主要包括: 1.研究《知网》中知识描述语言的语法,了解其描述一个词义所用的多个义原之间的关系,区分其在词语相似度计算中所起的作用; 2.提出利用《知网》进行词语相似度计算的算法; 3.通过实验验证该算法的有效性,并与其他算法进行比较。 关键词:《知网》词汇语义相似度计算自然语言处理 1 引言 在基于实例的机器翻译中,词语相似度的计算有着重要的作用。例如要翻译“张三写的小说”这个短语,通过语料库检索得到译例: 1)李四写的小说/the novel written by Li Si 2)去年写的小说/the novel written last year 通过相似度计算我们发现,“张三”和“李四”都是具体的人,语义上非常相似,而“去年”的语义是时间,和“张三”相似度较低,因此我们选用“李四写的小说”这个实例进行类比翻译,就可以得到正确的译文: the novel written by Zhang San 1本项研究受国家重点基础研究计划(973)支持,项目编号是G1998030507-4和G1998030510。

词语之间的几种语义联系

自从“现代语言学之父”、世界最著名的语文学家索绪尔于本世纪初提出“语言是一个符号系统”的观点以来,词语之间的系统联系一直是语言学家关注的焦点之一。特别是近几十年来,词语之间的语义联系越来越受到语言学家重视,围绕词语之音的语义联系问题,语言学家提出了一系列重要的新理论、新方法和新概念,如语义场理论、义素分析法等等。传统语言学只注意到词语之间的同义关系和反义关系,而实际上词语之间还有许多别的重要的语义关系。有些语义关系已被语言学家发掘出来了,还有一些则有待于进一步发掘。这里谈谈除了同义反义关系之外的几种重要的语义聚合关系,并谈谈他们在词语解释中的作用。 一、上下义关系 上下义关系是词语之间语义上的包含与被包含的关系,凡是一个词语的全部语义(概念意义)包括在另一个词语的语义之中,这两个词语就构成上下义关系。上下义关系就是逻辑学上的属种关系,具有属种关系的一组词就是上下义词,其中表示属概念的词是上义词,表示种概念的词是下义词,如:“笔-钢笔”、“人-男人”、“听-偷听”、“销售-批发”、“红-粉红”、“白-雪白”等等。其中“笔”是“钢笔”的上义词,“钢笔”是“笔”的下义词。其余依此类推。 上下义词都有属种关系,没有属种关系的词不是上下义词,如构成整体与部分关系的词就不是上下义词,如“中国-北京”、“衣服-衣襟”、“森林-树”、“船-船队”都不是上下义词。表示等级关系的词也不是上下义词,如“博士-硕士”、“处长-科长”、“年-月”都不是上下义词。因为这些词语之间并没有逻辑上的属种关系。 上下义词具有包容性,上义词的所指范围包容下义词所指范围,可以进入“乙是甲”的格式,但不能反过来说“甲是乙”。如可以说“钢笔是笔”,但不能说“笔是钢笔”。从逻辑上讲,如果乙真,则甲必真;如果乙假,则甲或真或假。如,“这是钢笔”为真,那么“这是笔”必真;若“这是钢笔”为假,那么,“这是笔”可能是真的,也可能是假的。 上下义词具有相对性,甲词是乙词的上义词,乙词又可能是丙词的上义词。如“枪”是“武器”的下义词,又是“手枪”的上义词。 由于上下义词还具有传递性,若甲词是乙词的上义词,乙词是丙词的上义词,那么甲词也是丙词的上义词。反之亦然,如“人”是“男人”的上义词,“男人”是“老汉”的上义词,那么“人”也是“老汉”的上义词。 由于上下义词具有传递性,因此上下义词的上下义关系有远有近。具有最邻近的上下义词,就是直接上下义词,其他上下义词就是间接上下义词,如“人-男人”就是直接上下义词,“人-老汉”就是间接上下义词。 上下义关系是词语之间的重要语义关系,我们平常解释词语,给概念下定义,常常要利用词语之间的上下义关系,构成“属加种差定义”。如“钢笔是笔头用金属制成的笔。”“石雕是在石头上雕刻形象、花纹的艺术。”这种“属加种差定义”是最常见的定义方式。 二、总分关系 总分关系是词语之间语义上的整体与部分的关系。如果一个词语所指的事物属于另一个词语所指事物的一个构成部分,这两个词语之间就构成总分关系。具有整体部分关系的一组词是总分词,其中表示整体的词是总义词,表示部分的词是分义词,如“中国-上海”、“大学-系”、“房子-客厅”、“教学楼-教室”、“身体-头”、“鞋子-鞋底”、“四季-春天”、“森林-树”、“船队-船”等等。其中“中国”是“上海”的总义词,“上海”是“中国”的分义词。其余依此类推。总分词中分义词所指对象是总义词所指对象的构成部分,可以进入“乙是甲的一部分”的格式。如“上海是中国的一部分”。 总分词与上下义词有类似之处,都可进入“甲包括乙”的格式。但上下义词之间是属与种的关系,可以进入“乙是甲”的格式,总分词之间是整体与部分的关系,不能进入“乙是甲”的格式。如不能说“上海是中国”。

相关文档
相关文档 最新文档