奇怪的计算机语言,世界上6种奇怪的编程语言

👇点击关注公众号👇

第一时间获取人工智能干货内容

format,png作者 | Manish Jain译者 | 平川策划 | 凌敏当世界正朝着编程语言更易于使用和学习的方向发展时,有一群富有创造力的、喜欢摆弄抽象概念的人创造了一些奇怪的编程语言。它们显然违背了一般原则,只是为了好玩。

本文最初发布于 Level Up Coding 博客,经原作者授权由 InfoQ 中文站翻译并分享。

这些编程语言让我知道,不是世界上的每一件事都必须有用,也不是我们个人做的每一件事都应该有用,希望你觉得这是篇有趣的文章。

以下是这 6 种有史以来最怪异、最不切实际的语言。1.///

这是谷歌上最难搜索的语言之一,绝对是我的最爱。/// 是一种极简主义语言,它只包含一个操作——/source/replacement/形式的字符串替换。这种语言非常有限,但是一些聪明的程序员能够将字符串替换操作转换为完全可以工作的程序,循环并输出数据。这是一个简单的“Hello, world!”程序:/ world! world!/Hello,/ world! world! world!

甚至还有一个用 /// 编写的复杂程序。以下是斐波那契序列的实现代码:/!/\/.\\0\/,\\,0,\\,1\/\/.\\1\/,\\,0\/\/,\\,\/.\/\/+\\+\/=\\=.\\1-\/\/=\\=\/+\\+\//!!!!!!!!!/.///+\+///-/\\\///0/1//1/*/++.12.Glass

Glass 是由 Gregor Richards 开发的一种深奥的编程语言。它将非常不直观的后缀表示法与重量级的面向对象结合在一起,需要对主堆栈及面向对象结构做大量的处理。其他语言没有这样实现的,这使得它非常独特。

下面是“99 瓶啤酒(https://esolangs.org/wiki/99_bottles_of_beer)”程序的示例代码:{B[b<99>^]}{P[(c__)oO!aA!][poo.?][b(_m)1=,(_x)<0>(_m)*ae.

?=(_y)<1>=/(_x)"No more"oo.?(_x)0=(_y)0=\/(_y)(_m)*o(on).

?(_y)0=\" bottle"oo.?(_x)<1>(_m)*ae.?=/(_x)^(_x)0=\"s"oo.

?]}{C[(c__)oO!aA!sS!pP!][gn*][xn1=,][dnn*<1>as.?=][vn*pb.

?" of beer on the wall,\n"pp.?n*pb.?qe" of beer,\n"pp.?

"Take one down, pass it around\n"pp.?ln*<1>as.?=l*pb.?wu

" of beer on the wall.\n\n"pp.?]}{M[moO!cC!bB!bb.?cx.?fc

g.?=/fcv.?cd.?fcg.?=\]}3.Chicken

Chicken 不仅是语言的名称,还是语言中唯一允许的关键字!重复次数和行数决定了所要执行的操作码。下面是一个示例程序。你能猜到它的作用吗?

虽然代码很多,但它只是打印“Chicken Power!”感兴趣的话,可以在这里(http://web.archive.org/web/20180420010853/http://torso.me/chicken)试一下。chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken

chicken chicken chicken chicken chicken chicken4.Befunge

有趣的事实:Befunge 被认为是第一种基于 ASCII 的二维通用编程语言。

它是一种二维编程语言。代码放在固定大小的代码区里,代码区中的每个单元格都可以保存代码或数据,程序可以用代码或数据替换其中的任何一个单元格。

解释器从左上角单元格开始,不断向右执行。你可以用特定的方向指令来控制解释器的方向。例如,下面是一个无限循环:>v

^<

下面是一个“Hello, world!”:0"!dlroW ,olleH">:#,_@

阶乘也很简单:&>:1-:v v *_$.@

^ _$>\:^5.Piet

Piet 是一种编程语言,使用这种语言编写的程序看起来像是抽象画的位图。这种语言是以彼埃·蒙德里安(Piet Mondrian)的名字命名的。Piet 程序的基本构建块是色块,它支持 20 种不同的颜色,有一些实现还支持更多的颜色。编译是由一个“指针”引导的,它在图像周围移动,从一个连续的彩色区域移动到下一个彩色区域。这里提供了多个实例。

format,png

使用 Piet 编写的“Hello world!”程序6.Shakespeare Programming Language(SPL)

程序开头的角色列表声明了多个堆栈,它们的名字很自然,比如“Romeo”和“Juliet”。这些角色开始相互对话,操纵彼此最上面的值,相互压入和弹出,进行 I/O 操作。角色之间也可以相互提问,以条件语句的形式。总的来说,该编程模型与汇编语言非常相似,但要冗长得多。

下面是一个迷你示例,大致上展示了简化版的 Hello World。The Useless Example Program.

Romeo, a young man with a remarkable patience.

Juliet, a likewise young woman of remarkable grace.

Hamlet, the flatterer of Andersen Insulting A/S.

Act I: Hamlet's insults and flattery.

Scene I: The insulting of Romeo.

[Enter Hamlet and Romeo]Hamlet:

You lying stupid fatherless smelly coward!

You are as stupid as the difference between a rich brave

hero and thyself! Speak your mind!

[Exit Romeo]

Scene II: The praising of Juliet.

[Enter Juliet]

Hamlet:

Thou art as sweet as the sum of the sum of Romeo

and his horse and his black cat! Speak thy mind!

Listen to your heart!

Juliet:

Am I better than the product of a miserable liar and a beautiful flower?

Hamlet:

If so, let us return to szene I.

[Exeunt]

原文链接:

https://levelup.gitconnected.com/6-weirdest-programming-languages-in-the-world-70aae95b709

—— 推 荐 阅 读 ——

【人工智能社群】已经成立,旨在打造真正有价值,能交流,一起学习成长的社群,并且每月送书不断!现备注城市+昵称+研究方向,扫码添加好友后立即进群。

▲长按扫码你在看吗?format,png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值