Elog

From Esolang
Jump to navigation Jump to search
Elog
Paradigm(s) imperative
Designed by Aptennap
Appeared in 2011
Memory system stack
Dimensions one-dimensional
Computational class total
Reference implementation Java (Pastebin), C# (Pastebin)
File extension(s) unknown

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
  • | OR gate
  • ^ XOR gate
  • . dup top stack item
  • 0 push 0
  • 1 push 1
  • : pop bit and assign to next variable
  • ; end program and print all variables (or 0 and 1) after ;

Computational class

Since Elog has no way of performing loops, it is guaranteed to terminate. Otherwise, it is able to evaluate any combinational logic expression, as it is functionally complete.

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