誰能想到我們最喜歡的表情符號可以用來設(shè)計新的編程語言?聰明有才華的人已經(jīng)想象并開發(fā)出了成熟的編程語言,我們可以用它來編寫表情符號和表情符號。
這些基于表情符號的語言大多是深奧的編程語言( esoteric programming language),稱為esolang。然而,這些語言相對來說比其他語言更容易理解。
esolang的定義是:
Esolang 不是為普通的軟件開發(fā)目的而設(shè)計的。他們只是是作為一個概念的證明或者就是一個笑話。
如果你想了解世界上最難的語言,你可以看看我的另一篇文章。讓我們看看這五種可以使用表情符號和表情符號來編程的語言。
Emoji
Emoji使用一個預(yù)定義的表情符號列表來生成語言命令,這些表情符號可以作為標(biāo)志,Emoji是一個基于棧的語言。除了表情符號之外,其他所有字符都被視為字符。下面是在 Emoji 打印Hello World! 的代碼片段。
Hello, World!
輸出結(jié)果如下:
這是這個語言的文檔:
: Read until the next and puts that string onto the stack
: Reads until the next and puts that string onto the stack (can be nested, meant for storing functions)
: Prints a value from the stack
: Puts True onto the stack
: Puts False onto the stack
: Inverts a boolean value from the stack
: Adds two numbers from the stack
: Multiplies two numbers from the stack
: Subtracts two numbers from the stack
: Divides two numbers from the stack
: Divides two numbers from the stack, returns the remainder
: Rounds a number to the nearest integer
: Rounds down a number from the stack
: Rounds up a number from the stack
: Converts a number to a hex string
: Converts a string to a number
: Checks if two numbers are equal
: Checks if a number is less than another
: Checks if a number is greater than another
: Takes a boolean from the stack. If false, skips to the next .
: If the last did not skip past stuff, skip to the next .
: Takes two strings from the stack. Runs the first, takes a boolean. If true, runs the second and repeats.
: Duplicates a stack entry
: Converts a character to its character code
: Converts a character code to its character
: Takes two objects, saves the first to a variable identified by the second
: Takes an object, returns the value from the variable by that name
: Returns the length of a string or array from the stack
: Takes a string and two numbers. Returns the substring from the string from the first number (inclusive) to the second number (exclusive).
: Evaluates a string
: Creates an empty array.
: Takes an array and an object. Adds the object to the end of the array. Does not return anything, you'll want to use variables with this.
: Takes an array or string and an index. Returns the value at that index.
: Swaps two elements on the stack.
: Capitalize a string.
: Change a string to lowercase.
Emojicode
Emojicode是一種面向?qū)ο蟪绦蛟O(shè)計語言,我們可以用表情符號來編碼,在 Emojicode,使用表情符號讓編程變得有趣。它是一種強(qiáng)類型編程語言。該語言的作者討厭隨機(jī)空指針異常,因此,在 Emojicode,所有的實例變量都需要初始化,否則就會拋出編譯錯誤。
下面是在 Emojicode 打印Hello World! 的代碼片段。
Hello, World!?
輸出結(jié)果如下:
Emoji-gramming
Emoji-gramming是一個基于表情符號的深奧的編程語言,這種語言總共有25個變量和4個命令,它們都由特定的表情符號表示。表情符號使用心型符號作為常量,例如:
= 0
= 1
= 2
= 4
= 8
麥克風(fēng)()符號表示輸入,揚(yáng)聲器()符號表示打印輸出,好像很有道理的樣子?下面是打印“ Hello,World! ”的代碼片段表情符號:
輸出結(jié)果如下:
Emojicoder
這是一個用特定的表情符號表示命令和參數(shù)的符號系統(tǒng),二進(jìn)制值0和1在 Emojicoder 定義了各自的表情符號。
=0
=1
= 01001000 = H
在 Emojicoders 中有兩個修飾符如下:
: Ascii Character 0-255
: Integer Number 0-255
要打印參數(shù),該語言使用手表情符號()作為輸出命令。每個命令都需要是新的一行。現(xiàn)在,讓我們利用上述知識,在 Emojicoder 打印出Hello,World! 。
//Output H
//Output e
//Output l
//Output l
//Output o
//Output ,
//Output space
//Output w
//Output o
//Output r
//Output l
//Output d
//Output !
輸出結(jié)果如下:
Emotinomicon
Emotinomicon 是由康納 · 奧布萊恩設(shè)計和創(chuàng)造的,不再使用表情符號,而是使用表情字符來進(jìn)行編碼。下面是在 Emotinomicon 打印Hello,World! 的代碼片段。
!dlroW ,olleH???
下面是上面代碼片段的解釋,它可以幫助你嘗試執(zhí)行任何其他字符串,并獲得一些樂趣。
begin quote string
!dlroW ,olleH
end quote string
?open loop
?pops and outputs top of stack as character
?close loop
輸出結(jié)果如下:
Emotifuck
Emotifuck使用Rust編寫,它使用八個表情符號作為命令,根據(jù)語言設(shè)計者的說法,它完全是內(nèi)存安全的。
下面是命令列表和它們的等價符號。
- Move Right (>)
- Move Left (<)
- Decrement (-)[might have been better as output command ;)]
- Increment (+)
- Output (.)
- Input (,)
- Jump Forward ([)
- Jump Backward (])
Hello World! 的代碼如下。
最后,祝你編程愉快,周末快樂!
—————END—————
喜歡本文的朋友,歡迎關(guān)注公眾號 程序員小灰,收看更多精彩內(nèi)容
點個[在看],是對小灰最大的支持!
免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺僅提供信息存儲服務(wù)。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!