Wolfram Research

Function Repository Resource:

BrainLanguageEvaluate

Source Notebook

Run code in the brain language virtual machine

Contributed by: Aster Ctor

ResourceFunction["BrainLanguageEvaluate"][code]

runs code in the brain language virtual machine.

Details and Options

CompilationTarget supports the following parameters:
"Refined" remove all useless characters and standardize
"Operations" output as virtual machine instruction
"Output" default output
"OutputDebug" output as an u8-array
TranslationOptions has the following built-in dialect encodings:
"Normal" do not make any extra escaping
"Chinese" encode using "右左增减始终写读"
"Dao" encode using "☴☳☱☶☰☷☲☵"
"周易" encode using "巽震兌艮坤乾離坎"
"Ook" encode using the esoteric language Ook
Requires a Python installation for evaluation.
Per Wikipedia, this is a minimalist, esoteric programming language that uses just eight characters.

Examples

Basic Examples

Translate from default brain language to a text string:

In[1]:=
ResourceFunction["BrainLanguageEvaluate"]["
 +
 [
 	>>>->-
 	[
 		>->----<<<
 	]
 	>>
 ] >.
 ---.
 >+..
 +++.
 >>.
 <.
 >>---.
 <<<.
 +++.
 ------.
 <-.
 >>+.
 "]
Out[1]=

Scope

The output is assumed to be UTF8 encoded, which can support all Unicode characters:

In[2]:=
ResourceFunction["BrainLanguageEvaluate"]["
 ++++++++
 [
 	>>++
 	>++++
 	>++++++
 	>++++++++
 	>++++++++++
 	>++++++++++++
 	\
>++++++++++++++
 	>++++++++++++++++
 	>++++++++++++++++++
 	>++++++++++++++++++++
\
 	>++++++++++++++++++++++
 	>++++++++++++++++++++++++
 	>++++++++++++++++++++++++++
\
 	>++++++++++++++++++++++++++++
 	>++++++++++++++++++++++++++++++
 	\
<<<<<<<<<<<<<<<<-
 ] >>>>>>>>>>>>>>>++++.
 <<---.
 <<.
 >>>>+.
 <<<<+++++.
 >>.
 >>-.
 <<-----.
 <<<++++++.
 >>>>>+++.
 <<<<<-.
 ---------.
 "]
Out[2]=

Options

CompilationTarget

Enter formatted source code:

In[3]:=
bf42 = "++++         +++
      +[>++++    ++[>+<-][
     <]<  -]>   >++    +++
    +.-   ---   ---    ---
   --.+++++++         +++
          +++       .++
          +++      +.-
          ---    -----.--.
  ";

Remove meaningless characters and convert to standard form:

In[4]:=
ResourceFunction["BrainLanguageEvaluate"][bf42, CompilationTarget -> "Refined"]
Out[4]=

Dump actual instructions:

In[5]:=
ResourceFunction["BrainLanguageEvaluate"][bf42, CompilationTarget -> "Operations"] // TableForm
Out[5]=

The default behavior is to display the output directly:

In[6]:=
ResourceFunction["BrainLanguageEvaluate"][bf42, CompilationTarget -> "Output"]
Out[6]=

TranslationOptions

Specify a dialect, such as Ook:

In[7]:=
ResourceFunction["BrainLanguageEvaluate"]["\
 	Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. \
Ook. Ook. Ook.
 	Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. \
Ook. Ook. Ook.
 	Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? \
Ook! Ook? Ook.
 	Ook! Ook. Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. \
Ook. Ook. Ook.
 	Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. \
Ook. Ook. Ook?
 	Ook! Ook! Ook? Ook! Ook? Ook. Ook. Ook. Ook! Ook. Ook. Ook. Ook. \
Ook. Ook. Ook.
 	Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook. Ook. \
Ook. Ook. Ook.
 	Ook. Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook. Ook. \
Ook. Ook. Ook.
 	Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? \
Ook. Ook. Ook.
 	Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? \
Ook. Ook! Ook.
 	Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. \
Ook. Ook. Ook.
 	Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? \
Ook. Ook. Ook.
 	Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. \
Ook. Ook. Ook.
 	Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook! Ook! Ook! Ook! Ook! \
Ook! Ook! Ook.
 	Ook? Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook! Ook. Ook. Ook. Ook. \
Ook. Ook. Ook.
 	Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! \
Ook! Ook! Ook.
 	Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! \
Ook! Ook! Ook!
 	Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook. Ook! Ook.",
 TranslationOptions -> "Ook"
 ]
Out[7]=

Another dialect uses octal digit encoding:

In[8]:=
ResourceFunction["BrainLanguageEvaluate"][
 "0o221344120302033303111502225111112600061611122260333336133333600026\
",
 TranslationOptions -> "Number"
 ]
Out[8]=

Possible Issues

If the evaluation does not halt, the entire session will be stuck. In this case, run the following code to reinitialize:

In[9]:=
ResourceFunction["BrainLanguageEvaluate"][Initialize]
Out[9]=

Resource History

Source Metadata

Related Resources

AuthorNotes

The virtual machine is implemented by Python, so follow the Python environment in advance.

License Information