我们在生活中都曾使用过电脑。有时,我们一定想知道计算机是如何接受我们的语言并立即发出命令的。但事实是,计算机不理解我们的文本语言,即高级语言。
高级语言只能通过我们即人来理解。它被称为源代码。编程语言如C,C ++,Java等使用高级语言,它们非常接近英语。
相反,计算机系统只能理解低级语言。它们非常接近硬件。低级语言通常意味着二进制0和1的称为机器代码。现在让我们看看程序的概念是什么。
计算机程序是由用户编写的一组指令,计算机执行以执行给CPU的特定任务。这是技术定义。让我们在计算机语言中看到程序的实际含义。我们对此定义提供压力,因为我们对持有本文中的程序的概念非常重要。
程序可以是在计算机上运行的任何软件。例如,它可以是任何视频游戏,编辑软件,网页浏览器,或任何系统工具。
现在回到我们的观点:我们在上段中看到了特定的程序首先需要从高级语言转换为我们的计算机的低级语言。
对于上述任务,我们需要编译器和解释器将程序代码转换为机器代码。编译器和解释器都执行相同的转换任务;仍然存在一些差异。让我们暂停编译器和解释器的区别。
编译器与解释器
编译器和解释器之间的差异总结在下表中。
编译器 | 翻译 |
编译器扫描整个程序并将其转换为机器代码。 | 解释器一次转换一个语句。 |
编译器需要大量时间来分析源代码。 | 解释器需要更少的时间来分析源代码。 |
用户不能在不返回源代码的情况下更改程序。 | 如果你有相关的解释器,解释程序可以在你的计算机上运行。 |
它基于链接 - 装载模型 | 它基于解释模型 |
它将机器语言保存为机器代码。 | 它根本不把机器语言保存为机器代码。 |
程序的执行与编译过程不同。该程序仅执行,只有在编译整个输出代码后才执行。 | 程序的执行是解释过程的一部分。因此,该程序在解释过程中按行执行行。 |
编译器创建中间机器代码。 | 解释器从不创建中间机器代码。 |
编译器在汇编时闪烁所有错误和警告。因此,在不解决错误的情况下,用户无法运行程序。 | 相反,解释器每次只接受一条语句,并显示错误。用户需要更正错误,然后解释下一行。 |
编译器的使用最适合生产环境 | 使用口译员最适合开发环境 |
编程语言如C,C ++,Java,Scala使用编译器。 | Python,Ruby,Perl,PHP等编程语言使用解释器。 |
编译器是什么?
我们,人类,以一种似乎易于理解的语言舒适。如果以一种简单兼容的语言指示,我们可以很好地执行我们的任务。同样,计算机系统对机器级语言或低级语言感到舒适。它可以非常好地执行指令,并迅速使用二进制数字,即0和1的二进制数字。
编译器是非常繁重的计划。一些编译器将高级语言转换为中间汇编语言,然后将(组装)转换为机器级语言。此外,某些编译器直接转换,无需汇编代码的帮助。它读取源代码并为可执行代码提供输出。编译器一次转换整个程序,因此找到错误成为用户的忙碌任务。这种编译过程最终是一个很复杂,并且需要花费很多时间来分析过程。
什么是口译员?
我们都对编译的概念有一个满意的理解。口译员的条件是不一样的。解释器是一种计算机程序,它将每个高级程序语句转换为机器级别的代码。这包括源代码、预编译代码和脚本。在程序运行时,解释器将代码转换为机器级别的代码。
与编译器不同,解释器逐行转换代码,因此与编译器相比,查找错误相对容易。解释器允许在程序执行时对其进行计算和修改。与编译器相比,执行程序的时间相对较慢。Perl、Ruby、Python使用解释器。
现在,我们几乎清楚了编译器和口译员之间的差异。
作者
shraddha logume
瑞典SVKM的杜勒理工学院