アカウント名:
パスワード:
RAMを40kBしか搭載していないCortex-M3上でHaskellコードが動いたそうだ。
RAM 40KiB で動いたって、昔なら普通の話じゃないかな。32bit CPU だというところが肝なのか?
およそ四半世紀前に、大学の計算機の授業で、Apple ][ 互換マシンで BigNum サポートの Lisp (しかも簡単なフルスクリーンエディタつき)を使ったことがあるけどな。
オリジナルのjhcの出すコードが小さくランタイムもほとんどないというのが胆ですただの、とうのもなんだがajhcはただの移植
AppleIIのLispは中西正和先生のやつかな?
ご名答。
RAM 40KiB で動いたって、昔なら普通の話じゃないかな。
私の昔だと64kしばりがminimumでしたが、、、って32bitだから的とかそこが論点でないような気がしてます。ajhcを作った方のスライドによると、Metasepiというプロジェクトの一貫?のようです。(もっとも、スライドの中にはajhcはでてこないのですが。。。)http://www.slideshare.net/master_q/what-is-metasepi [slideshare.net]そもそも、ajhcが大本のプロジェクト停滞→フォーク→やってみたぜっ!てことなんでしょうかね?(´・ω・`)
# λカの娘の話はよくわからないのでついていけなかったのですが、コウイカの骨ってかっこいいですよね
昔のCPUは、主な命令8~16bit長でレジスタ8bit長だったから、プログラムメモリもデータメモリもbyte換算で小さかった。今時のCPUは、主な命令16~32bit長でレジスタ32bit長だったから、同じプログラムがword換算のステップ数が同じでもbyte換算でメモリは2~4倍必要になる。実際は、乗算器とか8bit以上の数を一回で計算できるとか、プログラムを改良してステップ数を減らせるので、同じアルゴリズムでもメモリ量はそこまで開かないですが。
もちろん、ロード・ストアドによるレジスタ演算のみとメモリ同志でも演算できるアーキテクチャの違いも命令ステップ数やパイプラインの使用率に関係するので、今どきのRISC CPUでこれだけメモリを減らせたのは、うまくやったといえるのではないでしょうか。今も昔も、インタプリタやVMの仕様が比較的CPUのアーキテクチャと相性が良ければ、工夫して性能を上げたりメモリの使用量を減らしたりできるということでしょうか。
Haskell は遅延評価言語なので、Lisp のような単純な言語とはランタイムの規模が桁違いになるように思います。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
吾輩はリファレンスである。名前はまだ無い -- perlの中の人
昔話をし出したら、普通じゃん。 (スコア:1)
RAM 40KiB で動いたって、昔なら普通の話じゃないかな。
32bit CPU だというところが肝なのか?
およそ四半世紀前に、大学の計算機の授業で、Apple ][ 互換マシンで BigNum サポートの Lisp (しかも簡単なフルスクリーンエディタつき)を使ったことがあるけどな。
Re:昔話をし出したら、普通じゃん。 (スコア:1)
オリジナルのjhcの出すコードが小さくランタイムもほとんどないというのが胆です
ただの、とうのもなんだがajhcはただの移植
AppleIIのLispは中西正和先生のやつかな?
Re: (スコア:0)
ご名答。
Re: (スコア:0)
RAM 40KiB で動いたって、昔なら普通の話じゃないかな。
私の昔だと64kしばりがminimumでしたが、、、って32bitだから的とかそこが論点でないような気がしてます。
ajhcを作った方のスライドによると、Metasepiというプロジェクトの一貫?のようです。(もっとも、スライドの中にはajhcはでてこないのですが。。。)
http://www.slideshare.net/master_q/what-is-metasepi [slideshare.net]
そもそも、ajhcが大本のプロジェクト停滞→フォーク→やってみたぜっ!てことなんでしょうかね?(´・ω・`)
# λカの娘の話はよくわからないのでついていけなかったのですが、コウイカの骨ってかっこいいですよね
Re: (スコア:0)
昔のCPUは、主な命令8~16bit長でレジスタ8bit長だったから、プログラムメモリもデータメモリもbyte換算で小さかった。
今時のCPUは、主な命令16~32bit長でレジスタ32bit長だったから、同じプログラムがword換算のステップ数が同じでもbyte換算でメモリは2~4倍必要になる。
実際は、乗算器とか8bit以上の数を一回で計算できるとか、プログラムを改良してステップ数を減らせるので、同じアルゴリズムでもメモリ量はそこまで開かないですが。
もちろん、ロード・ストアドによるレジスタ演算のみとメモリ同志でも演算できるアーキテクチャの違いも命令ステップ数やパイプラインの使用率に関係するので、今どきのRISC CPUでこれだけメモリを減らせたのは、うまくやったといえるのではないでしょうか。
今も昔も、インタプリタやVMの仕様が比較的CPUのアーキテクチャと相性が良ければ、工夫して性能を上げたりメモリの使用量を減らしたりできるということでしょうか。
Re: (スコア:0)
Haskell は遅延評価言語なので、Lisp のような単純な言語とはランタイムの規模が桁違いになるように思います。