Batch, 25 characters
!%-/1:=abcdefgilnopstxy
(Includes newline and space.)
With these characters, you can translate brainf*ck (without ,
and .
), which is Turing-complete:
brainf*ck Command | Limited Batch Equivalent
------------------|--------------------------------
initialization | setlocal enabledelayedexpansion
| set/at=1-1
| set/al=111--111--11--11--11
| set/an=1--1--1
| set/an=%n%%t%%t%%t%%t%
------------------|--------------------------------
+ | if !c%t%!==%l% set/ac%t%=-1
| set/ac%t%-=-1
------------------|--------------------------------
- | set/ac%t%-=1
| if !c%t%!==-1 set/ac%t%=%l%
------------------|--------------------------------
< | set/at-=1
| if %t%==-1 set/at=%n%
------------------|--------------------------------
> | if %t%==%n% set/at=-1
| set/at-=-1
------------------|--------------------------------
[ | :l
| if !c%t%! lss 1 goto:e
------------------|--------------------------------
] | :e
t
stores the pointer position, and c_
stores the value of the cell at index _
. Labels :l
and :e
will need to be renamed accordingly for nested brackets.