mbed+Haskellどうでしょう

8
mbed+Haskellどうでしょう mbed+Haskellどうでしょう mbed+Haskellどうでしょう mbed+Haskellどうでしょう mbed+Haskellどうでしょう Kiwamu Okabe Kiwamu Okabe Kiwamu Okabe Kiwamu Okabe Kiwamu Okabe

description

OSC北海道LT

Transcript of mbed+Haskellどうでしょう

Page 1: mbed+Haskellどうでしょう

mbed+Haskellどうでしょうmbed+Haskellどうでしょうmbed+Haskellどうでしょうmbed+Haskellどうでしょうmbed+Haskellどうでしょう

Kiwamu OkabeKiwamu OkabeKiwamu OkabeKiwamu OkabeKiwamu Okabe

Page 2: mbed+Haskellどうでしょう

私は誰?私は誰?私は誰?私は誰?私は誰?

☆ Twitter: @master_q☆ Twitter: @master_q☆ Twitter: @master_q☆ Twitter: @master_q☆ Twitter: @master_q

☆ Metasepiプロジェクト主催☆ Metasepiプロジェクト主催☆ Metasepiプロジェクト主催☆ Metasepiプロジェクト主催☆ Metasepiプロジェクト主催

☆ Ajhc Haskellコンパイラ開発者☆ Ajhc Haskellコンパイラ開発者☆ Ajhc Haskellコンパイラ開発者☆ Ajhc Haskellコンパイラ開発者☆ Ajhc Haskellコンパイラ開発者

☆ Debian Maintainer☆ Debian Maintainer☆ Debian Maintainer☆ Debian Maintainer☆ Debian Maintainer

☆ 前はデジタルサイネージの開発してました☆ 前はデジタルサイネージの開発してました☆ 前はデジタルサイネージの開発してました☆ 前はデジタルサイネージの開発してました☆ 前はデジタルサイネージの開発してました

☆ その昔はコピー機のOSをNetBSDで☆ その昔はコピー機のOSをNetBSDで☆ その昔はコピー機のOSをNetBSDで☆ その昔はコピー機のOSをNetBSDで☆ その昔はコピー機のOSをNetBSDで

Page 3: mbed+Haskellどうでしょう

mbedって?mbedって?mbedって?mbedって?mbedって?

http://mbed.org/http://mbed.org/http://mbed.org/http://mbed.org/http://mbed.org/

☆ プロトタイピング用ワンボードマイコン☆ プロトタイピング用ワンボードマイコン☆ プロトタイピング用ワンボードマイコン☆ プロトタイピング用ワンボードマイコン☆ プロトタイピング用ワンボードマイコン

☆ Cortex-M3などのARMマイコンを使用☆ Cortex-M3などのARMマイコンを使用☆ Cortex-M3などのARMマイコンを使用☆ Cortex-M3などのARMマイコンを使用☆ Cortex-M3などのARMマイコンを使用

☆ Arduinoみたいなのの32bit CPU版☆ Arduinoみたいなのの32bit CPU版☆ Arduinoみたいなのの32bit CPU版☆ Arduinoみたいなのの32bit CPU版☆ Arduinoみたいなのの32bit CPU版

☆ Webブラウザだけで開発できる☆ Webブラウザだけで開発できる☆ Webブラウザだけで開発できる☆ Webブラウザだけで開発できる☆ Webブラウザだけで開発できる

☆ もちろんGCCを使った開発も可能☆ もちろんGCCを使った開発も可能☆ もちろんGCCを使った開発も可能☆ もちろんGCCを使った開発も可能☆ もちろんGCCを使った開発も可能

Page 4: mbed+Haskellどうでしょう

Haskellって?Haskellって?Haskellって?Haskellって?Haskellって?

http://www.haskell.org/http://www.haskell.org/http://www.haskell.org/http://www.haskell.org/http://www.haskell.org/

☆ 純粋関数型プログラミング言語らしい☆ 純粋関数型プログラミング言語らしい☆ 純粋関数型プログラミング言語らしい☆ 純粋関数型プログラミング言語らしい☆ 純粋関数型プログラミング言語らしい

☆ Javaよりも強い型☆ Javaよりも強い型☆ Javaよりも強い型☆ Javaよりも強い型☆ Javaよりも強い型

☆ 型推論で型を書く手間を軽減☆ 型推論で型を書く手間を軽減☆ 型推論で型を書く手間を軽減☆ 型推論で型を書く手間を軽減☆ 型推論で型を書く手間を軽減

☆ コンパイラをそなえる☆ コンパイラをそなえる☆ コンパイラをそなえる☆ コンパイラをそなえる☆ コンパイラをそなえる

えーと、ぼくは"強い型"が使えるところが気に入っていますえーと、ぼくは"強い型"が使えるところが気に入っていますえーと、ぼくは"強い型"が使えるところが気に入っていますえーと、ぼくは"強い型"が使えるところが気に入っていますえーと、ぼくは"強い型"が使えるところが気に入っています

Page 5: mbed+Haskellどうでしょう

組込Haskell? オイシイの?組込Haskell? オイシイの?組込Haskell? オイシイの?組込Haskell? オイシイの?組込Haskell? オイシイの?

☆ 低レイヤーにも強い型をつけたい!☆ 低レイヤーにも強い型をつけたい!☆ 低レイヤーにも強い型をつけたい!☆ 低レイヤーにも強い型をつけたい!☆ 低レイヤーにも強い型をつけたい!

☆ Ajhc http://ajhc.metasepi.org/☆ Ajhc http://ajhc.metasepi.org/☆ Ajhc http://ajhc.metasepi.org/☆ Ajhc http://ajhc.metasepi.org/☆ Ajhc http://ajhc.metasepi.org/

☆ ランタイムエラーを少なくできるのでは?☆ ランタイムエラーを少なくできるのでは?☆ ランタイムエラーを少なくできるのでは?☆ ランタイムエラーを少なくできるのでは?☆ ランタイムエラーを少なくできるのでは?

Page 6: mbed+Haskellどうでしょう

デモります!デモります!デモります!デモります!デモります!

☆ いちおう動画リンク付けておきますね☆ いちおう動画リンク付けておきますね☆ いちおう動画リンク付けておきますね☆ いちおう動画リンク付けておきますね☆ いちおう動画リンク付けておきますね

☆ ネットワーク不調で動かなかった時用に☆ ネットワーク不調で動かなかった時用に☆ ネットワーク不調で動かなかった時用に☆ ネットワーク不調で動かなかった時用に☆ ネットワーク不調で動かなかった時用に

http://bit.ly/mbedmovhttp://bit.ly/mbedmovhttp://bit.ly/mbedmovhttp://bit.ly/mbedmovhttp://bit.ly/mbedmov

Page 7: mbed+Haskellどうでしょう

Ajhcコンパイラ使ってみてみて!Ajhcコンパイラ使ってみてみて!Ajhcコンパイラ使ってみてみて!Ajhcコンパイラ使ってみてみて!Ajhcコンパイラ使ってみてみて!日本語マニュアル: http://ajhc.metasepi.org/manual_ja.html日本語マニュアル: http://ajhc.metasepi.org/manual_ja.html日本語マニュアル: http://ajhc.metasepi.org/manual_ja.html日本語マニュアル: http://ajhc.metasepi.org/manual_ja.html日本語マニュアル: http://ajhc.metasepi.org/manual_ja.html

☆ インストールは簡単☆ インストールは簡単☆ インストールは簡単☆ インストールは簡単☆ インストールは簡単$ sudo apt-get install haskell-platform gcc make m4$ export PATH=$HOME/.cabal/bin:$PATH$ cabal install ajhc

$ sudo apt-get install haskell-platform gcc make m4$ export PATH=$HOME/.cabal/bin:$PATH$ cabal install ajhc

$ sudo apt-get install haskell-platform gcc make m4$ export PATH=$HOME/.cabal/bin:$PATH$ cabal install ajhc

$ sudo apt-get install haskell-platform gcc make m4$ export PATH=$HOME/.cabal/bin:$PATH$ cabal install ajhc

$ sudo apt-get install haskell-platform gcc make m4$ export PATH=$HOME/.cabal/bin:$PATH$ cabal install ajhc

☆ 使い方も簡単☆ 使い方も簡単☆ 使い方も簡単☆ 使い方も簡単☆ 使い方も簡単$ echo 'main = print "hoge"' > Hoge.hs$ ajhc Hoge.hs$ ./hs.out"hoge"

$ echo 'main = print "hoge"' > Hoge.hs$ ajhc Hoge.hs$ ./hs.out"hoge"

$ echo 'main = print "hoge"' > Hoge.hs$ ajhc Hoge.hs$ ./hs.out"hoge"

$ echo 'main = print "hoge"' > Hoge.hs$ ajhc Hoge.hs$ ./hs.out"hoge"

$ echo 'main = print "hoge"' > Hoge.hs$ ajhc Hoge.hs$ ./hs.out"hoge"

☆ C言語吐き出させてみよう☆ C言語吐き出させてみよう☆ C言語吐き出させてみよう☆ C言語吐き出させてみよう☆ C言語吐き出させてみよう$ ajhc -C -o Hoge.c Hoge.hs$ file Hoge.cHoge.c: C source, ASCII text, with very long lines

$ ajhc -C -o Hoge.c Hoge.hs$ file Hoge.cHoge.c: C source, ASCII text, with very long lines

$ ajhc -C -o Hoge.c Hoge.hs$ file Hoge.cHoge.c: C source, ASCII text, with very long lines

$ ajhc -C -o Hoge.c Hoge.hs$ file Hoge.cHoge.c: C source, ASCII text, with very long lines

$ ajhc -C -o Hoge.c Hoge.hs$ file Hoge.cHoge.c: C source, ASCII text, with very long lines

Page 8: mbed+Haskellどうでしょう

「簡約!?λカ娘 Go!」に記事書いたよ「簡約!?λカ娘 Go!」に記事書いたよ「簡約!?λカ娘 Go!」に記事書いたよ「簡約!?λカ娘 Go!」に記事書いたよ「簡約!?λカ娘 Go!」に記事書いたよ

http://www.paraiso-lang.org/ikmsm/http://www.paraiso-lang.org/ikmsm/http://www.paraiso-lang.org/ikmsm/http://www.paraiso-lang.org/ikmsm/http://www.paraiso-lang.org/ikmsm/

☆ Lensライブラリの解説☆ Lensライブラリの解説☆ Lensライブラリの解説☆ Lensライブラリの解説☆ Lensライブラリの解説

☆ パーサの解説☆ パーサの解説☆ パーサの解説☆ パーサの解説☆ パーサの解説

☆ 圏論とモナド☆ 圏論とモナド☆ 圏論とモナド☆ 圏論とモナド☆ 圏論とモナド

☆ 囲碁AI☆ 囲碁AI☆ 囲碁AI☆ 囲碁AI☆ 囲碁AI

☆ Ajhcコンパイラの開発秘話 <= コレ書いた☆ Ajhcコンパイラの開発秘話 <= コレ書いた☆ Ajhcコンパイラの開発秘話 <= コレ書いた☆ Ajhcコンパイラの開発秘話 <= コレ書いた☆ Ajhcコンパイラの開発秘話 <= コレ書いた

立ち読み/購入したい方はぼくに声かけて!立ち読み/購入したい方はぼくに声かけて!立ち読み/購入したい方はぼくに声かけて!立ち読み/購入したい方はぼくに声かけて!立ち読み/購入したい方はぼくに声かけて!