强类型 vs. 弱类型:
- 所有编程语言均有不同的数据类型,例如字符串类型(string)、整数类型(int)、列表类型(list)等等。
- 强类型:强制数据类型。在申明了某个变量的数据类型之后,变量不会根据需求自动改变其数据类型。如有需要,必须手动强制转换数据类型。
- 弱类型:与强类型相反,弱类型中的某一个变量被定义类型之后,该变量依然可以根据环境的变化而变化,不需要经过手动强制转换。
动态 vs. 静态:
- 动态:动态语言在编译时能够自动识别变量的数据类型。使用动态语言时,不需要申明新变量的数据类型。
- 静态:使用静态语言时,必须在创建新变量时注明其类型。
定义一个值为1的整数类型(int)变量:
- Python:a=1
- C++:int a = 1;

编译型 vs. 解释型:
- 源代码是我们能读懂,但是电脑却读不懂的语言。所有编程语言都要经过翻译,成为电脑能读得懂的二进制代码。不管是编译型语言还是解释型语言,都要经过翻译这个步骤。
- 编译型:在程序运行之前,编译器(compiler)把整个程序里的所有代码全部翻译成二进制,存储在一个新的二进制文件中。计算机运行的程序不是原代码,而是那个编译器生成的二进制文件。这个二进制文件叫做可执行文件。C++未经过编译的源代码的后缀名是.cpp ,而经过编译之后才产生以 .exe 结尾的可执行文件。源代码不需要经过二次编译,第一次编译之后,接下来每次都运行可执行文件。
常见编译型语言:C,C++ - 解释型:解释器(interpreter)在运行程序之前不提前翻译代码,也不生成二进制文件。运行时,解释一条命令,计算机执行一条命令。解释器不会留下编译的记录,所以等下次运行时还得重新解释。
常见解释型语言:JavaScript,Python,PHP
举个例子:你(电脑)有一本外星语的书(原代码),还有一个外星人帮你翻译。你有两个选择:
一、让他把整本书翻译成一本中文书之后你再看,并且你之后想看时可以直接看那本中文书。(编译型)
二、你也可以选择让他看一句就为你口头翻译一句,等你下次想看这本书了,还得使用到这个翻译。(解释型)

编译型和解释型各有利弊。
解释型语言可以实时查看程序运行效果,源代码编辑完成之后可以立即执行,不像编译型语言一样在小修小改之后还得重新编译全部代码。
解释器的另一个优点就是兼容性好。在所有平台上皆可运行,只需要该设备安装了解释器(虚拟机)。HTML就是解释型语言,不管什么操作系统的电脑或者手机,只要安装了浏览器,统统可以浏览网页。
但是由于在解释型语言,比如Python写出的程序中,解释器和该程序同时运行,解释器会占据大量内存,拖慢主程序的运行速度。这也决定了编译型语言远远快于解释型语言。
实战中,对运行速度要求高的程序往往采用编译型语言,比如操作系统、游戏的物理引擎等;对运行速度要求不高,但是对兼容性有要求的程序往往采用解释型语言。
高级语言 vs. 低级语言:
- 高级语言:高级语言从各方面来说,都比低级语言优越。高级语言更加智能,简便,且兼容性大大优于低级语言。
- 低级语言:最早诞生的低级语言是大名鼎鼎的汇编语言(Assembly Language),使用时要考虑到计算机的底层细节,非常繁琐,学习成本高。
本文介绍了编程语言的基本类型和特性,包括强类型与弱类型、动态与静态、编译型与解释型的区别。强类型语言变量类型固定,弱类型则可变;动态语言在运行时识别变量类型,静态语言在编写时需指定。编译型语言在运行前完全编译,解释型则逐行解释执行。不同类型的语言各有优缺点,适用于不同的场景。例如,编译型语言如C++运行速度快,解释型语言如Python则更便于快速开发和跨平台运行。
547

被折叠的 条评论
为什么被折叠?



