PicoRubyA Ruby interpreter implementation for one-chip microcontrollers - PicoRubyGitHub

ちゃんと中身を理解できてなかったので、コードや資料を読んで理解したい。

特にパーサーやVMの周りをどうやって小さくできているのか。

まずは基礎知識から。

公式情報

PicoRuby DocumentationAPI documentationPicoRuby Documentation

羽角さんの資料

2025

MicroRuby: True Microcontroller RubyRubyKaigi 2025, #rubykaigiRubyKaigi RubyKaigi 2025 で発表したMicroRubyとはなんだったのか - hasumikin.comRubyKaigi 2025 で発表したMicroRubyとはなんだったのかhasumikin.com

MicroRubyとは?

Ruby会議には参加できてないので、詳細はブログの記事からの理解ですが、以下のような、図のような感じなのかと理解しました。コンパイラをカスタムして準備してしまうのが驚くべきところ。パーサーもPrismに置き換わっているらしい。

で、コンパイラの周りやmrbgemの扱いなどは、やはりコードを追っていかないといけない。

2024

Unlock The Universal Parsers: A New PicoRuby CompilerRubyKaigi 2024, #rubykaigiRubyKaigi 2024 令和の隙間産業——PicoRubyはどこから来てどこへ行くのか - HASUMI Hitoshi - Rabbit Slide ShowPresentation slide for 大阪Ruby会議04Rabbit Slide Show Ruby Prize 2021 最終ノミネート者 羽角 均 インタビューRubyPrizeRubyPrize | Rubyコミュニティの「個人賞」

Matz:「そっか、256KBあったらmryubyのVMだけなら動くのか。」

ESP32でPSRAM 8M乗ってるとmrubyのパーサ/コンパイラも込みで動かせた実績あるので、Raspi PicoでもPSRAM搭載ボードなら行けるはず。

羽角さん「僕としては、PicoRubyとかmrubyのエコシステムを広げていくのに、PicoRubyコンパイラを作っただけじゃ面白くなくて、使われないと楽しくないわけですよね。」

とても共感。C書けるなら、Cで書いてしまっても良いのだけど、せっかく環境を作るからには他の人に使ってほしい。羽角さんは一人でエコシステムまで作ろうとしててほんとすごい。

n月刊ラムダノート Vol.4, No.1(2024)計算機好きのための技術解説情報誌 エヌゲッカンラムダノート(不定期刊行)106ページ A5判 紙書籍は1色刷 2024年2月6日 第4巻第1号/通巻7号 発行 目次 #1 手を動かして学ぶストリーム処理入門(中谷翔)#2 WebAssemblyの制約を越える(齋藤優太) #3 PicoRubyといっしょに学ぶ、プログラミング言語が電気回路を動かす仕組み(羽角均)技術書出版と販売のラムダノート

買って読んでみた。

基本的なところからとても丁寧に書いてあるので、PicoRubyちゃんと使いこなしたい方は必読と思いました。

その他

mruby/c and data-flow programming for small devicesRubyKaigi 2025, #rubykaigiRubyKaigi mruby/c and data-flow programming for small devicesIn my presentation, I will show how data-flow programming can be used for software development of small devices. The effectiveness of the proposed method is demonstrated with a microcontroller implementation in mruby/c. In IoT programming, we want to focus on the flow of data generation and processing. This is data flow programming, also known as the Node-RED development environment. Data flow is processed asynchronously. I will explain how to implement this asynchronous processing in a reasonable manner using mruby/c and demonstrate its operation on a real microcontroller. - Download as a PDF, PPTX or view online for freeSlideshare

mruby/cについて、田中先生のスライドが公開されていた。

Node-REDから使えるようにした、というお話。

次のステップ

PicoRubyのコードを読む。