译原理乌技术类型检查《编译原理与技术》一类型检查
编译原理与技术 类型检查 《编译原理与技术》-类型检查
类型检查类型体制类型检查类型等价类型转换一隐式转换一显式转换类型推导一算符重载《编译原理与技术》一类型检查
类型检查 类型体制 类型检查 - 类型等价 类型转换 - 隐式转换 - 显式转换 类型推导 - 算符重载 《编译原理与技术》-类型检查
类型体制程序设计语言中的类型一类型代表着某类值(域))的集合,如整型(数)、实型(数)、字符串等。一类型本身具有结构:多数语言提供称为基本类型或预定义类型的“内建”类型,如C的int,char和double。同时可以应用类型构造器作用于基本类型得到“复合类型”,常见的类型构造器有record/struct、array、set、pointer、function等一用“类型表达式”来表示具有类型的语言结构“类型体制”也就是将类型表达式指派到语言结构上的规则(集合),而类型检查则是来实现这个类型体制。《编译原理与技术》一类型检查
类型体制 程序设计语言中的类型 - 类型代表着某类值(域)的集合,如整型(数)、 实型(数)、字符串等。 - 类型本身具有结构;多数语言提供称为基本类型或 预定义类型的“内建”类型,如C的int,char和 double。同时可以应用类型构造器作用于基本类型 得到“复合类型”,常见的类型构造器有 record/struct、array、set、pointer、function等。 - 用“类型表达式”来表示具有类型的语言结构 -“类型体制”也就是将类型表达式指派到语言结构 上的规则(集合),而类型检查则是来实现这个类 型体制。 《编译原理与技术》-类型检查
基本类型CJava类型加宽longdouble(Widening)doublefloatdoublefloatlongintlong longshortlongcharbyte类型窄化(Narrowing)必须做charbooleantype-cast《编译原理与技术》一类型检查
基本类型 C Java long double double double float float long long long int long short int char short byte char boolean unsigned 类型窄化 (Narrowing)必须做 type-cast 类型加宽 (Widening) 《编译原理与技术》-类型检查
复合类型结构/记录(不同类型的对象聚集)CPascalRECORDstruct foo (int a;var a : integer;float b;var b : real;} ;END ;struct foo X;X.a=...一联合/变体(union/variant)一位域(bit fields)《编译原理与技术》一类型检查
复合类型 - 结构/记录(不同类型的对象聚集) C Pascal struct foo { RECORD int a; var a : integer; float b; var b : real; } ; END ; struct foo X; X.a = . - 联合/变体(union/variant) - 位域(bit fields) 《编译原理与技术》-类型检查