gpt4 book ai didi

compiler-construction - CPU 能理解编程语言吗?

转载 作者:行者123 更新时间:2023-12-04 08:39:48 25 4
gpt4 key购买 nike

编程书籍有时会指出 CPU 不理解 C++ 语言(或任何高级编程语言)。所有的 C++ 语句都必须先翻译成机器码,然后才能执行。但是谁来翻译?

哦,这并不神秘,他们说;翻译是由编译器完成的——它本身就是一个计算机程序。但在那种情况下,计算机正在进行翻译。

在我看来,这是一个无法解决的悖论。 CPU(计算机心脏的“大脑”)一个字都不懂 C++,却在 C++ 和它自己的内部语言之间进行翻译。这不是矛盾吗?

最佳答案

大部分答案是这样的:C++ 源代码(或任何高级编程语言)存储在文本文件中,就像您可以存储一篇文章或备忘录一样。但是文本字符以数字形式存储。因此,当编译器处理这些数据时,它正在执行另一种形式的数字运算、评估数据并根据精确规则做出决策。

如果这不能解决问题,请想象一下:您的任务是阅读一个懂日语但不懂英语的人的来信。与此同时,你懂英语,但不懂日语。

但是假设您有一本说明书,它告诉您如何将日语字符翻译成对应的英文字符。说明书本身是用英文编写的,因此您使用它没有问题。

因此,即使您不懂日语,也可以通过仔细按照说明翻译您想要的所有日语。

这就是计算机程序的本质:CPU 读取的说明书。计算机程序是一种惰性的东西——一系列指令和数据——但计算机内部的“知识”来自它的程序。程序使计算机能够做各种聪明的事情——包括翻译包含 C++ 的文本文件。

编译器当然是一个非常特殊的程序,但它所做的并不奇怪或不可能。正如所描述的,作为计算机程序,它是一本“说明书”。它告诉如何做的是读取包含 C++ 源代码的文本文件并输出另一条指令
book:此输出是可执行形式的 C++ 程序。

最初的编译器必须用机器代码编写。后来,旧的编译器可以用来编写新的编译器……因此,通过引导过程,即使是熟练的程序员也可以越来越少地依赖编写机器代码。

关于compiler-construction - CPU 能理解编程语言吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11794324/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com