えそらんっぽいもの
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
sample
Ame
Ame.py
Clean_Ame.py
README.md
aa_Helloworld
sしようしょ.txt

README.md

#プログラミング言語 Ame Esolangも言語系もよく知らない私が深いこと考えないで行きあたりばったりで作った言語です。
作ってからそれとなく「Whitespaceに似てるなぁ」とか思ったのは内緒です。

Ameという名前の由来は見た目。

/  //  ../   ./  . /|   /
/  /| |  /  //  |   |/|  /| 
|. /||  |/  |/  |  |/.  /| 
|/  /  /|  ||/.   /|/.  
/|   __,__  / /.  /|
 / / /   \ \| / |/
  ^^^^^^l^^^^^^   /!  ./
 雨だね。 l∧_∧   /!..
  傘いるかいl´・ω・`) 
      0⊂   )  
        し─J    

解説ブログ

##特徴

  1. 多分スタック指向
    多分というのは、スタックが2つ(WM,LTM)と変数(tmp)があるため。
    これはswapが文法上難しかったための代替手段。2番目のスタックを変数にpullできるpull2コマンドと、他のデータの保管用のスタックがもう一つあるためこれでswapできる。
    そのこともあり、演算結果はpushされずにtmpに代入される
  2. 3進数で表現
    2進数だと長い。なるべく少ない文字数で難読に作りたい。よって3進数。
  3. 4文字使用(他はスペース含めコメント)
    使う文字:/|.!

##語彙 ###数値宣言
"/"と"!"の間に3進数で記入。
ただし、最高位は右側。 {0:/, 1:|, 2:.}

////|!:27
/...!:26

###コマンドなど

commandmeaning commandmeaningexample
.//WM.push!//+WM[1]+WM[0]
.|/WM.pull!|/-WM[1]-WM[0]
../WM.pull2!./WM[1]∗WM[0]
./|LTM.push!/|/WM[1]/WM[0]
.||LTM.pull!||%WM[1]%WM[0]
..|LTM.pull2!.|<1 if WM[1]<WM[0] else 0
./.WM.top!/.ifif WM[0]==0:
.|.LTM.top!|.whilewhile WM[0]!=0:
...loop,ifの終わりEnd!..printprint(str(WM[0]),end='')

すべてWM上の操作で演算後はpushされずにtmpに代入される

####str()とは

3進数で5桁区切りでASCIIコードに変換する

##開発環境 Python2.7で組みましたが、Python3.xでも動くようにしてあります。
難読言語だしコードも難読じゃないとと思ってワンライナーで書きました。

Python 2.7.3
Arch Linux