From Esolang
Jump to navigation Jump to search

Obfuscation guide?

I wanted to use this, but I have no idea how the obfuscation works.

I looked in the history, and apparently, it was imported from a website, and the one who imported was lazy, as evidenced by the "Emoticon/Reference" staying there for a bit, and of course, the missing obfuscation guide. --Quadril-Is (talk) 16:26, 14 July 2020 (UTC)


I found a way to translate brainfuck programs to Emoticon, you just have to initialize the memory with

10 8-O 0 :-O 8=\ :-( :-E L-O 0 :-O 1 :-{ 8=\ :-)

10 being how many cells to initialize.

[	8=\ :-( :-E
]	8=\ :-)
+	1 :+{
-	1 :-{
>	R-< L-O :-< :-O
<	L-< R-O :-< :-O
.	:-P S:-P

Note: There's no input, and . prints a number followed by a space instead of an ascii character.

Is this enough proof that Emoticon is turing complete or does the initializing part ruin it?

Hello World! translated: [1] Outputs 72 101 108 108 111 32 87 111 114 108 100 33.

--BodyTag 13:06, 20 Oct 2005 (GMT)

To show Turing-completeness there would need to be a way to initialise an unbounded number of memory cells. One way of doing this (in general - I don't know if it would work for Emoticon as I'm not familiar with the language) is to keep a record of the highest initialised address, and every time the pointer moves beyond this initialise a few more cells (this is how my Javascript Sansism interpreter works, for example). --Safalra 13:45, 20 Oct 2005 (GMT)
A slight modification to the table over that would make sure you always have enough cells: R-< L-O 0 :-< :-O for >. Every time you use > it would do as usual then add a new cell to the far right. Sure you will probably end up with more cells than you need, but it was easy to rewrite and I'm lazy. Is that sufficient to show turing-completeness? Even more notes: It's using bignum cells (or whatever they're called), and they can be negative. Be sure to put spaces between the translated emoticons. Thanks to the new > command you can initialize the progam with 8-O 0 :-O 0 --BodyTag 10:11, 21 Oct 2005 (GMT)
If the cells are unlimited in what values they can store, then as few as two cells may prove Turing-completeness; see Minsky machine. --Graue 13:43, 21 Oct 2005 (GMT)
The spec does not mention any limit on how big a number can be. --BodyTag 16:05, 21 Oct 2005 (GMT)

Permission to post

Message-ID: <>
Date: Sun, 22 May 2011 23:41:00 +0100
From: [Timwi]
To: [David Donachie]
Subject: Emoticon esolang

Hi David,

I noticed your esoteric programming language “Emoticon”. You seem to 
have removed the description from your website. I was going to post it 
to so that it is preserved, but due to copyright law I need 
your permission to do so. Would you be happy for the description of the 
language to be public domain?

Subject: Re: Emoticon esolang
From: [David Donachie]
In-Reply-To: <>
Date: Mon, 23 May 2011 09:04:18 +0100
Message-Id: <>
To: [Timwi]

Hey there!


I'd be quite happy for you to post the description and any other
relevant info indeed!


--(this comment by Timwi at 08:13, 23 May 2011 UTC; please sign your comments with ~~~~)

Great! —ehird 08:55, 23 May 2011 (UTC)