Skip to content

Arbath/xtuml-compiler

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

xtUML Compiler

Compiler berbasis Rust untuk menerjemahkan model xtUML (Executable UML) dari format JSON menjadi kode sumber dalam berbagai bahasa pemrograman seperti Python, Java, dan Javascript.


Link Update Proyek : Github Arbath

Tujuan Proyek

Proyek ini bertujuan membangun model-driven compiler yang mampu:

  1. Membaca model xtUML dalam bentuk JSON.
  2. Melakukan analisis semantik terhadap elemen model (kelas, state, event, dsb).
  3. Menghasilkan kode sumber otomatis dari model ke berbagai target bahasa.

Dengan pendekatan ini, pengembang dapat berfokus pada desain model sistem, bukan menulis kode secara manual.


Struktur Direktori

xtuml-compiler/
│
├── src/
│   ├── main.rs             → Entry point CLI (mengatur input & output)
│   ├── parser.rs           → Parser untuk membaca model xtUML (JSON → Struct)
│   ├── semantic.rs         → Analisis semantik & pembentukan AST
│   ├── generator/          → Modul generator kode
│   │   ├── python.rs       → Generator untuk bahasa Python
│   │   ├── java.rs         → Generator untuk bahasa Java
│   │   └── javascript.rs   → Generator untuk bahasa Javascript
│   └── templates/          → Template file untuk masing-masing bahasa target
│
├── models/
│   └── example_model.json  → Contoh model xtUML dalam format JSON
│
└── output/
    └── generated_code/         → Hasil kode sumber yang dihasilkan oleh compiler

Cara Menjalankan

Gunakan file binary yang telah disedikan di github release atau jalankan sendiri di komputer anda.

1. Clone repository

git clone https://github.com/Arbath/xtuml-compiler.git
cd xtuml-compiler

2. Build project

Pastikan kamu sudah menginstal Rust dan Cargo. Kemudian jalankan:

cargo build

3. Jalankan compiler

Contoh menjalankan compiler untuk model contoh:

cargo run -- models/example_model.json --lang java

Atau untuk bahasa lain:

cargo run -- models/example_model.json --lang python
cargo run -- models/example_model.json --lang javascript

Hasil output akan muncul di folder:

output/generated_code/

Konsep Dasar xtUML

xtUML (Executable UML) adalah pengembangan dari UML yang memungkinkan model sistem:

  • Dapat dijalankan atau disimulasikan, bukan sekadar digambar.
  • Dapat diterjemahkan langsung menjadi kode sumber melalui model compiler.

Compiler ini berperan sebagai bridge antara model xtUML (abstrak) dan kode implementasi (nyata).


Teknologi yang Digunakan

Komponen Deskripsi
Rust Bahasa utama untuk kecepatan dan keamanan memori
Serde Parsing dan serialisasi JSON
Clap Parser CLI untuk argumen --lang dan path model
Tera / Handlebars Template engine untuk generator kode
Walkdir / fs File system handling untuk output otomatis

Tahapan Kompilasi

        JSON Model
            │
            ▼
       [Parser Layer]
    (serde_json → Struct)
            │
            ▼
   [Semantic Analyzer Layer]
  (validasi class, state, event)
            │
            ▼
     [Code Generator Layer]
 (C++ / Java / Python templates)
            │
            ▼
     generated_code/


Roadmap Pengembangan

Tahap Deskripsi Status
1 Struktur dasar proyek & parser JSON Selesai
2 Analisis semantik model Selesai
3 Generator kode Python / Java / Javascript Selesai
4 Validasi event & state machine Selesai
5 Integrasi WebAssembly (xtUML web IDE) Rencana jangka panjang

Kontribusi

Kontribusi sangat terbuka! Silakan buat pull request atau issue jika menemukan bug atau ide baru.

Langkah:

  1. Fork repository
  2. Buat branch fitur baru
  3. Lakukan perubahan
  4. Ajukan pull request

📜 Lisensi

Proyek ini dirilis di bawah lisensi MIT License silakan gunakan, ubah, dan sebarkan dengan bebas selama mencantumkan atribusi.


“Model once, generate everywhere.”

About

Compiler XTUML to any programming language

Topics

Resources

License

Stars

Watchers

Forks

Languages