编程语言种类有哪些?

116 篇文章 0 订阅
46 篇文章 0 订阅

前言

简单总结一下

「高级语言 vs 低级语言」

在这里插入图片描述

  1. 「高级语言」:相对于低级语言来说,高级语言采用易于识别和记忆的字符来作为关键字,也更接近人类的思维方式,编写容易读写性好,因此开发效率更高,另外高级语言是可移植的,做少量修改甚至无需修改,即可将代码运行在不同平台的计算机上,比如 C、C++、Java、Python等都是高级语言;

  2. 「低级语言」:低级语言又分为两种

  • 2.1 「机器语言」:计算机硬件只能识别“断开”和“闭合”两种物理状态,也就是0和1。使用机器指令执行效率最高,因为无需对指令进行翻译。但是机器语言对人类不友好,一大串0和1,很难识别和记忆,且容易出错,因此开发效率很低。另外低级语言与机器硬件绑定,不具备可移植性;
  • 2.2 「汇编语言」:汇编语言(assembly language)是一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。在汇编语言中,用助记符(Mnemonics)代替机器指令的操作码,用地址符号(Symbol)或标号(Label)代替指令或操作数的地址。在不同的设备中,汇编语言对应着不同的机器语言指令集,通过汇编过程转换成机器指令。普遍地说,特定的汇编语言和特定的机器语言指令集是一一对应的,不同平台之间不可直接移植;

总结:

  • 越是低级的语言对机器越是友好,越是符合机器的思考方式,因此执行效率高;
  • 越是高级的语言对人类越是友好,越是符合人类的思考方式,因此开发效率高;

「编译型语言 vs 解释型语言」

坦白讲,现在用编译型、解释型来分类编程语言已经有点力不从心了

比如拿Java来举个

JAVA的第一道工序是javac编译,当然目标文件是BYTECODE。后续可能有三种处理方式:

  1. 运行时,BYTECODE由JVM逐条解释执行;
  2. 运行时,部分代码可能由JIT翻译为目标机器指令(以method为翻译单位,还会保存起来,第二次执行就不用翻译了)直接执行;
  3. RTSJ。继JAVAC之后执行AOT二次编译,生成静态的目标平台代码(典型的就是IBM WEBSHPERE REAL TIME);

有的时候,可能是以上三种方式同时在使用。至少,1和2是同时使用的,3需要程序员手工指定

所以,你说Java到底是编译型语言?还是解释型语言? 如果按照3的使用方式,Java是编译型语言。如果按照1和2的使用方式,Java可以说是半编译半解释的语言

不过一般来说

  • 「编译型」:指事先把源代码通过编译器转换成目标平台的机器语言;
  • 「解释型」:指源代码不会事先编译成目标平台的机器语言,而是在运行的时候逐行对代码进行解释,转换成目标平台机器代码运行,像Java和Pyton会事先把源代码编译成一个中间语言,然后通过VM对中间代码进行解释执行;

这两种类型语言的区别,就在于跨平台和执行性能上,解释型语言能直接跨平台,但执行性能相对差,而编译型语言跨平台需要重新编译,但执行性能相对好

「强类型语言 vs 弱类型语言」

  1. 「强类型」:不允许改变变量的数据类型,除非进行强制类型转换;比如Java,对变量类型转换有严格限制,不同类型变量是不能相互赋值的,这样可以避免许多低级错误;

  2. 「弱类型」:变量可以被赋予不同的数据类型;比如javascript,对变量类型没有约束,相对更灵活,但容易产生bug;

「动态类型语言 vs 静态类型语言」

  1. 「静态类型语言」:在编译阶段确定所有变量的类型,比如C++ 、Java,编译阶段就可以确定属性偏移量,用偏移量访问代替属性名访问,偏移量信息共享;

  2. 「动态类型语言」:在执行阶段确定所有变量的类型,比如javascript,会导致需要在程序运行时,动态计算属性内存地址的偏移量,还需要额外空间存储属性名,所有对象的偏移量信息各存一份;

在这里插入图片描述

相应的也就可以理解静态链接和动态链接的区别了

综上,动态弱类型语言(比如Javascript)因为性能和易引入bug等问题,被很多开发者鄙视

PS:根据上面的分类,Python属于动态强类型语言

如上只列举了几个分类的维度,当然,还有其他的维度,比如GC-based的、手工管理内存的,有没有VM的等等,就不一一列举了

-END-


Python入门全套学习资料附带源码:

学习编程前准备(文末免费领)

在这里插入图片描述

全套软件安装包

附带完整的安装包的安装视频教程资源(新手大礼包已备好)

img

整套零基础入门视频+课件笔记

img

👉实战案例👈

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
在这里插入图片描述

👉100道Python练习题👈

检查学习结果。

👉面试刷题👈

在这里插入图片描述

资料领取

上述这份完整版的Python全套学习资料已经上传CSDN官方,朋友们如果需要可以微信扫描下方CSDN官方认证二维码输入“领取资料” 即可领取

在这里插入图片描述

学习方法

学习python,我觉得一定要快,用最快的时间快速入门,千万不要学困难的东西,先挑简单的来,越快越好,以免打击了你学习的积极性。

找到一个切入点,比如爬虫就是一个十分有趣的切入点,学会了爬虫你就可以从网站上“偷数据”,还可以把这些数据拿来卖钱,你说好不好。

总结

好啦,这就是今天的内容,入门知识点资料免费发送的哈,想要的小伙伴儿不要错过,带你直

接弯道超车,少走一大波弯路,准备好了嘛?!我们要开始学习一项编程技术啦!

img

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值