← meengineering-note
melang
ningenMe の自作言語への道のり。
このサイトはAIが作ったコンテンツも含まれます。
01型・値・データモデル
- 型2026-09-28 02:00
- 型注釈の位置2026-09-28 02:00
- 型推論
- 型変換2026-09-28 02:00
- 暗黙の型変換2026-09-28 02:00
- Null / Null安全
- Boolean
- 数値型
- String / Unicode
- Array / List / Map / Set
- Tuple
- Struct / Record
- Enum / Sum Type2026-09-28 02:00
- Value Type / Reference Type
- Generics
- Interface / Trait
- 型の互換性・サブタイピング
- 型制約
- 型エイリアス
- 再帰型
- 型レベルの表現
- 型推論の境界とエラー表示
02値の変更・所有権・メモリ
- 値の不変性2026-09-28 02:00
- Ownership
- Borrowing / Reference
- Lifetime
- メモリ管理
- Garbage Collection
- RAII / Drop相当
- Copy / Move の意味
- 非Copy型
- Mutable Reference
- Closureと所有権・lifetimeの関係
- GCとownershipの共存方法
03関数・引数・エラー
- 関数定義
- 関数型
- Closure
- 高階関数
- 再帰
- 名前付き引数2026-09-28 02:00
- デフォルト引数
- 可変長引数
- 関数のオーバーロード
- Method Dispatch
- 関数の引数2026-09-28 02:00
- Result / Option
- エラー型
- エラー伝播
- `try` 命名
- Exceptionを採用するか
- panic / fatal error
- エラーとI/Oの関係
- エラーのrecoverability
04制御・データ処理
- if 文/式2026-09-30 12:00
- ループ / for 式
- Pattern Matching
- Guard
- Iterator
- Collection API
- Lazy Evaluation
- Generator
- Pipeline / Composition
- Partial application / Currying
- early return
- 式と文の境界
- Loop state / accumulator
- break / continue / return と式の整合性
- Evaluation order
05副作用・I/O
- 副作用の分類
- I/O の明示2026-09-28 02:00
- HTTP access
- DB access
- File access
- 外部プロセス
- Network access
- 時刻・乱数などのruntime依存
- 副作用を型で表現するか
- 副作用をsyntaxで明示するか
- Effect system / Effect polymorphism
- Pure / Impure context の境界
- Effect と Result / Option の関係
- I/O境界と純粋な処理の分離
- BFF / APIサーバーでの実用性
- トランザクション境界
- retry / timeout / cancellation
- resource lifetime
- Resource safety / cleanup
06並行・非同期処理
- 非同期処理
- Future / Promise
- async / await
- Cancellation
- Structured Concurrency
- 並行・並列処理
- Actor / CSPなどのConcurrency Model
- Shared State
- Mutex / Lock
- Channel
- Send / Sync相当
- I/Oとの組み合わせ
- timeout / deadline
- graceful shutdown
07Module / Package / API
- Module
- Package
- Import / Export
- Visibility
- 名前空間
- API境界
- 公開型 / 非公開型
- Dependency管理
- Circular Dependency
- Versioning
- Semantic Versioningを採用するか
- Public APIの互換性
08言語機構
- Operator Overloading
- Method Dispatch
- Reflection
- Macro / Metaprogramming
- Compile-time Evaluation
- Syntax / Sugar
- Attribute / Annotation
- Destructuring
- Pattern Syntax
- String / Unicode
- Numeric Types
- Literal Syntax
- Escaping
- Formatting
09実行・コンパイル
- Lexer
- Parser
- AST
- Name Resolution
- Type Checker
- Intermediate Representation
- Interpreter
- Bytecode
- VM
- Native Compilation
- JIT
- Runtime
- FFI
- ABI
- C ABI
- Native library integration
- WebAssembly
- OS API integration
10標準ライブラリ
- String
- Collection
- Math
- Time / Date
- File System
- Process
- HTTP Client
- HTTP Server
- JSON
- Serialization
- Schema / serialization compatibility
- Streaming / backpressure
- Logging
- Environment Variables
- CLI
- Concurrency primitives
- Testing utilities
- Database access
- TLS / Security primitives
11本番アプリケーション設計
- HTTP API
- REST / RPC
- OpenAPIとの連携
- Request / Response型
- Validation
- Authentication
- Authorization
- Session / Token
- Middleware
- Routing
- Database transaction
- Connection Pool
- Cache
- Queue
- Background Job
- Retry / Backoff
- Rate Limiting
- Configuration
- Secret管理
- Logging
- Metrics
- Tracing
- Health Check
- Graceful Shutdown
- Error Reporting
- Resource Limit
- Timeout / Deadline
- Build / Release
- Cross Compilation
- Container
- CI/CD
12開発体験・ツールチェーン
- CLI
- Package Manager
- Build System
- Formatter
- Linter
- Testing
- Documentation
- REPL
- Debugger
- Language Server
- Syntax Highlighting
- Editor / IDE integration
- Profiler
- Benchmark
- Dependency Audit
- Security tooling
13言語としての完成度を検証する題材
- CLI
- ファイル処理
- JSON変換
- HTTP Client
- HTTP Server
- DB CRUD
- BFF
- REST API
- 認証付きWeb API
- 非同期Job
- 外部API連携
- DB + Cache + Queueを使うサービス
14命名・公開
- 言語名2026-09-28 02:00
- CLIコマンド名
- ファイル拡張子
- Package / Module命名規則
- Standard Library namespace
- Documentation URL
- Repository / Organization
- Versioning policy
言語比較
各noteでは、次の21言語で設計を比較しています。プログラミング言語ごとの型・構文・仕様の違いを並べたうえで、melangの方針を決めます。言語名からは、その言語について各noteで比較した内容をまとめて読めます。