Elog

Elog is a stackbased language that can be used to model logical circuits.

Description
An Elog program takes a bitstring as input (for example "10101") and can output another bitstring. You can use a single character for a variable. The first variable that appears in the program gets bound to the first input bit, the second variable gets bound to the second input bit and so on.

Commands
The commands at the moment: ' NOT gate & AND gate ^ XOR gate . dup top stack item 0 push 0 1 push 1
 * OR gate
 * pop bit and assign to next variable


 * end program and print all variables (or 0 and 1) after ;

Examples
The following program will take 4 input bits and will output 1 bit, 1 if the number is a prime else 0. Notice how at the end of the program the result bit is assigned to z (:z) and how z is the only variable after ;. Als notice how a, b, c and d are the first variables used, this will ensure that a, b, c and d will be bound to the right input bits. ab'cd&&&ab'c&&bc'd&&a'cd&&|||:z;z

The following program will take 3 input bits and will multiply it by 2. abc;abc0

This simulates a 2 bit multiplexer, notice how the 3 variables appear before the actual program, this to ensure the proper input bits are bound to the proper variables. abs as'&bs&|:z;z

Interpreters
Java interpreter C# interpreter