.:iI1l!¡

From Esolang
Jump to navigation Jump to search
This article is not detailed enough and needs to be expanded. Please help us by adding some more information.

.:iI1l|!¡ is an esolang created by User:Username1234 in 2022. It is based on brainfuck.

Architecture

Following brainfuck's cleronomy, the .:iI1l|!¡ programming language employs a conceptually equivalent tape, bilateral in its expanse, with cells capable of storing unsigned bytes each, starting in their default state with the value zero (0). Upon any of their bournes' transgression the value wraps around to the respective obverse extremum.

A cell pointer designates at any instant the currently active unit, amenable to indagations and modifications.

Syntax

Its appropriation of the octuple brainfuck instruction set, with a concomitant modulation applied to the operation identifiers, endows .:iI1l|!¡ with a conspicuous design which, conforming with its name, expresses its programs by adminiculum of symbols demonstrating dots and lines.

An Extended Backus-Naur Form (EBNF) description shall elucidate the linguistic concepts in a more stringent mode:

program        := { command | limitedComment | whitespaces } , [ tailComment ] ;
command        := "." | ":" | "i" | "I" | "|" | "!" | "l" | "1" ;
limitedComment := "¡" , { character - "¡" } , "¡" ;
tailComment    := "¡" , { character - "¡" } ;
whitespaces    := whitespace , { whitespace } ;
whitespace     := " " | "\t" | "\n" ;

Commands

The instruction set incorporates the entirety of brainfuck's octuple members, augmented by a dedicated comment facility which supersedes the very liberal interspersion mechanism employed in the inspiration.

Command Brainfuck equivalent Function
. > Move the pointer to the right
: < Move the pointer to the left
i + Increment the memory cell at the pointer
I - Decrement the memory cell at the pointer
l [ Jump past the matching ] if the cell at the pointer is 0
1 ] Jump back to the matching [ if the cell at the pointer is nonzero
| . Output the character signified by the cell at the pointer
! , Input a character and store it in the cell at the pointer
¡ Annotation behind ¡

Example

Hello, World!

ilII.Il..i.IIIII::1:II:III1.I|...i|..||iiil|.1::::|iii|IIIIII|::I|....i|

Move Value

..lI1::lI..i::1

Cat

A repeating cat program is demonstrated below:

!l|!1

Truth-machine

A truth-machine implementation follows:

!|lII.il..1:l|1::1

Interpreter

  • Common Lisp implementation of the .:iI1l!¡ 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.