最奇怪的編程語言

最奇怪的編程語言

第一次遇到這些語言時,我下意識覺得有些程序員可能工作不飽和。其實這些語言中有一些是為了特定目的而創建的,另一些則是在於挑戰和娛樂。總之,非常羨慕這些又聰明又有時間的人了!我們來看看這些編程語言有多奇怪 。

Brainfuck

Brainfuck是一種極小化的程序語言,它是由Urban Müller在1993年創造的。由於fuck在英語中是髒話,這種語言有時被稱為Brainf*ckBrainf***,或被簡稱為BF。,目標是為Amiga OS 2.0創建一個圖靈完備的語言,他可以為此編寫有史以來最小的編譯器。他的編譯器大小為240字節。(雖然他後來對此進行了改進 - 他曾一度告訴我他已經設法將它降到200字節以下。)

Brainfuck程序有一個隱含的字節指針,稱為“指針”,它可以在30000字節的數組中自由移動,最初都設置為零。指針本身被初始化為指向此數組的開頭。

Brainfuck編程語言由八個命令組成,每個命令都表示為一個字符。

  • > 增加指針。
  • < 減少指針。
  • + 遞增指針處的字節。
  • - 減少指針處的字節。
  • 。 輸出指針處的字節。
  • , 輸入一個字節並將其存儲在指針的字節中。
  • [ 如果指針處的字節為零,則跳過匹配]。
  • ] 向後跳轉到匹配[ 除非指針處的字節為零。

Brainfuck命令的語義也可以用C語言簡潔地表達,如下所示(假設p先前已被定義為char *):

  • > 可以轉變為++p;
  • < 可以轉變為--p;
  • + 可以轉變為++*p;
  • - 可以轉變為--*p;
  • . 可以轉變為putchar(*p);
  • , 可以轉變為*p = getchar();
  • [ 可以轉變為while (*p) {
  • ] 可以轉變為}

下面來瞅瞅最簡單的Hello world, 你能看懂嗎?

最奇怪的編程語言

最奇怪的編程語言

Ook!

OOK!是一種為紅毛猩猩設計的編程語言。OOK!與眾所周知的深奧語言BrainF ***基本上是同構的 ,但語法元素更少。也不多說了,來看看Hello world

最奇怪的編程語言

最奇怪的編程語言

reMorse

reMorse是一種看似莫爾斯電碼的語言。這種簡單而富有挑戰性的語言很容易讓我們聯想到潛艇和電報。 這種語言還是挺複雜的。 比如以下的HelloWorld例子都可以看出,連作者都懶得寫完 Hello World 的代碼,你就知道 reMorse 是一個多麻煩的語言了:

最奇怪的編程語言

Malbolge

這門編程語言絕了,根據牛的叫聲發明,寫代碼時學牛“哞。在設計編程語言時,追求易於理解,是絕大部分設計師的追求。可是,偏偏有人反其道行之。Malbolge就是其中的佼佼者。它追求的,就是儘量讓你看不懂,最好能把你看懵圈了。使用Malbolge寫“hello world”程序,代碼是這個樣子的:

最奇怪的編程語言

cow語言

這是一門神奇的語言,就好像“兩隻老虎,兩隻老虎,跑得快”一樣,沒人能正常的讀出這個歌詞。當你在編寫cow代碼時,你的內心,就像一頭牛一個,哞哞哞叫個不停。因為,cow語言也是模仿牛的叫聲編程的,寫hello world程序是這個樣子的:

最奇怪的編程語言

INTERCAI

1972年,為了諷刺其他編程語言,唐·伍茲和詹姆斯·M.里昂兩個普林斯頓大學的學生,發明了INTERCAL語言,這門語言不僅諷刺了當時的其他編程語言,而且對20世紀60年代擬定的語言結構和註釋進行了冷嘲熱諷。用INTERCAI寫“hello world”,是這個樣子的:

最奇怪的編程語言

最奇怪的編程語言

Whitespace

十分不幸,這種編程語言所做的正如其名:Whitespace 程序是用空格(whitespace)編寫的。 Whitespace 官網上有對該語言使用方式的詳細描述。

大多數現代編程語言並不考慮空格字符(空格,製表符以及換行符),忽略它們,就好像它們不存在一樣。 我們認為,這對這些十分友好的字符成員十分不公正。是否因為它們是隱形的,就應該被忽略呢? Whitespace 就是一種想要糾正這種不公平的編程語言。在 Whitespace 語言裡,任何非空白字符都是被忽略的,只能使用空格、製表符和換行符來編寫程序。以下是用 Whitespace 編寫的 Hello World :

最奇怪的編程語言

Shakespeare

莎士比亞(Shakespeare)正如其名,是以偉大劇作家莎士比亞的作品為基礎的編程語言。在莎士比亞語言中,每個程序都有一個標題、幕、場景和角色,用來組合成精彩的源代碼,讓它們讀起來很有趣。用莎士比亞語言編寫的 “Hello World”是這樣子的 :

最奇怪的編程語言

Piet

欣賞藝術的人一定會喜歡 Piet 這門編程語言。受到抽象藝術家彼埃·蒙德里安(Piet Mondrian)的啟發,Piet 是一種將編程轉換成抽象幾何繪畫的語言。程序由20種不同的顏色組成,然後由編譯器根據十六進制值讀取運行。Piet編寫的HelloWorld例子是這樣子的:

最奇怪的編程語言

Asciidots

Asciidots 語言力求看起來像藝術,以下是幾個 Asciidots 示例程序,是不是挺藝術的。

最奇怪的編程語言

Omgrofl

現在社交網絡上很多簡寫詞彙,比如 lol, omg, brb, wtf 之類的。所以有人就覺得用這些互聯網縮略詞作為命令是件很有趣的事,於是這門語言誕生了。一個典型的 Omgrofl 程序看起來就像十幾歲青少年間的對話,所有的變量都是 lol, lool, loool 等形式。以下是Hello World的 Omgrofl 語言版本:

最奇怪的編程語言

GolfScript

這門語言旨在實現簡單易寫,對於複雜的堆棧操作很有用。

最奇怪的編程語言

JSFuck

這門語言有點厲害了,代碼使用的字符集只有六個。它是一種弱類型編程語言,允許評估任何類型的表達式。而且由於它是 JavaScript 的一個子集,因此可以在 JavaScript 的引擎上運行。以下是我在Nodejs上運行的console.log(1)的JSFuck代碼:

最奇怪的編程語言

Velato

Velato 使用 MIDI 文件作為源代碼,音樂的模式決定程序命令。以下是Hello World的 Velato 語言版本:

最奇怪的編程語言

Whenever

沒有哪個程序員不喜歡這麼一種語言,當你給出計算機一個指令時,計算機就會根據你的要求去執行。但是 Whenever 似乎並不是這樣的,它更像是你的寵物貓,它的代碼並不是順序執行的。它們更像是一種待辦事項清單,它的設計原則是:

  • 代碼總會被執行,但執行順序和指定順序無關
  • 不需要變量更不需要數據結構

好奇這種語言究竟有什麼用?

Grass

Grass 是一種函數式編程語言,只使用字符「W」「w」和「v」。因此,Grass 中的程序被認為看起來像「草」的 ASCII 藝術。以下是一個在 Grass 中打印「W」的程序:

最奇怪的編程語言

"


分享到:


相關文章: