课时12:编译型语言和解释型语言

简介: 今天为大家简单介绍计算机高级语言,如C、C++、JAVA、JavaScript、Python等,指出任何语言被计算机执行前都需转换为机器码。根据转换时机不同,高级语言分为编译型语言和解释型语言,今天的内容主要分为以下三个部分。1.编译语言2.解释型语言3.两者的优缺点

课时12:编译型语言和解释型语言

 

摘要:今天为大家简单介绍计算机高级语言,如C、C++、JAVA、JavaScript、Python等,指出任何语言被计算机执行前都需转换为机器码。根据转换时机不同,高级语言分为编译型语言和解释型语言,今天的内容主要分为以下三个部分。

1.编译语言

2.解释型语言

3.两者的优缺点

       

前言:刚刚我们介绍了计算机语言,需要注意的是,今后我们学习的全是高级语言,比如C、C++、JAVA、JavaScript、Python等。高级语言之间也存在一些区别,其中一种分类是编译型语言和解释型语言。我们知道,计算机只能识别二进制编码,也就是机器码。所以,任何语言在被计算机执行之前,都必须先转换为机器码。例如,无论C、C++、JAVA、JavaScript还是Python等语言,想要执行,最终都得转换成类似“1010”这样的机器码。比如写一个 print("hello") 的函数,也必须转换为机器码,计算机才能执行。这意味着,任何语言都需要进行这样一个转换步骤。根据转换时机的不同,语言可分为两大类:编译型语言和解释型语言。

 

01. 编译语言

 

image.png

编译型语言,最典型的是C语言。其特点是在代码执行前,先将代码编译为机器码,然后把机器码交给计算机执行。例如,编写一个C语言程序,保存为文件a,这个文件a(即源码)无法直接被计算机执行,需要通过C的编译器将文件a编译成文件b,文件b就是编译后的机器码,只有机器码文件b才能被计算机执行。也就是说,编译型语言都需要经过编译这一步骤才能正常执行。

解释型语言有很多,比如Python、JavaScript、JAVA等都属于解释型语言。

 

02. 解释语言


image.png

解释型语言有哪些特点,又和编译型语言有何不同呢?解释型语言不会在代码执行前进行编译,而是在执行的同时一边执行一边编译。例如,编写一段源码  a  ,对于编译型语言,需要先将源码编译,生成新的文件,然后执行新文件;而解释型语言无需编译,直接把源码交给解释器,由解释器进行解释执行。以C语言为例,它作为编译型语言,会把整个代码编译成机器码,再将机器码交给系统执行。像Python这样的解释型语言,则不需要编译,写完代码后直接交给解释器,解释器一边执行一边转换。

可以用一个形象的比喻来理解二者的区别:编译型语言如同去饭店点菜,比如点鱼香肉丝、宫保鸡丁,这些菜是提前做好的,直接端上桌就能吃,就像编译好的代码直接交给计算机执行;解释型语言则像吃涮羊肉火锅,肉是生的,需要自己一边涮一边吃,即代码由解释器一边转换一边执行。

 

03. 两者的特点

 

image.png

它们各自的特点如下:

- 编译型语言:

- 执行速度快:因为代码已提前编译成机器码,就像炒好的菜端上来就能吃,相比涮肉要快。

 

- 跨平台性差:以炒菜为例,菜炒好后端上来,口味已固定,可能无法满足不同人的口味需求。同理,编译型语言是针对特定硬件和系统编译的,比如在英特尔CPU或Windows系统上编译的代码,可能无法在AMD CPU或Linux系统上使用。若要跨平台,就需要针对不同系统重新编译代码。

- 解释型语言:

- 执行速度慢:由于解释器要一边解释一边执行代码,多了编译转换的步骤,如同涮羊肉需先涮再吃,相比直接吃菜要慢。不过,随着系统运行速度加快,以及网络型应用中网速的限制,这种速度差异基本体现不出来。

- 跨平台性好:解释型语言是源码通过解释器执行,解释器在不同系统中会将源码解释成对应系统的代码。比如在Windows系统中,解释器会将源码解释成Windows代码执行。就像吃火锅,想吃辣就蘸辣调料,不想吃辣就不蘸,可根据需求灵活调整。

如今,解释型语言应用更为广泛,如Python、JAVA等;C语言等编译型语言则多用于对性能要求较高的场景。区分二者的关键在于,编译型语言需先编译再执行,而解释型语言直接由解释器执行源码。今天的分享到此结束,谢谢大家!

   

相关文章
|
开发框架 Java 中间件
.NET/.NET Core相关面试题
.NET/.NET Core相关面试题
282 0
|
Rust 自然语言处理 安全
【Rust日报】用 Rust 从头实现一个 C 编译器
【6月更文挑战第9天】使用 Rust 实现 C 编译器的挑战性项目,利用 Rust 的内存安全和高性能优势。涉及词法分析、语法分析等步骤,示例代码展示简单的词法分析过程。实际实现需处理更多复杂环节,如抽象语法树构建和代码生成。此项目能深化对编译器原理的理解,提升 Rust 技能,并有望推动更多高质量 Rust 编译器的诞生。
420 7
|
11月前
|
XML 移动开发 开发者
京东商品详情数据接口(H5、APP 端)
京东商品详情数据接口是为H5和APP开发者提供的工具,支持获取商品名称、价格、库存、销量、评价、图片等详细信息,优化应用功能。接口返回JSON或XML格式数据,方便解析处理。适用于电商导购、社交媒体分享、活动推广、价格监控等场景,提升用户体验和购物决策效率。示例代码展示了使用Python发送GET请求的方法。
|
人工智能 并行计算 搜索推荐
ollama本地部署llama3(window系统)
这篇文章详细介绍了如何在Windows系统上本地部署Ollama框架来运行Llama 3大模型,并提供了具体的安装步骤和注意事项,以便实现离线使用高级AI模型进行对话。
1077 0
ollama本地部署llama3(window系统)
|
存储 缓存 关系型数据库
|
11月前
|
SQL 存储 关系型数据库
SQL自学笔记(3):SQL里的DCL,DQL都代表什么?
本文介绍了SQL的基础语言类型(DDL、DML、DCL、DQL),并详细说明了如何创建用户和表格,最后推荐了几款适合初学者的免费SQL实践平台。
618 3
SQL自学笔记(3):SQL里的DCL,DQL都代表什么?
|
11月前
|
人工智能 数据可视化 数据挖掘
【产品】G 端产品经理
G端产品经理在政府数字化转型中扮演着关键角色,连接政府需求与技术实现。他们负责挖掘需求、规划方案、推动跨部门协作,并监督项目进展。具体职责包括需求调研、产品规划与设计、原型制作、文档撰写及交互与视觉设计等。面对复杂多变的需求、快速更新的技术和严格的项目验收,G端产品经理需不断提升专业技能,以适应挑战并推动政府治理体系现代化。
|
运维 持续交付 开发工具
基础设施即代码(IaC):自动化基础设施管理的未来
基础设施即代码(IaC):自动化基础设施管理的未来
458 0
|
机器学习/深度学习 运维 算法
【2021 高校大数据挑战赛-智能运维中的异常检测与趋势预测】1 赛后总结与分析
对2021高校大数据挑战赛中智能运维异常检测与趋势预测赛题的赛后总结与分析,涉及赛题解析、不足与改进,并提供了异常检测、异常预测和趋势预测的方法和模型选择的讨论。
280 0
【2021 高校大数据挑战赛-智能运维中的异常检测与趋势预测】1 赛后总结与分析
|
定位技术
谷歌地球引擎GEE账户注册的快速、百分百成功方法
谷歌地球引擎GEE账户注册的快速、百分百成功方法
809 2