编程语言分类

本文介绍了编程语言的基本类型和特性,包括强类型与弱类型、动态与静态、编译型与解释型的区别。强类型语言变量类型固定,弱类型则可变;动态语言在运行时识别变量类型,静态语言在编写时需指定。编译型语言在运行前完全编译,解释型则逐行解释执行。不同类型的语言各有优缺点,适用于不同的场景。例如,编译型语言如C++运行速度快,解释型语言如Python则更便于快速开发和跨平台运行。

强类型 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),使用时要考虑到计算机的底层细节,非常繁琐,学习成本高。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值