Welcome to the official documentation repository for ObjectIR, a high-level intermediate representation (IR) for object-oriented languages. This repository contains all specifications, guides, and reference materials for ObjectIR, serving as the central resource for users, implementers, and contributors.
ObjectIR is a typed, object-oriented intermediate representation designed to bridge high-level OOP languages (such as C#, Java, and C++) with multiple target runtimes. It combines stack-based instructions with structured control flow, enabling advanced analysis, transformation, and cross-language interoperability.
For the latest Language specification available, check out our website at https://finite.ovh/PDF/ObjectIR.pdf (external link).
Note: This repository contains only documentation and specifications. For source code, examples, and implementation details, see the Lattice Research Runtime (external link).
- Start Here: Getting Started Guide
- Formal Grammar: ObjectIR Grammar
- Architecture Overview: System Architecture
- Instruction Reference: VM Instructions (Text Format) | Instruction Serialization (JSON)
- Module Formats: Module Serialization | FOB Binary Format
- Quick Reference: Construct Quick Reference
- All Documentation: docs/
- Examples: examples/
For the latest updates, see the CHANGELOG (if available).
- Getting Started
- Architecture
- Formal Grammar
- VM Instructions (Text Format)
- Instruction Serialization (JSON)
- Module Serialization
- FOB Binary Format
- Module Loader
- Specification Index
- Fortran 90 Compiler
- Language Specification
Contributions to the documentation are welcome! To suggest changes, report issues, or propose new guides/specifications:
- Open an Issue
- Start a Discussion
- See CONTRIBUTING.md for guidelines (if available)
This documentation is licensed under the MIT License. See the LICENSE file for details.
ObjectIR draws inspiration from:
- LLVM IR: Modular architecture, SSA form concepts
- .NET CIL: Stack-based operations, rich type system
- JVM Bytecode: Cross-platform vision
- WebAssembly: Structured control flow
- MLIR: Extensible dialect system
Status: Early Development — Documentation and specifications are evolving and subject to change.