谁能想到我们最喜欢的表情符号可以用来设计新的编程语言?聪明有才华的人已经想象并开发了成熟的编程语言,可以用它来写表情包和表情包。
这些基于表情符号的语言大多是深奥的编程语言( esoteric programming language),称为esolang。然而,这些语言相对来说比其他语言更容易理解。
esolang的定义是:
Esolang 不是为普通的软件开发目的而设计的。他们只是是作为一个概念的证明或者就是一个笑话。
如果你想了解世界上最难的语言,你可以看看我的另一篇文章。让我们看看这五种可以使用表情符号和表情符号来编程的语言。
Emoji
Emoji使用一个预定义的表情符号列表来生成语言命令,这些表情符号可以作为标志,Emoji是一个基于栈的语言。除了表情符号之外,其他所有字符都被视为字符。下面是在 Emoji 打印Hello World! 的代码片段。
Hello, World!➡
输出结果如下:
这是这个语言的文档:
: 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是一种面向对象程序设计语言,我们可以用表情符号来编码,在 Emojicode,使用表情符号让编程变得有趣。它是一种强类型编程语言。该语言的作者讨厌随机空指针异常,因此,在 Emojicode,所有的实例变量都需要初始化,否则就会抛出编译错误。
下面是在 Emojicode 打印Hello World! 的代码片段。
Hello, World!❗️
输出结果如下:
Emoji-gramming
Emoji-gramming是一个基于表情符号的深奥的编程语言,这种语言总共有25个变量和4个命令,它们都由特定的表情符号表示。表情符号使用心型符号作为常量,例如:
= 0
= 1
= 2
= 4
= 8
麦克风()符号表示输入,扬声器()符号表示打印输出,好像很有道理的样子?下面是打印“ Hello,World! ”的代码片段表情符号:
♈
♈
♈
♈
♈
♈
♈
♈
♉
♉
♉
♉
♉
♉
♊
♊
♊
♊
♊
♊
♊
♈
♈
♈
♈
♈
♈
♈
♈
♈
♈
♊
♈
♈
♈
♈
♈
♉
♈
♈
♈
♈
♈
♈
♈
♈
♈
♈
输出结果如下:
Emojicoder
这是一个用特定的表情符号表示命令和参数的符号系统,二进制值0和1在 Emojicoder 定义了各自的表情符号。
=0
=1
= 01001000 = H
在 Emojicoders 中有两个修饰符如下:
: Ascii Character 0-255
: Integer Number 0-255
要打印参数,该语言使用手表情符号()作为输出命令。每个命令都需要是新的一行。现在,让我们利用上述知识,在 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 !
输出结果如下:
Emotinomicon
Emotinomicon 是由康纳 · 奥布莱恩设计和创造的,不再使用表情符号,而是使用表情字符来进行编码。下面是在 Emotinomicon 打印Hello,World! 的代码片段。
!dlroW ,olleH⏪⏬⏩
下面是上面代码片段的解释,它可以帮助你尝试执行任何其他字符串,并获得一些乐趣。
begin quote string
!dlroW ,olleH
end quote string
⏪open loop
⏬pops and outputs top of stack as character
⏩close loop
输出结果如下:
Emotifuck
Emotifuck使用Rust编写,它使用八个表情符号作为命令,根据语言设计者的说法,它完全是内存安全的。
下面是命令列表和它们的等价符号。
- Move Right (>)
- Move Left (<)
- Decrement (-)[might have been better as output command ;)]
- Increment (+)
- Output (.)
- Input (,)
- Jump Forward ([)
- Jump Backward (])
Hello World! 的代码如下。
最后,祝你编程愉快,周末快乐!
- END -