面向对象的程序设计(一):了解部分编程语言类型

作为初学者,在学习一门编程语言之前,最重要的就是了解各种语言的类型分类以及他们的区别等等本文将会对**编译型语言和解释型语言、动态类型语言和静态类型语言以及强类型语言和弱类型语言**进行简要分析。
**一、编译型语言和解释型语言**
首先我们要知道计算机是不能理解高级语言的,因此也就不能直接执行高级语言,它只能直接理解计算机语言,所以使用任何高级语言编写的程序若想被计算机运行,都必须将其转换成计算机语言。而这就引申出了编译和解释两种转换方式。
首先来说编译型语言。它使用特定的编译器,针对特定的平台,将高级语言一次性编译成可被该平台识别并执行的计算机语言,并包装成该平台所能识别的程序的格式。它的执行过程可简要概括为在程序运行之前,编译器先将源代码编译为计算机语言,之后再将源代码编译成计算机语言的文件,如exe格式的文件,并且在以活运行时不需要再进行重新编译即可直接运行。这种语言的优点在于之后每次运行时脱离开发环境,运行效率高,而缺点同时也很明显,一般在一个平台成功运行的程序在移植到其他平台时大概率会出现错误。这种语言一般用于C、C++等语言类型。
对于解释型语言。它与编译型语言最大的区别是使用专门的解释器对源代码进行逐行解释使其成为特定平台的机器码并立即执行,代码在执行时才会被解释器进行动态翻译和执行。因此只要平台提供了相应的解释器即可运行该程序。这种语言与编译型语言相反,每次执行前都要进行重新解释,效率较低,而其优点也很明显,由于每次执行前都要重新解释,因此程序移植起来更方便。这种语言一般用于python等等。
**二、动态类型语言和静态类型语言**
动态类型语言是指在运行期间才去做数据类型检查的语言。也就是说在用动态类型的语言编程时,不用给予变量、方法以及方法的返回值的数据类型,在给其赋值时才会决定它的类型。它的优点在于开发程序时方便快捷,但是在检查、维护程序时较麻烦。一般用于python等语言类型。
静态类型语言与动态类型语言相反,它的数据类型是在编译期间进行检查的。在实际开发时反映为要在程序中特别指出变量的数据类型,否则程序会报错。这种语言的优点与动态类型语言相反,在程序刚刚开发完成时通过编译就可以明确指出错误,检查、维护起来更简便。一般用于C、C++等语言。
**三、强类型语言和弱类型语言**
在区分这两门语言之前,我们需要先了解隐式变量类型转换这一概念。它是指在程序源代码中没有明显的类型转换代码,在当你赋值的类型是数值抑或是字符串时程序不会报错,并且在两种不同类型的值进行相加等操作时会自动转换为其他语言。
强类型和弱类型主要是站在变量类型处理的角度进行分类的,强类型语言不允许隐式变量类型转换,弱类型语言则允许隐式类型转换。
强类型语言就是指当你定义一个变量的类型时,如果不经过显式转换也就是指强制转化,它的类型是不会变的,如果与其他类型的变量进行线性操作时就会报错。由于在运行时不会对其他数据类型进行转换操作因此在运行时内存利用率较高。这种语言类型一般用于Java、C、C++等。
弱类型语言就是说你想把这个变量当做什么类型来用,就可以当做什么类型来用,语言会进行隐式转换。弱类型语言在开发时更省力,可以提升开发效率;弱类型由于其特性,使得弱类型语言的运行效率,内存利用率比不上强类型语言。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值