2026-04-16

C言語学習用環境「やさしいC言語、Yasa-C」と同程度のwasm実行環境をいろんな環境で動かせるC言語で実装しました。

コアは、wasmrun.h 277行。いろんな環境でインクルードするだけで下記のように使えます。

#include "../wasmrun.h" #include static const uint8_t add_wasm[] = { 0x00, 0x61, 0x73, 0x6d, 0x01, 0x00, 0x00, 0x00, 0x01, 0x07, 0x01, 0x60, 0x02, 0x7f, 0x7f, 0x01, 0x7f, 0x03, 0x02, 0x01, 0x00, 0x07, 0x07, 0x01, 0x03, 0x61, 0x64, 0x64, 0x00, 0x00, 0x0a, 0x09, 0x01, 0x07, 0x00, 0x20, 0x00, 0x20, 0x01, 0x6a, 0x0b }; int main(void) { Wasmrun m; wasmrun_init(&m); if (!wasmrun_load(&m, add_wasm, sizeof(add_wasm))) { fprintf(stderr, "load error: %s\n", wasmrun_error(&m)); return 1; } int32_t args[] = { 40, 2 }; int32_t result = 0; int has_result = 0; if (!wasmrun_call_export(&m, "add", args, &result, &has_result)) { fprintf(stderr, "run error: %s\n", wasmrun_error(&m)); wasmrun_free(&m); return 1; } if (has_result) printf("%d\n", result); wasmrun_free(&m); return 0; }

(examples/simple.c)


「code4fukui/wasmrun」

シンプルなのでWabAssembly(wasm)の学習にもオススメです!

links
- やさしいC言語、Yasa-C - intとstructだけのCコンパイラ

2026-04-15
#js 
命数法オープンデータを使って、変換アプリを作りました。


「bigint 漢数字変換」

10000無量大数未満の大きな数を入力すると漢数字に変換します。



キロメガギガのSI単位系にも対応しています。1Q(クエタ)は、百譲!

電卓で意味もわからず自乗ボタン平方根ボタンを押して遊んだ頃を思い出しました。

2026-04-14
構造化プログラミング言語のスタンダード、C言語。
ちょっととっつきにくいところが玉に瑕。
そこで、簡単なゲームを開発できる環境と合わせて使うオープンソースを作りました。
その名は、やさしいC言語、Yasa-C(やさしー)!


「Yasa-C - easy C to wasm game playground」

左側にコードを書くとリアルタイムでコンパイルして、右側で遊べます。上下左右とスペース、Z、Xキーに対応しています。


「code4fukui/yasa-c on GitHub」

型は整数intと、構造体structのみ対応した、C言語のサブセットをwasm(WebAssembly)にコンパイルする compiler.js と、簡単な2Dゲーム環境 game.js を、app.js で、つないでいます。

links
- ITブートキャンプ Day3、C言語大好き、地域ケアがテーマのアイデアソン、VR新寮ROOMS
- ITブートキャンプ C言語補講、raylibで作ったジャンプゲーム

クリエイティブ・コモンズ・ライセンス
本ブログの記事や写真は「Creative Commons — CC BY 4.0」の下に提供します。記事内で紹介するプログラムや作品は、それぞれに記載されたライセンスを参照ください。
CC BY / @taisukef / アイコン画像 / プロフィール画像 / 「一日一創」画像 / RSS