パスワードを忘れた? アカウント作成
8010006 story
プログラミング

Haskellを使ったCortex-M3プログラミング 13

ストーリー by hylom
高級言語のでマイコン操作がブームになるか 部門より
あるAnonymous Coward 曰く、

RAMを40kBしか搭載していないCortex-M3上でHaskellコードが動いたそうだ。ここでは通常のHaskellプログラミングで使われているGHCコンパイラではなく、jhc というコンパイラを改造したAjhcコンパイラなるものを使っている。

このAjhcについての解説は「Ajhcプロジェクトはじめよう」というサイトで読める。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by Anonymous Coward on 2013年03月26日 9時29分 (#2350198)

    RAMを40kBしか搭載していないCortex-M3上でHaskellコードが動いたそうだ。

    RAM 40KiB で動いたって、昔なら普通の話じゃないかな。
    32bit CPU だというところが肝なのか?

    およそ四半世紀前に、大学の計算機の授業で、Apple ][ 互換マシンで BigNum サポートの Lisp (しかも簡単なフルスクリーンエディタつき)を使ったことがあるけどな。

    • by Anonymous Coward on 2013年03月26日 10時30分 (#2350239)

      オリジナルのjhcの出すコードが小さくランタイムもほとんどないというのが胆です
      ただの、とうのもなんだがajhcはただの移植

      AppleIIのLispは中西正和先生のやつかな?

      親コメント
      • by Anonymous Coward

        AppleIIのLispは中西正和先生のやつかな?

        ご名答。

    • by Anonymous Coward

      RAM 40KiB で動いたって、昔なら普通の話じゃないかな。

      私の昔だと64kしばりがminimumでしたが、、、って32bitだから的とかそこが論点でないような気がしてます。
      ajhcを作った方のスライドによると、Metasepiというプロジェクトの一貫?のようです。(もっとも、スライドの中にはajhcはでてこないのですが。。。)
      http://www.slideshare.net/master_q/what-is-metasepi [slideshare.net]
      そもそも、ajhcが大本のプロジェクト停滞→フォーク→やってみたぜっ!てことなんでしょうかね?(´・ω・`)

      # λカの娘の話はよくわからないのでついていけなかったのですが、コウイカの骨ってかっこいいですよね

      • by Anonymous Coward

        昔のCPUは、主な命令8~16bit長でレジスタ8bit長だったから、プログラムメモリもデータメモリもbyte換算で小さかった。
        今時のCPUは、主な命令16~32bit長でレジスタ32bit長だったから、同じプログラムがword換算のステップ数が同じでもbyte換算でメモリは2~4倍必要になる。
        実際は、乗算器とか8bit以上の数を一回で計算できるとか、プログラムを改良してステップ数を減らせるので、同じアルゴリズムでもメモリ量はそこまで開かないですが。

        もちろん、ロード・ストアドによるレジスタ演算のみとメモリ同志でも演算できるアーキテクチャの違いも命令ステップ数やパイプラインの使用率に関係するので、今どきのRISC CPUでこれだけメモリを減らせたのは、うまくやったといえるのではないでしょうか。
        今も昔も、インタプリタやVMの仕様が比較的CPUのアーキテクチャと相性が良ければ、工夫して性能を上げたりメモリの使用量を減らしたりできるということでしょうか。

    • by Anonymous Coward

      Haskell は遅延評価言語なので、Lisp のような単純な言語とはランタイムの規模が桁違いになるように思います。

  • by mizmiz (17094) on 2013年04月20日 3時31分 (#2367269)

    動いた時点で満足して終わり

  • by Anonymous Coward on 2013年03月26日 6時37分 (#2350140)

    ソースコードが凄いのかコンパイラが凄いのか。
    多分両方なのだろうけど。

  • by Anonymous Coward on 2013年03月26日 10時39分 (#2350247)

    Cortex-M3を使ったHaskellプログラミング、じゃないんですね~

  • by Anonymous Coward on 2013年03月26日 10時50分 (#2350256)
    組み込み系とかで Haskell を使いたいとかそのあたりの需要があるのかな?
    それとも単に動かしてみることの意義を見い出している段階なのかな?
    • by Anonymous Coward

      どう見ても実験以外に使えないっしょ
      メモリ残量にもの凄く気を遣ってかかなきゃいけないってHaskell使うときかなり困るんじゃ?

      ARMの開発全般だと意味違うんだろうけどCortexM3はさすがに話題作り兼、実験としかおもえない。

      • by Anonymous Coward

        いまはARMボードたいていCortexだから関係ないんじゃない?

        • by Anonymous Coward

          普通にHaskellを使いたいならCortexはCortexでもA系を持ってくるでしょ。

typodupeerror

一つのことを行い、またそれをうまくやるプログラムを書け -- Malcolm Douglas McIlroy

読み込み中...