---
title: 関数電卓プログラミングの世界: Tranformer On Calc
tags: 
author: [stepney141](https://image.docswell.com/user/stepney141)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/8EDKPLY37G.jpg?width=480
description: Kernel/VM探検隊 @東京 No.19 での発表スライドです
published: August 22, 26
canonical: https://image.docswell.com/s/stepney141/5GN6DJ-kernel-vm-tokyo-19
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/8EDKPLY37G.jpg)

関数電卓プログラミングの世界
stepney141
Kernel/VM探検隊@東京 No.19
2026年 8⽉ 22⽇


# Page. 2

![Page Image](https://bcdn.docswell.com/page/V7PKN26PJ8.jpg)

stepney141
Kernel/VM探検隊@東京 No.19
2026年 8⽉ 22⽇


# Page. 3

![Page Image](https://bcdn.docswell.com/page/2JVVKD3VJQ.jpg)

Transformer On Calc
stepney141
Kernel/VM探検隊@東京 No.19
2026年 8⽉ 22⽇


# Page. 4

![Page Image](https://bcdn.docswell.com/page/5EGLQY31JL.jpg)

お前は誰？
素性
●
SWEもどきの基盤系SE @某SIer
●
ボードゲームの計算機解析 + AI @某⼤学院
●
低レイヤ初⼼者
●
Twitter: @stepney141
趣味
●
ボードゲームエンジンの開発
●
関数電卓のプログラミング (諸事情でしばらく離れてはいたが...)
●
魔術（オカルティズム）の歴史
●
Webアーカイブ活動
4


# Page. 5

![Page Image](https://bcdn.docswell.com/page/4JQYKM5N7P.jpg)

関数電卓
科学技術計算に特化した電卓の総称
三⾓関数, 指数・対数関数, 累乗・累乗根などの
機能を備えていることが多い.
研究・開発現場, 教育現場などで広く使われる.
主なメーカー :
CASIO, Hewlett Packard, Texas Instruments
5


# Page. 6

![Page Image](https://bcdn.docswell.com/page/K74WPV93E1.jpg)

プログラム電卓 / グラフ電卓
プログラミング機能・グラフ描画機能を備えた
(関数)電卓の総称
搭載されている⾔語の例 :
●
●
●
メーカー独⾃のインタプリタ⾔語
アセンブリ⾔語
⼀般的な各種⾼級⾔語 (BASIC, C, Python,
Pascal, Lisp, Lua, etc…)
実務向け需要はパソコンの普及で完全に絶滅した
が, 教育現場では今でもかなり需要がある.
(試験持ち込み⽤の機能制限モードがある機種も)
6


# Page. 7

![Page Image](https://bcdn.docswell.com/page/LJ1Y93KZEG.jpg)

TI-Nspire CX II CAS
教育向けグラフ電卓「TI-Nspire」シリーズの最
新モデル (2019年発売)
➡ 電卓というより⼩型PDAに近い！
●
CPU : ARM926EJ-S (ARMv5TEJ, 396 MHz)
●
SDRAM : 64MB
●
NANDストレージ: 128MB
○
うち, 約30MBはOS⽤パーティション
●
Flash ROM : 512KB (※ブートローダー⽤)
●
画⾯ : 320×240 16bit LCD (65536⾊)
●
独⾃BASIC⽅⾔, Lua, MicroPythonに対応
7


# Page. 8

![Page Image](https://bcdn.docswell.com/page/GJWGQPD672.jpg)

Transformer
● 雑な説明 : トークンを⼊⼒すると, それに続く別のトークンの確率分布
を出⼒する深層学習モデルのひとつ
● 皆さんご存じの Large Language Model の基礎となる仕組み
⼊⼒
(≒⽂字列)
モデル
出⼒
(単語 i が続く確
率の組)
8


# Page. 9

![Page Image](https://bcdn.docswell.com/page/4EZLWKGR73.jpg)

なんでTransformerを動かす必要が？
● お題⽬：「教育⽤デバイス」を謳うからには⽣成AIが動くべき！
● 当初はもっとハードウェア寄りのネタを考えていたが, うまくいかな
かった
○ USB経由で電卓をインターネットに出そうとしたが, 電卓のUSB周
りの仕様が旧モデルから変わっていてうまくいかなかった
○ 失敗した時点で発表1週間前
○ ➡ アプリケーション層で完結するネタに路線変更
●
やってみたかった！！！！！！！！！
9


# Page. 10

![Page Image](https://bcdn.docswell.com/page/Y76WGQY17V.jpg)

開発環境 : TI-Nspireの解析コミュニティ
● 欧⽶には電卓で遊ぶのが好きなパソコンオタクが多く, 様々なリバース
エンジニアリングが⾏われている
● 通信⽅式, 実⾏ファイル形式, OSのシステムコールなどが解析済み
10


# Page. 11

![Page Image](https://bcdn.docswell.com/page/G75MVRGL74.jpg)

開発環境 : Ndless
TI-Nspire⽤のコミュニティ製ネイティブ実⾏環境
Ndlessを介してシステムコールを叩き, 公式サポートされていない⾔語や機
能を使って⾼度なプログラムを書くことができる.
11


# Page. 12

![Page Image](https://bcdn.docswell.com/page/9J293DY3ER.jpg)

開発環境 : Ndless
● 本来, TI-NspireにはARMアセンブリを実⾏する機能はない
➡ TI-Nspire OSにexploitを仕掛け, 無理やりARMアセンブリを実⾏
している
● もちろんTI⾮公認なので, OSアップデートのたびに脆弱性が潰され,
また新たなexploitが発⾒される...を繰り返している
● 現在のNdlessの仕組み
○
○
OS組み込みのLuaスクリプト + 物理演算機能で⼤量のオブジェクトを
作ったあと, オブジェクトの参照を破壊して任意コード実⾏を引き起こす
■ heap sprayという攻撃⼿法を併⽤して成功確率を上げている
これにより, OSの「⽂書を開く処理」に対して「⽂書にARMアセンブリ
が含まれるなら実⾏する」というフックを仕掛けている
12


# Page. 13

![Page Image](https://bcdn.docswell.com/page/DEY412G8JM.jpg)

動かすために使うもの
TinyStories
ごく⼩さいモデルでも, 限定された短い物語なら, ある程度まとまった⽂章
を⽣成できるよう設計されたデータセット
[2305.07759] TinyStories: How Small Can Language Models Be and Still Speak Coherent English?
llama2.c
pure C で書かれたTransformer推論フレームワーク
➡ GPT-5.6-Sol でかなりスムーズに Ndless 環境下に移植できた
GitHub - karpathy/llama2.c: Inference Llama 2 in one ﬁle of pure C
13


# Page. 14

![Page Image](https://bcdn.docswell.com/page/VJNY28G978.jpg)

TinyStories
3-4 歳くらいの語彙だけで書かれており, 頭の悪いモデルにも優しい &amp; 易しい！
14


# Page. 15

![Page Image](https://bcdn.docswell.com/page/YE9P1KW3J3.jpg)

⽅針
● スペック上の RAM 容量は 64 MiB だが, OS のメモリ消費量がわからな
いので可能な限り⼩さく収めたい
● とりあえず⼀番⼩さい TinyStories 260K でどうなるか試してみる
パラメータ数
260,032
層数
5
隠れ層の次元
64
フィードフォーワード層の次元
172
最⼤コンテクスト⻑
512
15


# Page. 16

![Page Image](https://bcdn.docswell.com/page/GE8D4RNLED.jpg)

容量的にはなんか意外と⾏けそうじゃないか？
https://huggingface.co/karpathy/tinyllamas/tree/main/stories260K
16


# Page. 17

![Page Image](https://bcdn.docswell.com/page/LELM6KPQ7R.jpg)

意外と⾏けた
● FP32 (単精度浮動⼩数) のモデルをそのまま移植すると, 64トークンの
⽣成に平均で7秒ほどかかった
○ だいたい 9 tokens/second くらい
○ ローカル(L)LMとしては上出来な速度
● もっと「⼀⽂字出すのに数秒待たされる」レベルのものを想定していた
が, 意外と普通の速度で動かせるということが分かった
● であれば, せっかくならもっと速くしたい！
17


# Page. 18

![Page Image](https://bcdn.docswell.com/page/4JMY522KJW.jpg)

⾔語モデルの量⼦化
● モデルのパラメータの精度を下げ, 軽量化・⾼速化すること
● llama2.c には, すでに Q8量⼦化 (8ビット整数に丸める) が実装済み
● ARM926EJ-S は FPU がない (＝ソフトウェアエミュレーション) ので,
FP32をやめることにより純粋に実⾏速度向上が期待できる
➡ 平均 16 tokens/second まで⾼速化
FP32
weights
1.23
-0.72
0.08
……
Q8
INT8
weights
94
-55
6
…… × scale
18


# Page. 19

![Page Image](https://bcdn.docswell.com/page/PJR93MM679.jpg)

ソフトウェアとしての体裁を整える
● 当初は, プロンプトは固定の選択肢から選ぶ機能しかつけてなかった
● ⾃由にプロンプトを⼊⼒できるようにしたい！
● OS標準の⼊⼒ダイアログはあるが, UIとして使いにくい...
● Ndless でキー⼊⼒を直接読み, フレームバッファに突っ込む
● GPT-5.6-Sol がかなり良い感じにやってくれた
● こういう制約の強い機械で遊ぶ⾯⽩さは、普段は『当然ある』と思っ
ている前提が⾒えることなのかもしれない
○ Kernel/VM 基準ではとても制約が弱い機械ではある
19


# Page. 20

![Page Image](https://bcdn.docswell.com/page/PEXQ4VVDJX.jpg)

Demo
20


# Page. 21

![Page Image](https://bcdn.docswell.com/page/3EK9ZQQDED.jpg)

Future Work
● 制約をもうちょっと強くしたい
○
○
モデルが⼩さすぎて出⼒精度が悪いので, もうちょっと⼤きくしたい
もっとしょっぱい性能の機種でも試したい
● やっぱり関数電卓からインターネットに出たいですよね〜〜〜〜！！
○
モチベーション : インターネットに出ると楽しく, かつ⾊々できる
■ ex. (本物の)LLMに接続できる
■ ex. 仮想通貨マイニングができる
● 関数電卓でもLinuxを動かしたい
○
○
○
先⾏例はたくさんあるが, まだ成功してない機種で動かしたい
現在のスキルレベル : 組み込みLinuxの知識がなく, 「何を使って勉強す
ればいいか勉強する」くらい
ゆっくりやっていきます
21


# Page. 22

![Page Image](https://bcdn.docswell.com/page/L73WDPPP75.jpg)

次回 : 関数電卓で〇〇してみた (仮題)
stepney141
Kernel/VM探検隊 @どこか
鋭意準備中！


