2

我有这个疑问有一段时间了。我知道当我们写一个 C/C++ 程序时,它首先被编译成汇编语言(经过许多步骤),然后被转换成机器语言,最后在机器上执行。用 HTML 编写的代码如何最终转换为机器语言?这是程序:HTML由浏览器解析(不知道如何),浏览器最终将其转换为机器语言(通过使用一些内置编译器?)。任何人都可以对此有所了解吗?谢谢

4

5 回答 5

2

解析 HTML 并创建表示 HTML 文档的内存数据结构。然后浏览器遍历该数据结构并将其呈现在屏幕上。HTML 被视为数据,不会以应用程序源文本的执行方式执行。

于 2013-06-10T18:54:28.313 回答
1

HTML 被解释,而不是翻译成机器代码。浏览器解释标签并知道如何处理它们。它执行必要的操作:格式化一些文本、加载图像等。

您可以想象自己按照食谱进行操作。您阅读说明,然后自己执行必要的操作,但配方永远不会自己做任何事情。这与 C 或 C++ 等语言不同,其中代码实际上被翻译成机器可以直接执行的代码。

于 2013-06-10T18:52:50.340 回答
1

HTML 不编译成机器语言,因为它不执行指令。

HTML 文件没有被编译,它由浏览器读取,然后浏览器将所描述的元素绘制到屏幕上,从而生成浏览器使用的 HTML 数据然后编码。

例如,假设您有一个 C++ 应用程序,它读取一个文本文件,然后在屏幕上绘制许多形状。假设文本文件看起来像这样:

Draw Red Circle
Draw Green Box
Draw Yellow Box

您的应用程序将读取此文件,然后在屏幕上绘制形状。这与 HTML 的工作方式非常相似,只是 HTML 更复杂。

于 2013-06-10T19:00:19.987 回答
1

它不是。HTML 不是一种编程语言,它被称为超文本标记语言是有原因的。它由浏览器解释(这就是为什么同一页面有时表现不同的原因)。

于 2013-06-10T18:55:25.603 回答
0

HTML 不会转换为您所想的意义上的“机器语言”(当您将其与 C/C++ 进行比较时)。任何程序都可以解析 HTML。该程序如何处理它完全取决于该程序的作者。对于已编译的浏览器,它会查看 HTML 并对其进行解析并以某种方式对其进行操作。显然,一切都在处理器中作为内存中的字节运行,因此,在这方面,它最终最终成为字节码,但同样,这与“编译”非常不同。

语义上的主要区别在于,在编译程序时,字节码是处理器执行的实际指令。而这里发生的情况是,HTML 数据只是被视为解析器程序读取的 ascii 字节,然后以一种或另一种方式处理。它将以相同的方式处理一段书面文本。该信息并没有告诉处理器直接做任何事情。它是中间层的指令,即读取它们的程序(同样,在您的情况下,浏览器)。

于 2013-06-10T18:54:27.750 回答