Skip to content

cocuh/Ame

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

#プログラミング言語 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

About

えそらんっぽいもの

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages