大多数程序设计语言都有数据类型的概念,数据类型指定义一组数据值以及在这些数据值上相关的一组操作。
我们知道计算机通过操作数据来产生结果,决定计算机程序执行认为难易程度的一个重要原因是可提供的数据类型与真实世界问题空间的匹配程度。因此,一种语言能支持多样化的类型与结构就成为关键。
数据类型的概念是从过去50年间发展过来的
最早的语言仅支持少量的数据结构,如Fortran 90之前通常用数组来模拟链表及二叉树。
COBOL允许程序员指定小数的精度,并通过记录提供一种结构化的数据类型,跨出了Fortran I模式的第一步。
PL/I更是将精度说明的功能扩展到整数及浮点类型,该功能从此也被引进到了Ada和Fortran。
ALGOL则开创式的引入了用户自定义类型的概念,它仅提供少数的基本类型以及少量灵活的结构定义操作符,却允许程序员为需求设计一种数据结构。显然,这是数据类型发展过程中最重要的进步。
1967年首次提出“类型”概念的Simula 67,把数据和被允许施与数据上的操作结合为一个统一体,从而成为现代“抽象数据类型”的开端及第一个“面向对象语言”。
1971年出现的Pascal也是在ALGOL之上扩充的。
从“用户自定义类型”这个概念往前一步,就到了“抽象数据类型”的阶段,抽象数据类型的基本思想是,类型的接口(对用户可见)与类型的表示及类型的值的操作相分离(对用户不可见)。高级程序设计语言提供的所有类型都是抽象数据类型。
少数语言如BLISS根本没有类型的概念,其它则是在编译时(ML、Haskel,C)或是运行时(Lisp、Scheme、JavaScript、Smalltalk等动态语言)自动维护类型信息。
类型起着两种主要作用
1. 利用类型信息的操作
为操作提供了隐含的上下文环境,如Java中如果a, b都是int类型,表达式a+b就会使用整数相加操作。
2. 通过类型信息捕捉错误
类型限制了语义上合法的程序里可以执行的操作集合。如类型不允许编程人员去做一个和字符串进行算术相加的操作。
类型的分类
不同的语言里有关类型的术语也不同,大部分语言所提供的内部类型(built-in)差不多就是大部分处理器硬件所支持的类型:整数、实数(浮点数)、布尔和字符。
布尔类型(也称逻辑类型)通常实现为一种一个字节的量,其中1表示true,0表示false。但C语言不同,它没有布尔类型,C的整数0表示false,非0都是true。
部分语言字符也实现为一个字节的量,通常采用ASCII编码,更新的语言则采用Unicode,如Java、JavaScript,这是国际化的标准。
只有为数不多的几种语言(C、Fortran)区别了不同长度的整数和实数,大多数语言把精度的问题留给了实现。也有少数语言(C、C++、C#、Modula-2)同事提供带符号和无符号的整数。还有几种语言(Fortran、C99、Common Lisp和Scheme)提供了内部的复数类型,一般实现为浮点数。
某些语言(Pascal、Java)还内置枚举类型,该类型由1984年图灵奖获得者Wirth首创,诞生于Pascal。这种类型有利于构造可读性更好的程序,也使编译器能扑捉一些种类的编程错误。
一个枚举类型由一组命名元素组成,Pascal中如下
type weekday = {sun, mon, tue, wed, thu, fri, sat};
Java中如下
public enum ColorSelect { red, green, yellow, blue; }
相关:
http://en.wikipedia.org/wiki/Data_types
http://en.wikipedia.org/wiki/Primitive_types
相关推荐
"组态王的数据类型" 组态王是一个工业自动化软件平台,提供了多种数据类型来满足不同应用场景的需求。了解组态王的数据类型对于开发高效的工业自动化应用非常重要。 BIT 数据类型:BIT 数据类型是一种基本的数据...
### SQL Server 数据类型详解与自定义数据类型创建 在数据库设计与管理中,理解并熟练掌握数据类型至关重要,因为它们直接影响到数据存储的效率、安全性和查询性能。SQL Server 提供了丰富的内置数据类型,同时也...
SQL Server 数据库类型对应 Java 中的数据类型 SQL Server 是一个关系数据库管理系统,Java 是一个广泛使用的编程语言。在 Java 中,对数据库的操作需要通过 JDBC(Java Database Connectivity)来实现,而在 JDBC ...
自定义数据类型允许用户根据需求定义自己的数据结构,比如组合多个基本数据类型,形成新的复合类型。 本案例"易语言自定义数据类型变量保存"主要关注如何保存和恢复自定义数据类型的变量。在编程中,保存数据通常是...
Java 数据类型和 MySql 数据类型对应一览 在 Java 编程语言中,数据类型是指变量或函数可以持有的值的类型。 MySql 数据库也具有其自己的数据类型,用于存储和管理数据。在本文中,我们将对 Java 数据类型和 MySql ...
Python 组合数据类型 Python 中的组合数据类型主要包括集合、列表、元组和字典四种。这些数据类型都是 Python 中的内置类型,广泛应用于数据处理和存储。 集合类型 集合类型是无序、唯一性元素的组合,可以是数字...
ECMAScript 中有 5 种简单数据类型(也称为基本数据类型):Undefined、Null、Boolean、Number和 String。还有 1种复杂数据类型——Object,Object 本质上是由一组无序的名值对组成的。ECMAScript 不支持任何创建...
在易语言中,自定义数据类型是一种重要的编程概念,它允许程序员根据需求定义自己的数据结构,比如组合多种基本数据类型,形成复合型的数据结构。本文将深入探讨易语言中自定义数据类型的内存存储方式及其相关知识点...
### SqlServer数据库的数据类型详解 数据类型在编程与数据库管理中扮演着至关重要的角色,它不仅定义了数据的存储方式,还决定了数据可以执行的操作。SQL Server作为一种广泛使用的数据库管理系统,提供了丰富的...
一些初学JAVA的朋友可能会遇到JAVA的数据类型之间转换的苦恼,例如,整数和float,double型之间的转换,整数和String类型之间的转换,以及处理、显示时间方面的问下面笔者就开发中的一些体会介绍给大家。 我们知道,...
在易语言中,内存自定义数据类型是实现高效内存管理的重要手段,它允许程序员根据实际需求定义自己的数据结构。下面将详细阐述这个主题。 内存自定义数据类型是指在程序运行过程中,由程序员自行定义的一种数据结构...
在编程领域,特别是使用易语言(E语言)进行开发时,理解并操作数据类型的大小是非常重要的。易语言是一种中文编程语言,它具有直观的语法,旨在简化编程过程,尤其是对于初学者。本篇文章将深入探讨易语言中的...
了解Oracle数据库与.NET数据类型的映射关系对于开发人员来说至关重要,这直接影响到数据的正确存储、检索和处理。以下是对"Oracle与.Net 数据类型映射"这一主题的详细解释。 首先,Oracle数据库提供了一系列的数据...
在数据块中,可以定义多种不同的数据类型,这些数据类型包括基本数据类型、复杂数据类型和用户自定义数据类型。 基本数据类型是TIA博图中预定义的一些简单数据类型,如布尔型(BOOL)、整型(INT)、实型(REAL)等...
### SQL数据类型与C#数据类型的转换 在开发过程中,我们经常会遇到需要将数据库中的数据类型映射到编程语言中的情况。特别是在使用SQL Server作为后端数据库与C#进行交互时,了解这两种环境下的数据类型及其对应...
Java 数据类型和 MySql 数据类型对应表 在 Java 编程中,了解 Java 数据类型和 MySql 数据类型的对应关系非常重要。这是因为在 Java 应用程序中,我们经常需要与数据库进行交互,而 MySql 是一种常用的关系数据库...
本篇文章将详细阐述 SQL 中几种常见的数据类型及其应用特点,具体包括整型数据类型、浮点数据类型、二进制数据类型以及逻辑数据类型。 #### 整型数据类型 1. **INT(INTEGER)** - **描述**:`INT` 或 `INTEGER` ...
【C#数据类型与变量】是编程学习中的基础部分,主要涵盖了C#语言中用于存储数据的不同类别以及如何声明和使用变量。C#是一种强类型的语言,这意味着在编写代码时必须为每个变量指定一个特定的数据类型。 数据类型...
本资源“JAVA数据类型思维导图”提供了一种直观的方式来理解和记忆Java中的数据类型,包括基本数据类型和引用数据类型。下面将对这两个主要的数据类型进行详细解释。 1. 基本数据类型(Primitive Data Types) - ...
SQL 数据库数据类型说明 SQL 数据库中有多种数据类型,每种数据类型都有其特点和应用场景。了解这些数据类型是 SQL 编程的基础。 1. 整型数据类型 SQL 数据库中的整型数据类型包括 bit、int、smallint 和 tinyint...