编码SEO 101:了解源代码,压缩代码和编译代码周立功网站

参考资料中有很多为初学者编写的代码,但它们通常不会从头开始。在这里,我们将看看初学者在学习代码时会遇到的常见障碍。

您可能知道,源代码几乎总是使用计算机语言“语法”编写的文本文件,这相当于计算机的一组指令。

人类和计算机都能理解的共同语言是数学。如果你一开始不认为数学是一种语言,那么请记住莫尔斯电码使用一种可以很容易地用数学来描述的语法来传输人类语言。

计算机理解数学系统。

为什么一些源文件看起来像疯狂的字符噪声?好的程序员编写的源代码看起来有逻辑组织。它只是通过处理进行了转换。如果你打开的文件不能立即读取,你看到的可能是压缩的数据、二进制代码或通过删除不必要的空白而减少或缩小的源代码。

缩小的源代码

当你使用浏览器的“查看源”特性时,最后一种情况可能是你最常看到的。想想这篇文章和它的文本。想象一下,如果我们删除所有单词之间的空格,它会是什么样子。你可能可以读它,但会有一些麻烦的地方,而且要花更长的时间。空间是非常必要的。缩小过程不会删除必要的空间。

没有空格

最后一段没有空格

如果这句话的文体指南要求使用双空格怎么办?在文章写作中,单词之间的两个空格不是绝对必要的,但它们使人类读者更容易阅读。在这些情况下,为了实现长距离的高效传输,一个缩小进程可以删除一个冗余空间,以减少文件的总大小。

程序员将事情分隔开

双倍行距的文本更容易阅读,计算机程序员使用大量额外的空白正是出于这个原因。计算机源代码比纯文本更难阅读,因此我们使用的空格甚至比双倍行距的文章还要多。例如,空格是程序员构造Python代码的方式。

有时我们在一行中使用2、4或8个空格来模拟制表符,有时我们使用制表符本身。我们使用carriage-return“字符”(carriage-return的概念来自于我们的旧打字机时代)。计算机模拟回车,这允许我们使用’ return ‘字符(或换行)作为空白,以组织我们的代码,使其更容易阅读。

我们如何组织带有空白的代码通常是由某种个人的、传统的或公司需要的逻辑决定的,以便在编译器将我们的指令压缩或翻译成机器码之前,人类可以阅读它们。

这些不同形式的文本阅读起来要困难得多,甚至不可能。当文本被缩小时,您通常可以知道简单的代码在做什么,尽管当额外的空白被删除时,读取会更加困难。然而,当您查看已压缩的文本文件时,它是完全模糊的。

文件压缩

压缩几乎足以作为一种粗糙(不安全)的密码学。压缩算法使用数学公式和表(或人行横道/字典)来替代字符及其在整个原始文本中的位置。

压缩文件(Zip)

压缩文件(Zip)

在解压缩文件时,计算机将该表与生成的公式反向结合使用,以恢复原始文本。

未压缩的压缩文件

查看Zip压缩文件(由Vim解压)

编译源代码

最终,当我们写计算机程序时,我们写的程序需要被CPU处理。当我们编写(客户端)JavaScript时,我们的指令需要被浏览器“解释”,并翻译成机器代码供用户的CPU处理。这就是为什么JavaScript会让您的浏览器崩溃(也是谷歌度量您所编写的脚本的CPU负载的原因)。

已编译的源代码开始时是文本文件。然后,相应的编译器将文本转换为机器码指令,以提高在运行时解释代码的性能。当您打开机器码二进制文件时,您将很难理解其中的任何内容。这是因为它是用于计算机处理的简化代码,并不是我们每个人都应该打开的一种形式。

二进制文件

二进制文件(cat程序的机器码)

总之,有三种方法可以让你看到看起来很神秘的计算机代码噪音:

缩小的源代码。

压缩文件(源代码或其他媒体)。

编译的机器码(二进制或汇编语言)。

在所有这些中,只有汇编语言是计算机程序员可能写的东西。如果你用汇编语言写代码,那么你可能是个魔术师。在一些效果

滚动至顶部