语言层

嘿哈布尔!

我提请您注意这篇文章的翻译“语言层» 罗伯特·C·马丁(罗伯特·C·马丁)(鲍勃叔叔)。

语言层
我把时间花在玩一款 1969 年的老游戏《Lunar Lander》上。 它是由高中生吉姆·斯托勒(Jim Storer)写的。 他在 FOCAL 的 PDP-8 上写下了它。 该程序如下所示:

语言层

这是 FOCAL 的源代码:

语言层

吉姆·斯托勒是一位相当有才华的高中生。 看看这段代码。 他有一些非常有趣的泰勒表达式。

基本上,我会进行二分搜索来确定 K 的值,如果一致使用该值,将使船完美着陆。 所以我修改了程序,使其只接受一个值,然后多次应用它,直到船着陆或坠毁。 当我写这篇文章时,我知道答案位于 76.40625 和 76.4453125 之间,我将尝试 76.4257813。 我开始觉得在找到答案之前我已经没有时间了。

与此同时,我突然想到我在模拟器上运行了这个程序 PDP-8,他用 Lua 为 iPad 编写了代码。

那么,好吧,让我们考虑一下这个问题。

  • iPad有芯片 A8X,三个核心运行在千兆赫左右。
  • Lua 用 C 编写并编译为 A8X。
  • 我的 PDP8 模拟器是使用 Lua 包编写的 科迪亚 来自《还剩两条命》部分。
  • FOCAL 是在 1960 世纪 8 年代末在 PDPXNUMX 上编写的。
  • Lunar Lander 是用 FOCAL 编写的。

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

这是什么? 为什么有这么多语言? 事实上,忘记 iPad、PDP-8、C、Lua 和其他一切。 为什么有这么多语言?

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

想一想吧! 你能说出多少种编程语言? 在这里,让我给你列一个小清单:

  • 福特兰
  • 阿尔戈
  • COBOL
  • 斯诺博尔
  • LISP
  • BCPL
  • B
  • C
  • 模拟
  • 短暂聊天
  • 埃菲尔
  • C + +中
  • JAVA
  • C#
  • 蟒蛇
  • 红宝石
  • 的LOGO
  • LUA
  • 基本
  • PL/1
  • 爪哇脚本
  • GO
  • DART
  • 序言
  • 向前
  • SWIFT的
  • ML
  • 奥卡姆
  • 奥卡莱
  • ADA
  • 二郎
  • ELIXIR
  • 焦点

当然你还可以想到我没有提到的其他的。 问题是,为什么会有这么多人? 这个问题实际上只能有一个答案。 计算机语言之所以有这么多的原因:

我们不喜欢他们。

好吧,也许这个说法太强烈了。 也许我应该说:

我们在好莱坞。
我们在雷德伍德。
我们漂洋过海寻找黄金密码。
我们疯了
这是一条非常细的线。
这促使我们寻找黄金密码。

我们正在变老。

好吧,也许我应该为自己说话……难道你不想对尼尔·杨大喊大叫,让他停止抱怨,找个漂亮的女孩和她住在一起吗? 你难道不想告诉他,寻找一颗金子般的心是徒劳的吗? 告诉我,如果他找到了,他会怎么处理?

如果我们找到了一种理想的语言,我们会用它做什么?

我们创建了 PDP-8 和 FOCAL 模拟器来玩“Lunar Lander”,这是一位高中生在 1969 年写的!

那就是我所想的。

处理它。 停止搜索。 没有完美的语言。 我们到处寻找。 我们从上面和下面看。 我们进进出出。

我们从双方的角度研究了语言。
内外
无论如何,现在仍然如此。
让我们记住,这些都是语言错觉。

我们真的不懂语言……
……根本没有。

是的,今天是不寻常的一天。

但无论如何,重点是:

我们不需要另一种语言。
我们不需要知道回家的路。
我们想要的只是超越生活。
SQL

是的,奇怪的一天。

所以这是一个想法。 也许我们需要停止创造新的语言,冷静下来,选择一两种真正好的语言。 这会让生活变得更加轻松,不是吗?

而且,如果您想知道的话,76.43844461 可以让您以 2.23 英里每小时的速度着陆。

来源: habr.com

添加评论