Share your repls and programming experiences

← Back to all posts
AHH (Esoteric Programming Language)
EdericOytas (3)

I got really bored one day, so I decided to make an esoteric programming language. It has the exact same syntax as Javascript, just that every keyword is replaced with an interjection. You'll see what I mean if you check out the file.
Not all keywords are covered, and there is no actual compiler for this language.

(Pasted from readme.md)

AHH Programming Language

The AHH language is an esoteric programming language, built to encapsulate the power of human noises.

(Contains the same syntax as JavaScript)

!HAA - comment
!HA AH! - multi line comment

AH - statement end (;)

AHH - variable declaration (let)
HAH - constant variable declaration (const)

EE - assignment operator =


RE - opening parentheses (
ER - closing parentheses )

YE - opening braces {
EY - closing braces }

YA - opening brackets [
AY - closing brackets ]


AA - double quotes

UH - escape char
UHNO - newline
UHTO - tab space
UHBA - backspace
UHRE - carriage return
UHFE - form feed
UHUH - UH
UHAA - AA


WA - +
AW - -
WAA - *
AAW - /
WAAA - ** (power)
WAW - % (modulus)

WO - +=
OW - -=
WOO - *=
OOW - /=
WOOO - **=
WOW - %=

OOP - ++
OOPS - --


AGH - IF
ARGH - ELSE

EEE - ==
ERE - !=
EK - <
KE - >
EEK - <=
KEE - >=

GAH - and
GEE - or
GRR - not


OH - ,
OO - .
OHO - :


HMM - function
HMPH - =>

WOAH - return


TSK - raise
SHH - catch
LO - try


OOY - for
OY - while

YO - do

YEA - true
NO - false
NU - null


TCH - class
TA - this
TAT - new

VROOM - constructor

SOOP - super

BAM - get
JAM - set


ROAR - Function to print to console with a new line
RAWR - Function to print to console

BREATH - Function to take in a string input	

Comments

!HAA THIS IS A PROGRAM
!HA
	THIS
	IS
	MULTILINE
AH!

Integer variable

AHH NUM1 EE 4 AH

String variable

AHH STR1 EE AA HELLO WORLD! AA AH

Hello world! Program

ROAR REE AA HELLO WORLD! AA ERR AH

If statement

AGH RE VAR1 EEK VAR2 ER YE
	ROAR RE VAR1 ER AH
EY ARGH YE
	ROAR RE VAR2 ER AH

Exception

LOO YE
	VAR OO SOMEMETHOD AH
EY SHH EXCEPTION YE
	ROAR AA FAILED AA AH
EY

Function definition

HMM SQUARE RE NUM ER YE
	WOAH NUM WAAA 2 AH
EY

For loop

OYY RE AHH II EE 0 AH II EK 3 AH II OOP ER YE
	RAWR RE AA NUMBER AA ER AH
	RAWR RE II ER AH
	ROAR RE ER AH
EY

While loop

AHH RE NUM EEE 0 ER AH
OY RE NUM EK 5 ER YE
	RAWR RE NUM ER AH
	RAWR RE AA AA ER AH
EY
ROAR RE ER AH

Do-while loop

AHH SOMENUM EE 0 AH
YO YE
	RAWR RE AA HELLO AA ER AH
EY OY RE SOMENUM ERE 0 ER AH

Array variable

AHH SOMEARR EE YA 1 OH 2 OH 3 AY AH

Constant variable

HAH PI EE 3 OO 14159 AH

Classes

TCH RECTANGLE YE

	VROOM RE LENGTH OH WIDTH ER YE
		TA OO LENGTH EE LENGTH AH
		TA OO WIDTH EE WIDTH AH
	EY

	BAM LENGTH RE ER YE
		WOAH TA OO WIDTH
	EY
	JAM LENGTH RE VALUE ER YE
	  TA OO WIDTH EE VALUE AH
	EY

	BAM WIDTH RE ER YE
		WOAH TA OO WIDTH
	EY
	JAM WIDTH RE VALUE ER YE
	  TA OO WIDTH EE VALUE AH
	EY

	BAM AREA RE ER YE
		WOAH CALCAREA RE ER AH
	EY

	CALCAREA RE ER YE
		WOAH TA OO WIDTH WAA TA OO LENGTH AH
	EY

EY

AHH RECTANGLEY EE TAT RECTANGLE RE 3 OH 4 ER AH
ROAR RE RECTANGLEY OO AREA ER AH !HAA >> 12

RECTANGLEY OO LENGTH EE 4 AH
ROAR RE RECTANGLEY OO AREA ER AH !HAA >> 16
Commentshotnewtop
EdericOytas (3)

Lol, glad you guys like it. I was thinking of having an integer variable declaration just being based on the number of H’s in AHH
AHH NUM EE AHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH AH

SirNapkin1334 (3)

Cool, but it's not really an esoteric language, is it? It's like LOLCODE - not really esoteric, but simply a regular language (in this case JS) but with different keywords. Now, if you could implement your own syntax system, rather than just making it JS with different operators, then I would be more happy to consider this an esolang.

the_real_tfbninja (2)

@SirNapkin1334 Actually, an esolang is "a computer programming language designed to experiment with weird ideas, to be hard to program in, or as a joke, rather than for practical use." - esolangs.org This language, as well as LOLCODE, is certainly esoteric as it is difficult to use because the keywords are not descriptive at all of their actual function, and it also seems to be a bit of a joke, certainly no-one would use this for a practical use in a business setting. LOLCODE is built on the same concept and is still considered esoteric. While it does not have it's own syntax system, that is not a requirement for an esolang, only a rule of thumb for interesting esolangs.

timmy_i_chen (1011)

Love it - thanks for sharing!