¢%

From Esolang
Jump to navigation Jump to search

¢% is an esolang made by User:AmNow.

Architecture

Programs in the ¢% language operate on a stack of infinite capacity, storing per element one signed integer datum.

Commands

Loops work like they in do BF.

Command Description
¢¢¢¢ Pop the top stack element
¢¢¢% Swap the top stack element with that immediately below it
¢¢%¢ Duplicate the top stack element
¢¢%% Move the element at the bottom of the stack to the top
¢%¢¢ Jump past the matching %%%% if the top stack element is 0
¢%¢% Move the top stack element to the bottom
¢%%¢ Pop the two top stack elements a and b, compute a+b, and push the result onto the stack
¢%%% Pop the two top stack elements a and b, compute a-b, and push the result onto the stack
%¢¢¢ Pop the two top stack elements a and b, compute a*b, and push the result onto the stack
%¢¢% Pop the two top stack elements a and b, compute round(a/b), and push the result onto the stack
%¢%¢ Prompt an integer number from the user and push it unto the stack
%¢%% Prompt a Unicode character from the user and push its character code unto the stack
%%¢¢ Push 1
%%¢% Output the top stack element as a number
%%%¢ Output the top stack element as a Unicode character
%%%% Jump back to the matching ¢%¢¢ if the top stack element is nonzero

Programs

Truth-machine

%¢%¢ ¢¢%¢ %%¢% ¢%¢¢ ¢¢%¢ %%¢% %%%%

Cat program

An infinitely repeating cat program is implemented in the following:

%¢%% ¢¢%¢ %%%¢ ¢%¢¢ %¢%% ¢¢%¢ %%%¢ %%%%

Computational Class

¢% is Turing complete since it can simulate BF.

BF ¢%
+  %%¢¢ ¢%%¢
-  %%¢¢ ¢¢¢% ¢%%%
<  ¢¢%%
>  ¢%¢%
.  ¢¢%¢ %%%¢
,  ¢¢¢¢ %¢%%
[  ¢%¢¢
]  %%%%

Interpreter

  • Common Lisp implementation of the ¢% programming language. Please note that the concrete character set deployed constitutes a dependency on the Common Lisp implementation; in corollary, Unicode support may or may not be a feature incorporated in the personal environment. The interpreter at hand has been developed and tested with Steel Bank Common Lisp (SBCL) version 1.1.4 as part of the Lisp Cabinet 0.3.5 bundle.