極端反人類的編程語言會有哪些特徵?


Malbolge

每條指令執行完,PC 所在的內存都會被改掉。

設計語言的 Ben Olmstead 沒有寫出過一個 Malbolge 程序。

兩年後它的 Hello World 才被找到(沒錯,找到,用 Beam Search 搜出來的)。

Snowflake - Esolang

程序解釋器每次運行後都會變化,兩者會互相靠近,「優化」成對面「需要」的樣子。

Muriel - Esolang

惟一的控制流是載入一個字元串然後運行它。所有的循環都必須寫成 Quine。

Underload - Esolang

一個函數式語言,惟一的控制流是解釋棧頂。

Jot - Esolang

基於組合子邏輯的極小語言(其實很多組合子邏輯下的語言都非常小,很適合拿來炫耀「我寫了個解釋器」)。這個語言可以看作哥德爾編碼的一個例子。


寫幾個例子,有一些已經有人答過了不過我還是把它放上來吧。

1.Brainfuck

「Hello World」 example:

++++++++++[&>+++++++&>++++++++++&>+++&>+&<&<&<&<-]&>++.&>+.+++++++

..+++.&>++.&<&<+++++++++++++++.&>.+++.------.--------.&>+.&>.

2.Piet

「Hello World」 example:

3.INTERCAL

「Hello World」 example:

DO ,1 &<-#13

PLEASE DO ,1 SUB #1 &<-#238

DO ,1 SUB #2 &<-#108

DO ,1 SUB #3 &<-#112

DO ,1 SUB #4 &<-#0

DO ,1 SUB #5 &<-#64

DO ,1 SUB #6 &<-#194

DO ,1 SUB #7 &<-#48

PLEASE DO ,1 SUB #8 &<-#22

DO ,1 SUB #9 &<-#248

DO ,1 SUB #10 &<-#168

DO ,1 SUB #11 &<-#24

DO ,1 SUB #12 &<-#16

DO ,1 SUB #13 &<-#162

PLEASE READ OUT ,1

PLEASE GIVE UP

4.Malbolge

「Hello World」 example:

("%:9]!~}z2Vxwv-,POqponl$Hjig%eB@@&>}=&`CB]V?TxuVtT`Rpo3NlF.Jh++FdbCBA@?]!~4XzyTT43Qsqq(Lnmkj"Fhg${z@

5.Ook!

「Hello World」 example:

Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.

Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.

Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook.

Ook! Ook. Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.

Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook?

Ook! Ook! Ook? Ook! Ook? Ook. Ook. Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook.

Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook. Ook. Ook. Ook. Ook.

Ook. Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook.

Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook.

Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook! Ook.

Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.

Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook.

Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.

Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook.

Ook? Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook.

Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook.

Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook!

Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook. Ook! Ook.

轉載自13種最為荒謬的編程語言-CSDN.NET


whitespace,這語言比brainfuck反人類多了。2003年愚人節發布,只有三個字元:空格,tab和換行,其中數據表示和指令表示主要靠空格和tab,換行絕大多數情況下只是作為結尾分隔符。下面是用whitespace寫就的hello world,引用自wikipedia:

S S S T S S T S S S L
T L
S S S S S T T S S T S T L
T L
S S S S S T T S T T S S L
T L
S S S S S T T S T T S S L
T L
S S S S S T T S T T T T L
T L
S S S S S T S T T S S L
T L
S S S S S T S S S S S L
T L
S S S S S T T T S T T T L
T L
S S S S S T T S T T T T L
T L
S S S S S T T T S S T S L
T L
S S S S S T T S T T S S L
T L
S S S S S T T S S T S S L
T L
S S S S S T S S S S T L
T L
S S L
L
L

你想敵軍偷到了你方的代碼,列印出來一看,卧槽一點兒不費墨誒,看著茫茫一片白陷入了深深的思考,拿火烤也烤不出字兒來,心想還特么自帶保密功能誒,真帶勁。


Piet

用顏色代替語句,就好像在藝術創作

https://en.wikipedia.org/wiki/Esoteric_programming_language#

hello-world program

判斷一個數是否為素數//最後,祝大家新年快樂,2017多點亮程序員星的技能樹哦!


注釋像html一樣的必須反人類!

&


BF: https://zh.wikipedia.org/wiki/Brainfuck


很多人認為它才是最好的語言


我只知道one instruction set computer很變態。


http://eev.ee/blog/2012/04/09/php-a-fractal-of-bad-design/ PHP: a fractal of bad design


題主隨便用彙編語言做個大數相乘不就知道了?這已經很簡單了。


SQL


這個我必須強推 Verilog!2333333

每個always代碼塊都是在真正的並行處理喲~

吶,明白了自己弱小的人類不得不一個always塊只輸出一個變數了~

不然的話,bug菌可能就會吞噬掉你的腦子喲~~

[Verilog:顫抖吧!泥萌這些魚唇的人類!]

by 考試前兩天才開始複習模擬CMOS現在明白自己做了大死的lucyyang


看到前面有大神提到

Malbolge

我在這裡補充一下

先來一段代碼

bCBA@?>=<;:9876543210/.-,+*)(#x27;amp;%$#quot;!~}|{zyxwvutsrqponmlkjihgfedcba#x60;_^][ZYXWVUTSRQPONMLKJIHGFEDCBA@9>=<;:9876543210/.#x27;K+*)i#x27;amp;}C{quot;!~w==<;4X87w5.R210p.-,+*)(!E%$#quot;!~}|{zyxwvutsrqponmlkjihgfedcbD!_^][ZYXWVUTSRQPO1lY

看不懂吧

我也看不懂

其實這一段大致等於

print ("hello world")

反人類吧

贈品:http://www.matthias-ernst.eu/malbolge/debugger.html

在線編譯器

TM還有在線的編譯器!?

這才是反人類吧


通過輸入人類語言,能直接理解甲方的需求,生成正確高效的程序。

將來只有一種程序員,就是開發編程程序的程序員。

就如同開車,30年前開車是一項技能,怎麼用巧勁打輪,怎麼點剎防失控,怎麼判斷倒車空間等等等等,要上兩年技術學校的。


極端反人類的編程語言會有哪些特徵

特徵1. 用各種奇怪的字元作為語言的主要元素

比如

只用空白字元或以空白字元為主 (@MrRoach 提到的whitespace)

各種奇怪的符號[].,+-&<&>( @夜無痕 提到的brainfuck)

甚至是非ascii的符號(APL)

以 $ 符號為主 (php) (劃掉

再舉個例子:l33t sp34k(http://www.oocities.org/electrodruiduk/l33t.htm)

關鍵字是單詞里的數字相加,比如l33t(3+3=6: 內存指針向後移動)

它的Hello world長這樣

Gr34t l33tN3$$?
M3h...
iT 41n"t s0 7rIckY.

l33t sP33k is U8er keWl 4nD eA5y wehn u 7hink 1t tHr0uGh.
1f u w4nn4be UB3R-l33t u d3f1n1t3lY w4nt in 0n a b4d4sS h4xX0r1ng s1tE!!! ;p
w4r3Z c0ll3cT10n2 r 7eh l3Et3r!

Qu4k3 cL4nS r 7eh bE5t tH1ng 1n teh 3nTIr3 w0rlD!!!
g4m3s wh3r3 u g3t to 5h00t ppl r 70tAl1_y w1cK1d!!
I"M teh fr4GM4stEr aN I"lL t0t41_1Ly wIpE teh phr34k1ng fL00r ***j3d1 5tYlE*** wItH y0uR h1dE!!!! L0L0L0L!
t3lEphR4gG1nG l4m3rs wit mY m8tes r34lLy k1kK$ A$$

l33t hAxX0r$ CrE4t3 u8er- k3wL 5tUff lIkE n34t pR0gR4mm1nG lAnguidGe$...
s0m3tIm3$ teh l4nGu4gES l00k jUst l1k3 rE41_ 0neS 7o mAkE ppl Th1nk th3y"r3 ju$t n0rMal lEE7 5pEEk but th3y"re 5ecRetLy c0dE!!!!
n080DY unDer5tAnD$ l33t SpEaK 4p4rT fr0m j3d1!!!!!
50mE kId 0n A me$$4gEb04rD m1ghT 8E a r0xX0r1nG hAxX0r wH0 w4nT2 t0 bR34k 5tuFf, 0r mAyb3 ju5t sh0w 7eh wAy5 l33t ppl cAn 8E m0re lIkE y0d4!!! hE i5 teh u8ER!!!!
1t m1ght 8E 5omE v1rus 0r a Pl4ySt4tI0n ch34t c0dE.
1t 3v3n MiTe jUs7 s4y "H3LL0 W0RLD!!!" u ju5t cAn"T gu3s5.
tH3r3"s n3v3r anY p0iNt l00KiNg sC3pT1c4l c0s th4t, be1_1Ev3 iT 0r n0t, 1s whAt th1s 1s!!!!!

5uxX0r5!!!L0L0L0L0L!!!!!!!

特徵2. 奇葩的控制流

比如控制流只用 goto (brainfuck)

奇怪的組合邏輯(Unlambda)

只用 callback (nodejs)(劃掉

再舉個例子(movfuscator xoreaxeaxeax/movfuscator)

嚴格說其實是個混淆工具,但是也能理解成只有 MOV 指令的彙編


打孔紙帶,打孔卡,接線編程


比如彙編語言,特徵就是和人類自然語語言相差很遠


我投lua一票。


居然有人提verilog……

朋友你聽說過vhdl么


甲方語言:

"先做一個淘寶吧"

「色調既要正式又要活潑」

「等等,我覺得還是之前的版本好」


推薦閱讀:

電腦重新啟動是怎麼實現的?
醫學生該如何學習編程?
Windows 傳統桌面圖標為什麼是豎排而不橫排?有什麼講究嗎?
嚴格按照品牌台式機的配置單,用完全相同的硬體組裝出來的台式機能否具有品牌機的穩定性(安裝正版系統)?
為什麼主流的顯示器不用USB介面?

TAG:編程語言 | 計算機 |