Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

解释性语言和编译型语言的区别【热度: 858】 #441

Open
yanlele opened this issue Jun 8, 2023 · 0 comments
Open

解释性语言和编译型语言的区别【热度: 858】 #441

yanlele opened this issue Jun 8, 2023 · 0 comments
Labels
JavaScript JavaScript 语法部分 快手 公司标签
Milestone

Comments

@yanlele
Copy link
Member

yanlele commented Jun 8, 2023

关键词:解释性语言和编译型语言

解释性语言和编译型语言是两种不同的编程语言类型,它们在代码的执行方式和运行过程中的一些特点上存在区别。

  1. 编译型语言:

    • 编译型语言的代码在运行之前需要经过编译器的处理,将源代码一次性地转换成机器语言的可执行文件(通常是二进制文件)。
    • 编译器将源代码转换为目标代码的过程包括词法分析、语法分析、语义分析、优化和代码生成等步骤。
    • 在运行时,编译型语言的可执行文件直接在计算机上执行,无需再次进行翻译或解释。
    • 典型的编译型语言包括 C、C++、Java(虚拟机字节码编译)、Go等。
  2. 解释性语言:

    • 解释性语言的代码在运行时逐行被解释器解释执行,无需预先编译为可执行文件。
    • 解释器逐行读取源代码,将其解析并直接执行,将源代码翻译为机器指令并逐行执行。
    • 解释性语言的执行过程通常边解释边执行,每次运行都需要经过解释器的处理。
    • 典型的解释性语言包括 JavaScript、Python、Ruby、PHP等。

区别:

  • 编译型语言在运行之前需要将代码转换为可执行文件,而解释性语言在运行时逐行解释执行。
  • 编译型语言的执行速度通常较快,因为代码已经被预先编译成机器语言,无需再进行解释。解释性语言的执行速度较慢,因为每次运行都需要经过解释器的处理。
  • 编译型语言一般需要根据目标平台进行编译,可执行文件通常与特定的操作系统和硬件相关。解释性语言通常是跨平台的,只需要相应的解释器即可运行。
  • 编译型语言在代码运行之前会进行全面的语法和类型检查,可以在编译过程中发现一些潜在的错误。解释性语言在运行时进行解释,错误可能会在运行过程中被发现。

需要注意的是,实际上很多语言不是严格的编译型语言或解释性语言,而是在两者之间存在折中的方式。例如,Java 语言将源代码编译为字节码(中间形式),然后在虚拟机中解释执行。因此,这些概念并不是绝对的,语言的执行方式可能有所不同。

@yanlele yanlele added JavaScript JavaScript 语法部分 快手 公司标签 labels Jun 8, 2023
@yanlele yanlele added this to the milestone Jun 8, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
JavaScript JavaScript 语法部分 快手 公司标签
Projects
None yet
Development

No branches or pull requests

1 participant