十大另類程式語言(上)

2021-05-10 08:25:11 字數 2750 閱讀 3395

10. lolcode語言http://lolcode.com/

國外流行一種lolcat,經常出現在論壇的頭像和簽名圖裡。lolcat裡有乙隻很乖的小動物(通常是小貓),旁邊寫幾句很可愛的話(比如故意的語法錯誤、拼寫錯誤、近似發音或者網路縮略語)。很多web 2.0的宕機頁面就是一張lolcat。lolcode就是用這種可愛的貓貓語言來寫程式。lolcode的**通俗易懂,寫起來非常可愛,小mm一定會喜歡。比如看看下面這段**:

hai

can has stdio?

i has a var

gimmeh var

iz var bigger than 10?

yarly

btw this is true

visible "big number!"

nowai

btw this is false

visible "little number!"

kthx

kthxbye

brain****語言有很多擴充套件。用不同的單詞來代替這8個符號可以得到更多好玩的程式語言,有一些語言竟是把brain****程式編碼成或**作為程式**。

8. malbolge語言http://www.lscheffer.com/malbolge.shtml

malbolge是最早的乙個以**醜陋為目標而設計出的程式語言,你幾乎不可能讀懂malbolge的**。它共有8條指令,所有運算都基於3進製,控制程式流的唯一指令是無條件跳轉。它的hello world程式如下:

(=

7. whitespace語言http://compsoc.dur.ac.uk/whitespace/

很多語言在編譯時都會自動忽略空格、換行和tab,而whitespace語言正好相反,這個語言的有效字元只有三個(就是前面提到的三個空白符號),其它字元一律當作注釋處理。這個語言對於機密工作者尤其有用,你可以把乙個完整的whitespace程式插入到一篇普通的文章中,誰也不會知道這裡面竟然隱藏了乙個機密**。whitespace也可以防止別人列印出源**盜走。whitespace原始碼的擴充套件名為.ws,這裡是乙個whitespace的hello world程式。我的blog裡也曾經介紹過whitespace。

6. befunge語言http://quadium.net/funge/spec98.html

befunge的**是二維的。它用 < > v ^ 這四個符號來控制乙個指標在**中移動,指標經過乙個字元或數字則把它壓入乙個棧,四則運算符號的功能就是彈出棧頂兩個元素進行計算後把結果壓回去。用 _ 和 | 來表示有條件的方向選擇:當棧頂元素為0時向右(上)走,否則向左(下)走。& 和 ~ 分別用於讀入數字或字元並壓入棧,句號和逗號分別表示將棧頂元素作為整數或字元輸出。最後以乙個@符號表示程式結束。befunge**的注釋不需要任何符號標明,你可以把注釋寫在程式的任何地方,只要執行時指標不會經過它就行了。你甚至可以把注釋寫在程式正中間,然後寫**時繞開注釋寫成一圈。befunge的hello world程式如下:

v

>v"hello world!"0<

,:^_25*,@

看乙個複雜的例子。我找了乙個算圓周率的befunge程式,看起來非常壯觀。

aa*          v                  +------------------------+

vp*9920p*9930

>:09a*pa*3/1+19a*p09a*g:09b*v   |                        |

v_@# g*b90 p*b910        < p

>19a*g:+1-29b*p19a*g::09v       +------------------------+

v*a90g*b90*g*b91: _v#p*9<

>g-#v_ 2a*+/$  v  :$

>/1-aa*ga*+v  p

v1:/g*b92p*991:

>9b*p29b*g*199*g/v9

v*b92p*aa-1g*990-<9

>g2-29b*p099*g1-:0^

v -9p*b92:%ag*991  <

>#v_ 299*g1+299*p>       ^

>09b*g:#v_$v

v93p*b90-1<

>9*g199*ga/+.v

v:g*992 09b*g:#v_v      1

vp*b90-1    < $      g

>199*g9`#v_'9,v      *

>'0, >' ,299^

通常認為befunge是第乙個基於「二維控制流」的語言,後來衍生出的一大批類似的語言都是受的befunge影響。例如pingpong語言就是把befunge的四種箭頭符號換成正反斜槓,控制指標移動方向90度旋轉,起乙個**的作用。

matrix67收集整理

轉貼請註明出處

十大程式設計演算法(1)

演算法一 快速排序演算法 快速排序是由東尼 霍爾所發展的一種排序演算法。在平均狀況下,排序 n 個專案要 n log n 次比較。在最壞狀況下則需要 n2 次比較,但這種狀況並不常見。事實上,快速排序通常明顯比其他 n log n 演算法更快,因為它的內部 inner loop 可以在大部分的架構上...

C語言十大簡單程式設計複習題

第一題 輸入一行字元,分別統計出其中英文本母 空格 數字 其它字元的個數!利用while語句。include stdio.h main char c int letters 0,space 0,digit 0,others 0 printf please input some characters ...

python十大語法 python十大易錯語法

1.for else 不是 if 和 else 才是原配嗎?for 和 else 也是一對,而且是合法的。for i in 1,2,3,4 print i else print i,我是else 結果 4 我是else 如果在 for 和 else 之間 迴圈體內 有第三者 if 插足,也不會影響 ...