28
Synthesijer ででで FORTH ででででで 2015/8/2 でででででででで ででででで

Synthesijer で作るFORTH仮想マシン

  • Upload
    ryos36

  • View
    189

  • Download
    0

Embed Size (px)

Citation preview

Synthesijer で作る

FORTH 仮想マシン

2015/8/2有限会社シンビー鈴木量三朗

発表がとりの前の前で光栄です

FORTH

Who are you?

• わたし:すずきりょうざぶろう• Twitter: @ryos36• 生涯一プログラマ

本も書きました

FPGA の仕事します

今回の主役は

FORTH

まずは Synthesijer の紹介

• Java でプログラム

でコンパイル

FPGA 上で動く!!

私の CPU 作成履歴• 過去に パタヘネ の RISC にチャレンジ

あっさり挫折

Synthesijer でなら CPU を作れる !!

• 今回作ったのは FORTH の VM(Virtual Machine)  ん?バーチャル? ( 細かいことは気にしない ) ん? FORTH って CPU だっけ? ( 細かいことは気にしない )

だって Java でプログラムだから

僕にもできた !!

余談: Eclipse のプラグインを作ってみた

• Synthesijer すげー– 世の中に広めるべきだ (by わたし )

メニューをたしただけ、、、

要望があるなら公開します。(プラグインとしてあまりレベルは高くない)

FORTH 入門• 逆ポーランド• スタック型• スレッデッドコード

今回移植したのは正確には RETRO 言語という FORTH 系の言語

LT だからキーワードだけね

余談 : 逆ポーランドといえばこれ

Wikipedia より

HP-41C 逆ポーランド方式の電卓

1981 年当時 70,000 円超でした

FORTH 入門 ~ その 2~

> 3> 5> +> putn8

3 3

5

8

8

RETRO では p ではなくて putn を使って表示。

FORTH VM

• VM だからオペコードがある (30 個 )

Java での実装

switch case による実装

Stack は int の配列

Synthesijer のための変更• VM 的にはほとんどなし !!• 入出力の変更有– UART ( サンプルを参考に実装 )– イメージの入出力 ( イメージは初期値で持

つ)

作業を始めて土日で(徹夜せずに)完成 !!実際に SP605 で動く !!

すいません。手抜きで AWK をつかってごにょごにょっとしてます。

ここが便利 Synthesijer

Printf 的なデバッグが可能 !!

CUI も可能

ここが便利 Synthesijer

ソフトで使われるデバッグ手法が可能

Printf 的なデバッグが可能 !!

動いたぜ !!FORTH

結果がジミすぎてすいません。必要 RAM サイズはミニマムで 12KB (もっと絞れるかも)

FORTH 入門 ~ その 3~

• 断片的なコード (Threaded Code) : ( コロン ) ではじまり ; ( セミコロン ) で終わる

• 頭の中でコンパイルしている (= ハンドコンパイル的発想 )

So What?

• で、 FPGA の中に FORTH が入って何がうれしいの?

Synthesijer の使い方のコツ• Java であらかじめプログラムのバグをつ

ぶす• HDL 的な考えをしない

簡単すぎてM 子もびっく

広がる妄想 with

• いろんな VM/CPU つくれるのでは?• ソフトからハードに移植できるのでは?• FORTH を極める

あなたが選ぶ Synthesijer との未来

広がる妄想 with

• いろんな VM/CPU つくれるのでは?• ソフトからハードに移植できるのでは?• FORTH を極める

あなたが選ぶ Synthesijer との未来

• JavaScript• ruby/mruby• erlang

広がる妄想 with

• いろんな VM/CPU つくれるのでは?• ソフトからハードに移植できるのでは?• FORTH を極める

あなたが選ぶ Synthesijer との未来

• ハードの分野と思われていなかったもの ? ( 早い者勝ちだ !!)– httpd– ファイルシステム– DB

広がる妄想 with

• いろんな VM/CPU つくれるのでは?• ソフトからハードに移植できるのでは?• FORTH を極める

あなたが選ぶ Synthesijer との未来

May The FORTH Be With You

ご清聴ありがとうございました

[ 量 ]