📚 Reorganize CLAUDE.md: slim down from 916 to 395 lines with proper doc links
- Keep essential information within 500 lines (now 395 lines) - Maintain important syntax examples and development principles - Move detailed information to appropriate docs files: - Development practices → docs/guides/development-practices.md - Testing guide → docs/guides/testing-guide.md - Claude issues → docs/tools/claude-issues.md - Add proper links to all referenced documentation - Balance between minimal entry point and practical usability
This commit is contained in:
52
docs/papers/active/mir15-implementation/README.md
Normal file
52
docs/papers/active/mir15-implementation/README.md
Normal file
@ -0,0 +1,52 @@
|
||||
# 論文:15命令MIRによるNyash言語の設計と実装
|
||||
|
||||
**30日間でインタープリタからJIT/AOTネイティブビルドまで**
|
||||
|
||||
Date: 2025-08-31
|
||||
Status: Proposed
|
||||
提案者: ChatGPT5
|
||||
|
||||
## 📑 概要
|
||||
|
||||
たった15命令のMIRで、インタープリタ(VM)からJIT、さらにネイティブビルドまで通した言語ができた!これは言語設計史的にもかなりインパクトのある成果。
|
||||
|
||||
## 📝 タイトル
|
||||
|
||||
- **日本語**: 「15命令MIRによるNyash言語の設計と実装:インタープリタからJIT/AOTネイティブビルドまでの30日間」
|
||||
- **英語**: "Design and Implementation of the Nyash Language with a 15-Instruction MIR: From Interpreter to JIT and Native AOT in 30 Days"
|
||||
|
||||
## 🎯 主要な貢献
|
||||
|
||||
1. **最小命令セット**: 26→15命令への削減成功
|
||||
2. **完全な実装**: VM/JIT/AOT全バックエンド実現
|
||||
3. **開発速度**: わずか30日間での達成
|
||||
4. **コンパクトさ**: 約4000行での実装
|
||||
|
||||
## 📋 ファイル構成
|
||||
|
||||
- `abstract.md` - アブストラクト(日英)
|
||||
- `introduction.md` - イントロダクション
|
||||
- `design-philosophy.md` - 設計哲学(Everything is Box)
|
||||
- `mir15-design.md` - MIR15命令セットの詳細
|
||||
- `implementation.md` - 30日間の実装記録
|
||||
- `validation.md` - VM/JIT/AOT等価性検証
|
||||
- `evaluation.md` - パフォーマンス評価
|
||||
- `related-work.md` - 関連研究
|
||||
- `conclusion.md` - 結論と将来展望
|
||||
|
||||
## 🚀 執筆計画
|
||||
|
||||
### Phase 1: 速報版(現在のVM/JIT/EXE状態)
|
||||
- arXiv投稿用の簡易版
|
||||
- 実装の概要と初期結果
|
||||
|
||||
### Phase 2: 完全版(LLVM実装後)
|
||||
- 全バックエンドの性能比較
|
||||
- 詳細な実装解説
|
||||
- 査読付き会議投稿用
|
||||
|
||||
## 📚 投稿先候補
|
||||
|
||||
- **速報**: arXiv → Zenodo
|
||||
- **査読**: PLDI, ICFP, OOPSLA
|
||||
- **国内**: 情報処理学会、ソフトウェア科学会
|
||||
29
docs/papers/active/mir15-implementation/abstract.md
Normal file
29
docs/papers/active/mir15-implementation/abstract.md
Normal file
@ -0,0 +1,29 @@
|
||||
# Abstract / アブストラクト
|
||||
|
||||
## 日本語版
|
||||
|
||||
Nyashは「Everything is Box」という設計哲学に基づき、変数・関数・同期・GC・プラグインをすべてBoxで統一したプログラミング言語である。本研究では、中間表現MIRを従来の26命令から15命令に削減し、それにもかかわらずガベージコレクション、非同期処理、同期処理、プラグインシステム、さらには将来のGPU計算まで表現可能であることを示した。さらに、この15命令MIRを基盤に、インタープリタ(VM)、JITコンパイラ、AOTコンパイルによるネイティブ実行ファイル生成を、わずか30日で実装した。本稿ではMIR命令セットの設計、VM/JIT/AOTの等価性検証(I/Oトレース一致)、および4K行規模での実装経験を報告する。
|
||||
|
||||
### キーワード
|
||||
プログラミング言語設計、中間表現、最小命令セット、Box統一モデル、コンパイラ実装
|
||||
|
||||
## English Version
|
||||
|
||||
Nyash is a programming language based on the philosophy of "Everything is a Box," unifying variables, functions, concurrency, garbage collection, and plugins under a single abstraction. We reduced the intermediate representation (MIR) from 26 to 15 instructions, while still being able to express garbage collection, asynchronous and synchronous operations, plugin systems, and even potential future GPU computation. Building on this 15-instruction MIR, we implemented an interpreter (VM), a JIT compiler, and an AOT compiler that produces native executables—all within 30 days. This paper presents the design of the MIR instruction set, the equivalence validation between VM/JIT/AOT (via I/O trace matching), and insights from a ~4 KLoC implementation.
|
||||
|
||||
### Keywords
|
||||
Programming language design, Intermediate representation, Minimal instruction set, Unified Box model, Compiler implementation
|
||||
|
||||
## 要点整理
|
||||
|
||||
### 革新的な点
|
||||
1. **15命令という極限的シンプルさ**: 実用言語として前例のない少なさ
|
||||
2. **30日間での全実装**: 通常は年単位のプロジェクトを1ヶ月で
|
||||
3. **4000行のコンパクトさ**: 教育・学習に最適な規模
|
||||
4. **完全な機能性**: GC、並行性、プラグインまでカバー
|
||||
|
||||
### 実証された内容
|
||||
- MIR命令数と表現力はトレードオフではない
|
||||
- シンプルさが開発速度を劇的に向上させる
|
||||
- 統一モデルが実装の見通しを良くする
|
||||
- 小規模でも実用的な言語が作れる
|
||||
Reference in New Issue
Block a user