语言层

哈Ha!

我提请您注意罗伯特·C·马丁(鲍勃叔叔)的文章“ Language Layers ”的翻译。

图片

我花时间玩1969年的旧版Lunar Lander游戏。 它是由高中生吉姆·斯托尔(Jim Storer)撰写的。 他在FOCAL的PDP-8上写了它。 该程序如下所示:

图片

这是FOCAL的源代码:

图片

吉姆·斯托克(Jim Storer)是一位相当有才华的高中生。 看一下这段代码。 他在那里有泰勒有趣的表情。

通常,我进行二进制搜索来确定K的值,当串联使用K时,理想情况下将使该船着陆。 因此,我更改了程序,使其仅使用一个值,然后多次应用该程序,直到船着陆或坠毁。 在撰写本文时,我知道答案在76.40625和76.4453125之间,我将尝试76.4257813。 我开始认为在找到答案之前我会用光时间。

同时,我想到我在Lua上为iPad编写的PDP-8仿真器上运行了该程序。

好吧,让我们考虑一下。

  • iPad具有A8X芯片,三个内核以GHz左右的频率运行。
  • Lua用C编写并编译为A8X。
  • 我的PDP8仿真器是使用Lua中的“两个生命”部分的CODEA软件包编写的。
  • FOCAL是在1960年代后期写在PDP8上的。
  • Lunar Lander是用FOCAL撰写的。

这些是A8X,C,Lua,PDP8和FOCAL。 这是五种不同的语言。 五个不同的机制来告诉机器做什么; 它们都堆叠在一起!

这是什么 为什么会有那么多语言? 实际上,忘记了iPad,PDP-8,C,Lua和其他所有东西。 为什么会有那么多语言?

##为什么有这么多语言?

想想看! 您可以命名几种编程语言? 在这里,让我给您一个简短的清单:

  • 福特兰
  • 阿尔高
  • 科宝
  • 斯诺博
  • Lisp
  • pl
  • ç
  • 西穆拉
  • 小话
  • 艾菲尔
  • C ++
  • 爪哇
  • C#
  • 巨蟒
  • 红宝石
  • LOGO
  • 鲁阿
  • 基本的
  • PL / 1
  • JAVASCRIPT
  • 去吧
  • DART
  • 序言
  • 第四
  • 斯威夫特
  • ML
  • 奥卡姆
  • OCAML
  • 阿达
  • Erlang
  • 长生不老药
  • 焦点

当然,您可以想到我未提及的其他人。 问题是,为什么会有那么多? 这个问题确实只有一个答案。 之所以这么多计算机语言,是因为:

我们不喜欢他们。

好吧,也许这太强烈了。 也许我应该说:
我们在好莱坞。
我们在红杉。
我们越过海洋寻找黄金密码。
我们疯了
这是一条好线。
这使我们寻找黄金代码。

而且我们正在变老。
好吧,也许我应该为自己说话...您是否只是想对尼尔·杨大喊大叫,以便他停止抱怨,找到一些好姑娘并与她同住? 您是否不想告诉他,寻求金心的想法没有用? 告诉我,如果他找到他,他将如何处理?

如果找到了完美的语言,我们将如何处理呢?
我们创建了PDP-8和FOCAL模拟器来播放由一名高中生在1969年编写的“ Lunar Lander”!
这就是我的想法。

处理它。 停止搜索。 没有完美的语言。 我们到处搜寻。 我们在上面和下面看。 我们从里到外看。
我们从双方的角度看待语言。
由内而外
而且仍然如此。
我们记得这些是语言上的错觉。

我们真的不懂任何语言...
...绝对。
是的,今天是不寻常的一天。

但是,最重要的是:
我们不需要另一种语言。
我们不需要知道回家的路。
我们想要的只是超越生活。
的SQL
是的,奇怪的一天。

因此,有一个想法。 也许我们需要停止创建新语言,而冷静下来,选择一两种非常好的语言。 它将使生活变得更加轻松,对吗?

而且,如果您有兴趣,76.43844461可为您提供2.23 MPH的不错的配合。

Source: https://habr.com/ru/post/zh-CN476644/


All Articles