类型系统

编辑
本词条由“匿名用户” 建档。

在计算机编程中,类型系统是一个由一组规则组成的逻辑系统,它为每个术语(一个词、短语或其他符号集)分配一个称为类型的属性。通常,这些术语是计算机程序的各种结构,如变量、表达式、函数或模块。类型系统规定了可以在一个术语上进行的操作。对于变量,类型系统决定了该术语的允许值。类型系统将程序员用于代数数据类型、数据结构或其他组件(例如,字符串、浮点数组、返回布尔值的函数)的隐含类别正式化并强制执行。类型系统...

类型系统

编辑

计算机编程中,类型系统是一个由一组规则组成的逻辑系统,它为每个术语(一个词、短语或其他符号集)分配一个称为类型的属性。通常,这些术语是计算机程序的各种结构,如变量、表达式、函数或模块。类型系统规定了可以在一个术语上进行的操作。对于变量,类型系统决定了该术语的允许值。类型系统将程序员用于代数数据类型、数据结构或其他组件(例如,字符串浮点数组、返回布尔值的函数)的隐含类别正式化并强制执行。类型系统通常被指定为编程语言的一部分,并内置于解释器和编译器中,尽管一种语言的类型系统可以由可选的工具来扩展,这些工具使用语言的原始类型句法和语法进行附加检查。编程语言中的类型系统的主要目的是减少计算机程序中由于类型错误而产生的错误的可能性。有关的类型系统决定了什么是类型错误,但一般来说,其目的是防止期望某种类型的值的操作被用于该操作没有意义的值(有效性错误)。类型系统允许在计算机程序的不同部分之间定义接口,然后检查这些部分是否以一致的方式连接。这种检查可以是静态的(在编译时),动态的(在运行时),或两者的结合。类型系统也有其他目的,比如表达业务规则、实现某些编译器优化、允许多重调度,以及提供一种文档形式。

使用概述

编辑

一个简单类型系统的例子是C语言的类型系统。C语言程序的部分内容是函数定义。一个函数被另一个函数所调用。一个函数的接口说明了该函数的名称和传递给该函数代码的参数列表。调用函数的代码说明了被调用的名称,以及容纳传递给它的数值的变量名称。在执行过程中,这些值被放置到临时存储中,然后执行跳转到被调用函数的代码。被调用函数的代码访问这些值并利用它们。如果函数内部的指令是以接收整数值为前提编写的,但调用代码传递的是浮点值,那么被调用函数将计算出错误的结果。C语言编译器会在函数被调用时,根据函数定义中声明的参数类型来检查传递给函数的参数类型。如果类型不匹配,编译器会抛出一个编译时错误。编译器也可以使用一个值的静态类型来优化它所需要的存储以及对该值进行操作的算法选择。例如,在许多C语言编译器中,float数据类型是用32位表示的,符合IEEE对单精度浮点数的规范。

类型系统

因此,他们会对这些值使用浮点专用的微处理器操作(浮点加法、乘法等)。类型约束的深度和其评估方式会影响语言的类型。在类型多态性的情况下,编程语言可以进一步将一个操作与每个类型的各种决议联系起来。类型理论是对类型系统的研究。一些编程语言的具体类型,如整数和字符串,取决于计算机结构、编译器实现和语言设计等实际问题。

基本原理

编辑

从形式上看,类型理论研究类型系统。一种编程语言必须有机会使用类型系统进行类型检查,不管是在编译时还是在运行时,是手动注释还是自动推断。类型理论引起的基本问题是,有意义的程序可能没有被赋予意义。对更丰富的类型系统的追求就来自于这种矛盾。赋予一个数据类型,即类型化,给一个比特序列以意义,如内存中的一个值或一些对象,如一个变量。通用计算机的硬件无法区分内存地址和指令代码,也无法区分字符、整数或浮点数,因为它对比特序列可能意味着的任何值都没有内在的区别。把一个比特序列与一个类型联系起来,就可以把这个意义传达给可编程的硬件,形成一个由该硬件和一些程序组成的符号系统。一个程序将每个值与至少一个类型相关联。

内容由匿名用户提供,本内容不代表vibaike.com立场,内容投诉举报请联系vibaike.com客服。如若转载,请注明出处:https://vibaike.com/170877/

(5)
词条目录
  1. 类型系统
  2. 使用概述
  3. 基本原理

轻触这里

关闭目录

目录