← meengineering-note

melang

ningenMe の自作言語への道のり。

このサイトはAIが作ったコンテンツも含まれます。

01型・値・データモデル

  1. 型2026-09-28 02:00
  2. 型注釈の位置2026-09-28 02:00
  3. 型推論
  4. 型変換2026-09-28 02:00
  5. 暗黙の型変換2026-09-28 02:00
  6. Null / Null安全
  7. Boolean
  8. 数値型
  9. String / Unicode
  10. Array / List / Map / Set
  11. Tuple
  12. Struct / Record
  13. Enum / Sum Type2026-09-28 02:00
  14. Value Type / Reference Type
  15. Generics
  16. Interface / Trait
  17. 型の互換性・サブタイピング
  18. 型制約
  19. 型エイリアス
  20. 再帰型
  21. 型レベルの表現
  22. 型推論の境界とエラー表示

02値の変更・所有権・メモリ

  1. 値の不変性2026-09-28 02:00
  2. Ownership
  3. Borrowing / Reference
  4. Lifetime
  5. メモリ管理
  6. Garbage Collection
  7. RAII / Drop相当
  8. Copy / Move の意味
  9. 非Copy型
  10. Mutable Reference
  11. Closureと所有権・lifetimeの関係
  12. GCとownershipの共存方法

03関数・引数・エラー

  1. 関数定義
  2. 関数型
  3. Closure
  4. 高階関数
  5. 再帰
  6. 名前付き引数2026-09-28 02:00
  7. デフォルト引数
  8. 可変長引数
  9. 関数のオーバーロード
  10. Method Dispatch
  11. 関数の引数2026-09-28 02:00
  12. Result / Option
  13. エラー型
  14. エラー伝播
  15. `try` 命名
  16. Exceptionを採用するか
  17. panic / fatal error
  18. エラーとI/Oの関係
  19. エラーのrecoverability

04制御・データ処理

  1. if 文/式2026-09-30 12:00
  2. ループ / for 式
  3. Pattern Matching
  4. Guard
  5. Iterator
  6. Collection API
  7. Lazy Evaluation
  8. Generator
  9. Pipeline / Composition
  10. Partial application / Currying
  11. early return
  12. 式と文の境界
  13. Loop state / accumulator
  14. break / continue / return と式の整合性
  15. Evaluation order

05副作用・I/O

  1. 副作用の分類
  2. I/O の明示2026-09-28 02:00
  3. HTTP access
  4. DB access
  5. File access
  6. 外部プロセス
  7. Network access
  8. 時刻・乱数などのruntime依存
  9. 副作用を型で表現するか
  10. 副作用をsyntaxで明示するか
  11. Effect system / Effect polymorphism
  12. Pure / Impure context の境界
  13. Effect と Result / Option の関係
  14. I/O境界と純粋な処理の分離
  15. BFF / APIサーバーでの実用性
  16. トランザクション境界
  17. retry / timeout / cancellation
  18. resource lifetime
  19. Resource safety / cleanup

06並行・非同期処理

  1. 非同期処理
  2. Future / Promise
  3. async / await
  4. Cancellation
  5. Structured Concurrency
  6. 並行・並列処理
  7. Actor / CSPなどのConcurrency Model
  8. Shared State
  9. Mutex / Lock
  10. Channel
  11. Send / Sync相当
  12. I/Oとの組み合わせ
  13. timeout / deadline
  14. graceful shutdown

07Module / Package / API

  1. Module
  2. Package
  3. Import / Export
  4. Visibility
  5. 名前空間
  6. API境界
  7. 公開型 / 非公開型
  8. Dependency管理
  9. Circular Dependency
  10. Versioning
  11. Semantic Versioningを採用するか
  12. Public APIの互換性

08言語機構

  1. Operator Overloading
  2. Method Dispatch
  3. Reflection
  4. Macro / Metaprogramming
  5. Compile-time Evaluation
  6. Syntax / Sugar
  7. Attribute / Annotation
  8. Destructuring
  9. Pattern Syntax
  10. String / Unicode
  11. Numeric Types
  12. Literal Syntax
  13. Escaping
  14. Formatting

09実行・コンパイル

  1. Lexer
  2. Parser
  3. AST
  4. Name Resolution
  5. Type Checker
  6. Intermediate Representation
  7. Interpreter
  8. Bytecode
  9. VM
  10. Native Compilation
  11. JIT
  12. Runtime
  13. FFI
  14. ABI
  15. C ABI
  16. Native library integration
  17. WebAssembly
  18. OS API integration

10標準ライブラリ

  1. String
  2. Collection
  3. Math
  4. Time / Date
  5. File System
  6. Process
  7. HTTP Client
  8. HTTP Server
  9. JSON
  10. Serialization
  11. Schema / serialization compatibility
  12. Streaming / backpressure
  13. Logging
  14. Environment Variables
  15. CLI
  16. Concurrency primitives
  17. Testing utilities
  18. Database access
  19. TLS / Security primitives

11本番アプリケーション設計

  1. HTTP API
  2. REST / RPC
  3. OpenAPIとの連携
  4. Request / Response型
  5. Validation
  6. Authentication
  7. Authorization
  8. Session / Token
  9. Middleware
  10. Routing
  11. Database transaction
  12. Connection Pool
  13. Cache
  14. Queue
  15. Background Job
  16. Retry / Backoff
  17. Rate Limiting
  18. Configuration
  19. Secret管理
  20. Logging
  21. Metrics
  22. Tracing
  23. Health Check
  24. Graceful Shutdown
  25. Error Reporting
  26. Resource Limit
  27. Timeout / Deadline
  28. Build / Release
  29. Cross Compilation
  30. Container
  31. CI/CD

12開発体験・ツールチェーン

  1. CLI
  2. Package Manager
  3. Build System
  4. Formatter
  5. Linter
  6. Testing
  7. Documentation
  8. REPL
  9. Debugger
  10. Language Server
  11. Syntax Highlighting
  12. Editor / IDE integration
  13. Profiler
  14. Benchmark
  15. Dependency Audit
  16. Security tooling

13言語としての完成度を検証する題材

  1. CLI
  2. ファイル処理
  3. JSON変換
  4. HTTP Client
  5. HTTP Server
  6. DB CRUD
  7. BFF
  8. REST API
  9. 認証付きWeb API
  10. 非同期Job
  11. 外部API連携
  12. DB + Cache + Queueを使うサービス

14命名・公開

  1. 言語名2026-09-28 02:00
  2. CLIコマンド名
  3. ファイル拡張子
  4. Package / Module命名規則
  5. Standard Library namespace
  6. Documentation URL
  7. Repository / Organization
  8. Versioning policy

言語比較

各noteでは、次の21言語で設計を比較しています。プログラミング言語ごとの型・構文・仕様の違いを並べたうえで、melangの方針を決めます。言語名からは、その言語について各noteで比較した内容をまとめて読めます。