Nevermore

Nevermore is an esoteric programming language created by User:ajzaff. The language and syntax rules are designed to be overly obscure, and therefore, make it difficult to program.
==Language overview==
Like Brainfuck, the language operates on an array of memory cells, also referred to as the tape. Each cell is initially set to zero. There is a pointer, initially pointing to the first memory cell.
The language integrates an elementary cellular automation which it basically uses to make programming more difficult and give the code an obfuscated appearance.
The automation evolves in a data structure known as the Nevermore, hence, the language's name. The structure is a bit array of length 8. The Nevermore structure takes an initial value (state) of 0, [0 0 0 0 0 0 0 0]. The state evolves every time a command is called.
A change in state causes the command set of the language to change. The evolution of the command set exhibits chaotic behavior and is hard, or impossible, to determine without knowledge of a past state.
The left-to-right binary readout of the bits in the Nevermore's state is called the Nevermore Number. This number mod 95 is the rotation factor applied to the initial command index (See below).
=== Commands ===
Possible commands in Nevermore and their values relative to the Nevermore Number:
Command Index 	Brainfuck Equivalent 	Description 	Change to Nevermore
N mod 95 	> 	Move the pointer to the right 	Performs a right shift (>>) on the rule, evolves the Nevermore state
(N + 1) mod 95 	< 	Move the pointer to the left 	Performs a left shift (<<) on the rule, evolves the Nevermore state
(N + 2) mod 95 	Increment the memory cell under the pointer 	Negates the 20 in the rule, evolves the Nevermore state 	
(N + 3) mod 95 	 	 	
Decrement the memory cell under the pointer	Negates the 21 in the rule, evolves the Nevermore state	 	
(N + 4) mod 95 	. 	Output the character signified by the cell at the pointer 	Negates the 22 in the rule, evolves the Nevermore state
(N + 5) mod 95 	, 	Input a character and store it in the cell at the pointer 	Negates the 23 in the rule, evolves the Nevermore state
(N + 6) mod 95 	[ 	Jump past the matching ] if the cell under the pointer is 0 	Negates the 26 in the rule, evolves the Nevermore state
(N + 7) mod 95 	] 	Jump back to the matching [ if the cell under the pointer is nonzero	Negates the 27 bit in the rule, evolves the Nevermore state
(N + 8) mod 95 	 	No operation, NOP 	Evolves the Nevermore state
The Nevermore's evolution rule is initialized as follows:
1,1,1	1,1,0	1,0,1	1,0,0	0,1,1	0,1,0	0,0,1	0,0,0
0 	0 	0 	0 	0 	0 	0 	0
The upper numbers represent adjacent elements (Indexes i-1, i, and i+1) in the bit set and the bottom number represents the resulting bit (i). Bits -1 and 8 are by default 1.
The nomenclature for naming rules is the binary left-to-right readout of the result bits. The above case is Rule-0.
===Evolution Example===
Here is an example of a simple evolution of Rule 18:
1,1,1	1,1,0	1,0,1	1,0,0	0,1,1	0,1,0	0,0,1	0,0,0
0 	0 	0 	1 	0 	0 	1 	0
[7]	[6]	[5]	[4]	[3]	[2]	[1]	[0]	Nevermore Number, N	N mod 95
0 	0 	0 	0 	1 	0 	0 	0 	 	
1 	0 	0 	1 	0 	1 	0 	1 	149 	54
0 	1 	1 	0 	0 	0 	0 	0 	96 	1
0 	0 	0 	1 	0 	0 	0 	1 	17 	17
1 	0 	1 	0 	1 	0 	1 	0 	170 	75
...	...	...	...	...	...	...	...	... 	...
The code consists of four consecutive NOPs since the rule does not change at each evolution. The commands are appropriately rotated for each Nevermore Number: 
 ^)9s
However, since the above program consists of all NOPs, it does not really do anything.
===Command Index Reference===
An index of all possible command codes:
Command Index, N mod 95	ASCII Equivalent
0 	<SPACE>
1 	!
2 	"
3 	#
4 	$
5 	%
6 	&
7 	'
8 	(
9 	)
10 	*
11 	+
12 	,
13 	-
14 	.
15 	/
16 	0
17 	1
18 	2
19 	3
20 	4
21 	5
22 	6
23 	7
24 	8
25 	9
26 	:
27 	;
28 	<
29 	=
30 	>
31 	?
32 	@
33 	A
34 	B
35 	C
36 	D
37 	E
38 	F
39 	G
40 	H
41 	I
42 	J
43 	K
44 	L
45 	M
46 	N
47 	O
48 	P
49 	Q
50 	R
51 	S
52 	T
53 	U
54 	V
55 	W
56 	X
57 	Y
58 	Z
59 	[
60 	\
61 	]
62 	^
63 	_
64 	`
65 	a
66 	b
67 	c
68 	d
69 	e
70 	f
71 	g
72 	h
73 	i
74 	j
75 	k
76 	l
77 	m
78 	n
79 	o
90 	p
81 	q
82 	r
83 	s
84 	t
85 	u
86 	v
87 	w
88 	x
89 	y
90 	z
91 	{
92 	|
93 	}
94 	~
==Examples==
===Hello World===
Example of a Hello World program:
 A"A"A"A"A"& AD^"AD^[bBanDSpFUj Ad: Ac((+)938C5I1Vjisotlvd%`$](L62sKV_0_0_0_0_0_0_0_2_a[SC%Cdddddedddddddde D):y
===Cat Program===
Example of a cat program:
 %&$%'
===ROT-13 Example===
 #F$I7OA """"'``%a"c"c""%GAb"4@-CQRQdga a'B)(5#CAYbb"A#Fg'BgHebegdh!d%Bh
===99 Bottles of Beer===
 $AbBSjFUj """"""""""'Bb#2[f)6.1-#22+&j\^1*cRU3v`e`'@g w`dh"#$)*;LBCD`c"c"c"c"caa"C$DR{Pbgb"b%_adha"c"c"c"c"c"c"cgb"c"c"c"`cg$'1:S&+.;U*0\70QOPQQOPQQO[bfBPY:pZ_.Z\a(N@SR=1z<QXbaSCCCCC"C' F6%Jn]F8%Jn]F8%Jn]F8%Ibcrkvmw!Ef]('))&&&&&&&&3PQOpppppppadh"a"c"c"c"c"cg!B$bR*0\U*0c~b.5Mxp}z/=U*0\U*0\U*0\7/JT[2JTA$E 'ER[0JU\Vb"A'?O7(b_DC2S*[&_$`%b&Mwmwmwmwmw!b,D%!##########)D&%5|||||||Y?=o4q4q4q4q<>c"B$ DXXa)R<a)R<a)R<a)K%$s<PX^0JY4KY>a7_0R,P`#gb"b%_0SZ"G_adh"a"c"c"c"c"cg!c"c"c"c"c"`cg#).?YB$%e+nA:c"#%).?EBr0ND`"adha"D&J\>l=`VM9nK.faE$+5Hn;U)n;U)jCSjFUjFUjFU #F~d'"""""""""'"##########"*@xjzjzjzjzqVl6ILV/NT\?c"C$DR{Pb%F&ES|Qc"C)_(W:2&|adh"c"ca"b$^,NLmmmqA$##CRS:[._]XX*<6h~syvwwww{"FhN/vP0]W0).2`Q3d%J*;DI#"""" #F#$btptptptptptptp3DB"""""""Ac' =X%$4{?X%$4{?%{K7ZY{H8=AcG@b!tttttttttt|uyyvyvyvyvux|`c"BC#$C#rT[:p1Ce(0<Z,&)B!-K9L9L9q8NWK*[;0P]#DT:_:SZ J[>a7OX#DWZ0JU\0J_EFca"b$^,NLmmmmmqA$##CRS:[YLH2|I-k}uxvwwwwwwww{"c"c"c"c"?BFd)N>K=zj=D*K.!"""""""""" #F~dh|h|h|hxc0fSIadG&5LXmjvmwnxp}}>QX^0JU\0JUP^W?UnAa%_(Y1S:_=#DU=#DU=#D?U@#Bc"c"c"c"c"fb"D'K^c"D'KTrAg2j@c&xvyzlwnyoJnr@$D%).;U*0\70QOPQQOPQQO[bfBS,b#T=zja$JjT]^F""""""""A%F#$burzx.;N?XQ=z/B/y?QX^0JU\?VrJmLmLmLmLmLmP"B$c3L>]yc"B(F_%B$bR*0\7RSJ+?Z_h"BdK?Fc"DdK:hAHCDDDDDDDD`Ee_%Jn~)AUS:x.>-x>QX^0JU\0JY4p;X0PmS:W!ac/SZ"G_0SZ"G9dha"c"c"c"cgb"c"cadh"C#GXZ8yyyyyyy}/?z/>Wnxp}zxJ F.k}txvwwwwwww{"a#a#a#a#!$Eg03Ti/>K=zj=D*K;D*K;DI#"""""" #F#A#t>QX?/z<QX?/z<QX?/}>/w<LR2IgzHGdBSjFUj[P(Y{H=@D|Y.+>z/<TELaBP[*89xxxxxxx_*3?Y*#bc"c"c"c"c"c"c"c"cg!B$C3[>,T`<#DU=#DU=e2#s<P^e%~|mmmmmmmmmmmmqA$"$AUnAa_^`Y68wwwwwwwwwwwwwwwww{"FiN/TPLKOJ*L-L-L-L-L-LP!A?b@r(7#p.$'<Qt&+4Fk4Fk4Fk4&!""""""""" #F~dD"""""""""'!""""""""""!%E{gukgtlvmwm{ac"BC#$C#rTQ\d.SZ"G_gb"cadh"Dej~~)AUS:x.>-|++A f"')Z+!B&%W!F^E1#_$:gyFS`-S=XuCBBY6[59q-.:K:4Ad`dBU(p`D0]<<~]jE@E`CP--4:6VmVA3wCOJBF@3-Q-tic#d^_`eaeaeae D!C/+A& $ $BfXPqg0 B>:*6@c@e E!'=F?#~eae %?$@%`5QUXL:&=F= yb&K-=#T8pDaae %?$@%`5QUXL:&=F= ybgbh `&I5hnA`_@,(L6F($(L:JE $B(]G/P;T[PAdp]8UAdPL*:-&"'E1FY4@h^'bZX`egbh B>h-8wwwwwwwwwmxp}z/>Wnxp9L>Ei{(c%EX=)]a a$@eaeaeaeae D!C/+A& $ $BfXkTske eaeaeaeaeae D!C/+A& $ $'"E{IBs-S,6Nyt"`(#"u]U5{^XI$LF($(L:JE $B(]G/P;T[PAdp]8UAdPL*:-&"'E1FY4@h^'bZX`e eaeae e&"F^_c B>)d8~Y.^UM]caeaeae D!C/+A& $ $BfXPqg0 B>:*6@c@e E!'=F?#~eae %?$@%`5QUXL:&=F= yb&K-=#T8pDaae %?$@%`5QUXL:&=F= ybgbh `&`Y0(sg9OJ@2%()6+H $A&A92w}P@E!c@e eaeaeae C~<Ivj( $A&A92w}PG29XG%9|w{`*$'-Z`<E@:Xy.&D $ $Ad $AdAM_3 i=!c@e eaeaeae C~<Ivj( $A&A92w}P@E!cCRR egahbbeegbh Ad`#^'~@<e F_%/<SCaae %?$@%`5QUXL:&=F= yb&K-=#T8pDaae %?$@%`5_^f&WGCB?$?c^d#KUI-VPWlle F_%/<SCaeae %?\\$L#bfZd Bf8vzM\M4<Ua&Daeaeae D!CO{iK%% $Bf8vzM\M4<Ua&Daeaeae D!CO{iK%% $Bf8vlTNV3rxebbe!C"%)DB36*D $ $!&9G`eQ.LoJD eaeaeae D!C0|=/#'`dB&9G`eQ.LoJD eaeaeae D
Category:Brainfuck derivatives Category:Languages