Pietでlisp処理系を書くのは難しい 進捗報告

Post on 18-Aug-2015

191 views 1 download

Transcript of Pietでlisp処理系を書くのは難しい 進捗報告

PietでLISP処理系を書くのは難しい進捗報告

京大マイコンクラブ長嶺英朗2015.8.8

自己紹介

長嶺英朗(NAGAMINE Hideaki)KMC-ID: hnagamin

Piet歴 2〜3ヶ月

Scheme歴 2年よく使うアイコン

自己紹介終わり

本題

YAPC::Asia Tokyo 2015

YAPCで喋ります

進捗報告をします

目次

1. 宣伝2. Pietとは3. 進捗報告兼作品紹介4. 今後の課題

Pietのここがすごい

ソースコードがドット絵

最大公約数を計算するプログラム 与えられた数をソートするプログラム

命令がたくさんあって書きやすい

ADD2数の和を返す

DEVIDE2数の商を返す

GREATER先頭の要素が2番めより大きければ1を返す

DUPLICATE要素をコピーする

IN(C)1文字入力してUnicode値をスタックに追加

PUSHスタックに要素を追加

SUBSTRACT2数の差を返す

MOD2数の剰余を返す

POINTERプログラムの進む向きを変える

ROLLスタックの要素の順番を変える

OUT(N)スタックの要素を数として出力

POPスタックから要素を削除

MULTIPLY2数の積を返す

NOT0なら1、0以外なら0を返す

SWITCHプログラムの読む向きを変える

IN(N)数を入力してスタックに追加

OUT(C)スタックの要素をUnicode値とみて1文字出力

詳しくはdamaさんの「Pietのエディタを作った話」を

参照してください

http://www.slideshare.net/KMC_JP/piet-46068527

進捗報告兼作品紹介

LISPっぽい記法の電卓を作りました

加減乗除ができます

“(+ (* 314 (+ 500 500)) (- (/ 960 3 2) 1))”に対して

”314159”と出力します

55x60

加算乗算

減算

除算

数値入力

デモ(時間があったら)

今後の課題

課題がいっぱい

● リスト● 変数● 手続きオブジェクト

まとめ

● 整数オブジェクトを扱える● 課題がいっぱい