Your SlideShare is downloading. ×
2週間できる!スクリプト言語の作り方 第10回
2週間できる!スクリプト言語の作り方 第10回
2週間できる!スクリプト言語の作り方 第10回
2週間できる!スクリプト言語の作り方 第10回
2週間できる!スクリプト言語の作り方 第10回
2週間できる!スクリプト言語の作り方 第10回
2週間できる!スクリプト言語の作り方 第10回
2週間できる!スクリプト言語の作り方 第10回
2週間できる!スクリプト言語の作り方 第10回
2週間できる!スクリプト言語の作り方 第10回
2週間できる!スクリプト言語の作り方 第10回
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

2週間できる!スクリプト言語の作り方 第10回

807

Published on

http://www.amazon.co.jp/dp/4774149748 を実装してみよう、という試みです。本の第6週位までの内容をつくってあります。

http://www.amazon.co.jp/dp/4774149748 を実装してみよう、という試みです。本の第6週位までの内容をつくってあります。

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
807
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Stone 第10週N. Shimizu (chiko@tom.sfc.keio.ac.jp / @chikoski)
  • 2. 今週の進• 変数の宣言ができるようになった• 再帰呼び出しできるようになった! • 環境の退避が問題だった • 関数呼び出しの評価時に退避するようにした• 関数の中で関数を定義できるようになった
  • 3. 再帰呼び出しdef fact(n){ fact(10) ret = 1 if(n > 1){ prev = fact(n - 1) ret = prev * n } ret}
  • 4. 関数内で定義されている関数def main(n){ def add(a, b){ var i = 0; a + b + c; var c = 1; } var ret = 0; } while(i < n){ ret = add(ret, i); main(10); i=i+1 } ret
  • 5. 外側のブロックの変数を参照できるdef main(n){ def add(a, b){ var i = 0; これを参照 a + b + c; var c = 1; } var ret = 0; } while(i < n){ ret = add(ret, i); main(10); i=i+1 } ret
  • 6. 静的スコープdef main(n){ def add(a, b){ var i = 0; これを参照 a + b + c; var c = 1; } var ret = 0; } while(i < n){ ret = add(ret, i); main(10); i=i+1 } ret
  • 7. To Do• 関数内で定義された関数の再帰呼び出しは できるのか確認する• 関数内で定義された二つの関数の、 相互の呼び出しができるかどうかを確認する
  • 8. 今後の野望
  • 9. 言語仕様的な野望• 高階関数• 無名関数• 関数を返す関数• 継続• 文脈に応じた評価(null など)• オブジェクト指向
  • 10. 言語仕様的な野望(つづき)• データ型をつくれるようにする • 配列、リスト • ハッシュ• 記号処理、文字列処理• return 文をつくる• Scheme への変換
  • 11. 開発環境的な野望• ブラウザ上でのプログラミング • 評価器、構文解析器のWeb API化 • エディタ?• ビジュアルプログラミング言語• 内部の可視化• あと何かありますかねー

×