(?!)

From Esolang
Jump to navigation Jump to search

(?!) constitutes a programming language invented by the user User:MadMax which operates on an accumulator or register of a scalar non-negative integer capacity, the sole effective purpose of the same amounts to the output of characters.

Commands

3 Simple Commands:

Command Effect
? Increment the accumulator by one.
! Output the character whose ASCII code corresponds to the accumulator value.
(commands) Loop to multiply numbers. Homologated commands include ? and loop nestings.
(!) Reset the accumulator to its default state of zero.

Syntax

The following Extended Backus-Naur Form (ENBF) treatise shall administer further formality to the syntactical exposition:

program          := { command , whitespaces } ;
command          := incrementCommand | outputCommand | loopCommand | resetCommand ;
loopCommand      := "(" , loopBody , ")" ;
loopBody         := { incrementCommand | loopCommand } ;
incrementCommand := "?" ;
outputCommand    := "!" ;
resetCommand     := "(!)" ;
whitespaces      := { whitespace } ;
whitespace       := " " | "\t" | "\n" ;

Examples

HELLO WORLD!

This program displays the message “HELLO WORLD!”:

???????(??????????)??!(!) ?????????????(?????)????!(!) ???????????????(?????)?!(!) ???????????????(?????)?!(!) ???????????????(?????)????!(!) ??????????(???)??!(!) ?????????????????(?????)??!(!) ???????????????(?????)????!(!) ??????????(????????)??!(!) ???????????????(?????)?!(!) ?????????????(?????)???!(!) ??????????(???)???!(!)

Interpreter

  • Common Lisp implementation of the (?!) programming language.