盘点世界上最奇怪的6种编程语言
當世界正朝著編程語言更易于使用和學習的方向發(fā)展時,有一群富有創(chuàng)造力的、喜歡擺弄抽象概念的人創(chuàng)造了一些奇怪的編程語言。它們顯然違背了一般原則,只是為了好玩。
>>>>
這些編程語言讓我知道,不是世界上的每一件事都必須有用,也不是我們個人做的每一件事都應該有用,希望你覺得這是篇有趣的文章。
以下是這 6 種有史以來最怪異、最不切實際的語言。
??1./// ???
這是谷歌上最難搜索的語言之一,絕對是我的最愛。/// 是一種極簡主義語言,它只包含一個操作——/source/replacement/形式的字符串替換。這種語言非常有限,但是一些聰明的程序員能夠將字符串替換操作轉換為完全可以工作的程序,循環(huán)并輸出數(shù)據(jù)。這是一個簡單的“Hello, world!”程序:
/ world! world!/Hello,/ world! world! world!甚至還有一個用 /// 編寫的復雜程序。以下是斐波那契序列的實現(xiàn)代碼:
/!/\/.\\0\/,\\,0,\\,1\/\/.\\1\/,\\,0\/\/,\\,\/.\/\/+\\+\/=\\=.\\1-\/\/=\\=\/+\\+\//!!!!!!!!!/.///+\+///-/\\\///0/1//1/*/++.12.Glass
Glass 是由 Gregor Richards 開發(fā)的一種深奧的編程語言。它將非常不直觀的后綴表示法與重量級的面向對象結合在一起,需要對主堆棧及面向對象結構做大量的處理。其他語言沒有這樣實現(xiàn)的,這使得它非常獨特。
下面是“99 瓶啤酒”程序的示例代碼:
{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 不僅是語言的名稱,還是語言中唯一允許的關鍵字!重復次數(shù)和行數(shù)決定了所要執(zhí)行的操作碼。下面是一個示例程序。你能猜到它的作用嗎?
雖然代碼很多,但它只是打印“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 的二維通用編程語言。
它是一種二維編程語言。代碼放在固定大小的代碼區(qū)里,代碼區(qū)中的每個單元格都可以保存代碼或數(shù)據(jù),程序可以用代碼或數(shù)據(jù)替換其中的任何一個單元格。
解釋器從左上角單元格開始,不斷向右執(zhí)行。你可以用特定的方向指令來控制解釋器的方向。例如,下面是一個無限循環(huán):
>v ^<下面是一個“Hello, world!”:
0"!dlroW ,olleH">:#,_@階乘也很簡單:
&>:1-:v v *_$.@ ^ _$>\:^?5.Piet ?
Piet 是一種編程語言,使用這種語言編寫的程序看起來像是抽象畫的位圖。這種語言是以彼埃·蒙德里安(Piet Mondrian)的名字命名的。Piet 程序的基本構建塊是色塊,它支持 20 種不同的顏色,有一些實現(xiàn)還支持更多的顏色。編譯是由一個“指針”引導的,它在圖像周圍移動,從一個連續(xù)的彩色區(qū)域移動到下一個彩色區(qū)域。這里提供了多個實例。
使用 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 bravehero 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 Romeoand 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
—THE END—
作者 | Manish Jain
譯者 | 平川
文章推薦
?這位85后清華博士,擬任縣委書記!
?哈佛教授對博士生的8個忠告:步入社會前,最重要是“娶一個好女孩”
?被認為是世界史上50個最偉大的發(fā)明有哪些?
?公式之美:打通復雜思維的任督二脈
?年少惡習累累,成年用語言騙全世界, 用心理學撩妹, 最后被總理接見
?100 個最偉大的數(shù)學定理,你知多少?
總結
以上是生活随笔為你收集整理的盘点世界上最奇怪的6种编程语言的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 平时的鸿星尔克VS开挂后的鸿星尔克
- 下一篇: 关于大学老师,我们常有的6种误解!