コンピュータプログラミングの概念・技法・モデル
(IT Architect' Archive
クラシックモダン・コンピューティング6)
(IT Architects’Archive CLASSIC MODER)
(翔泳社)
セイフ・ハリディ (著), ピーター・ヴァン・ロイ (著)
Peter Van-Roy (著), Seif Haridi (著), 羽永 洋
原書: Concepts, Techniques,
and Models of Computer Programming
開発環境
- OS X Yosemite - Apple (OS)
- Emacs (Text Editor)
- Oz (プログラミング言語)
- Mozartプログラミングシステム(Mozart 2) (実装)
コンピュータプログラミングの概念・技法・モデル(IT Architect' Archiveクラシックモダン・コンピューティング6) (IT Architects’Archive CLASSIC MODER)(セイフ・ハリディ (著)、ピーター・ヴァン・ロイ (著)、Peter Van-Roy (著)、 Seif Haridi (著)、羽永 洋 (翻訳) 、翔泳社、原書: Concepts, Techniques, and Models of Computer Programming(CTM))の第部(一般的計算モデル)、第2章(宣言的計算モデル)、2.9(練習問題)、9-c.(末尾再帰)を解いてみる。
9-c.(末尾再帰)
Mozartシステムでは、{Sum1 100000000}は、スタックのサイズが大きくなりすぎてうまくいかない。{Sum2 100000000 0}は、スタックのサイズが一定なのでうまくいく。
実際にMozartで試したら、{Sum1 100000000}はMozartがクラッシュした。{Sum2 100000000}は、少し時間がかかるものの、上手くいった。格納域については、手計算ではSum1とSum2のどちらとも同じような大きさだけど、ガベージコレクションが走ってるかも。(もし走ってなかったら、Sum2についても格納域のサイズの問題でうまくいかない場合がでてくるかも。)
0 コメント:
コメントを投稿