Skip to content

ahalang-dev/aha-lang

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

67 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AHA! Lang

AHA! Lang Logo

Advanced Hybrid Architecture

A fast, expressive, and modern programming language designed for building anything from web backends to game engines.

CI/CD License: MIT Rust


✨ Fitur Utama

AHA! dirancang dari awal untuk memberikan pengalaman pengembangan yang luar biasa:

  • 🚀 Performa Tinggi: Dikompilasi ke LLVM IR untuk optimasi kode mesin yang maksimal, setara dengan C++.
  • 🧠 Sistem Tipe Cerdas: Statis dengan inferensi tipe otomatis. Aman dari bug, namun tetap ringkas untuk ditulis.
  • 🔀 Konkurensi Aman: Model Aktor bawaan untuk menulis kode paralel yang bebas dari race condition.
  • 🛠️ Manajemen Sumber Daya Kontrol Penuh: Kontrol memori manual yang aman dengan "Resource Lifetimes", tanpa overhead Garbage Collector.
  • 📦 Ekosistem Modern: Dibangun di atas Rust, memanfaatkan toolchain Cargo yang kuat.

🚀 Mulai Cepat

Prasyarat

  • Rust (versi 1.75 atau lebih baru)
  • LLVM 14 dan library pendukung
  • Clang 14

Instalasi di Ubuntu/Debian

# Update package list
sudo apt-get update

# Install LLVM, Clang, and development libraries
sudo apt-get install -y llvm-14-dev clang-14 libpolly-14-dev zlib1g-dev

Mengompilasi dari Sumber

  1. Clone repositori:

    git clone https://github.com/ahalang-dev/aha-lang.git
    cd aha-lang
  2. Jalankan Kompilator:

    cargo run -- --file <nama_file>.aha

Contoh Kode

Buat file bernama contoh.aha:

let x = 10;
let y = 20;

if x > y {
    x
} else {
    y
}

Jalankan:

cargo run -- --file contoh.aha

Output yang Diharapkan:

--- KOMPILER AHA! ---
Membaca file: contoh.aha

[1] LEXING...
[2] PARSING...
Parsing berhasil!

[3] CODE GENERATION...
Kode LLVM IR berhasil dihasilkan!

--- LLVM IR OUTPUT ---
; ModuleID = 'aha_module'
...
----------------------

[4] EKSEKUSI (JIT)...
Program berhasil dijalankan. Hasil: 20

🧠 Arsitektur Kompiler

Kompiler AHA! dibangun dengan arsitektur modern dan modular:

  1. Lexer: Memecah kode sumber menjadi token-token.
  2. Parser: Mengurai token menjadi Abstract Syntax Tree (AST) menggunakan Pratt Parser.
  3. Code Generator: Menerjemahkan AST menjadi LLVM Intermediate Representation (IR).
  4. LLVM Backend: Mengoptimalkan dan mengompilasi IR menjadi kode mesin asli.

Architecture Diagram


🛣️ Peta Jalan (Roadmap)

AHA! masih dalam pengembangan awal. Ini adalah rencana kami:

  • Milestone 1: Fondasi Kompiler
    • Lexer & Parser
    • Tipe data Integer
    • Ekspresi Aritmatika & Perbandingan
    • Pernyataan Kondisional if/else
  • Milestone 2: Fitur Fundamental
    • Tipe data Boolean (codegen)
    • Operator <=, >=
    • Pernyataan Perulangan while
    • Pernyataan Perulangan for (parser)
    • Fungsi dengan parameter ✅
    • Statement return
  • Milestone 3: Struktur Data Tingkat Lanjut
    • String type
    • Array (parser + codegen)
    • Struct definitions
    • Field access (person.name)
  • Milestone 4: Pustaka Standar
    • print(int) - print integers
    • print_str(string) - print strings
    • abs(x) - absolute value
    • min(a, b) - minimum
    • max(a, b) - maximum
  • Milestone 5: Tooling & Ekosistem
    • VS Code Extension (syntax highlighting)
    • CLI improvements (--emit-ir, --version)
    • Better error messages

🚀 Phase 2: Advanced Features

  • Milestone 6: Type System

    • Type inference
    • Type annotations
    • Generics / Parametric types
  • Milestone 7: Resource Lifetimes

    • Ownership semantics
    • Borrow checking
    • Automatic resource cleanup
  • Milestone 8: Concurrency

    • Actor model
    • Message passing
    • Async/await
  • Milestone 9: Package Ecosystem

    • Package manager (aha install)
    • Module system
    • Dependency resolution
  • Milestone 10: Self-Hosting 🏆

    • AHA! compiler written in AHA!
    • Bootstrap process
    • Production ready

🤝 Berkontribusi

Kami sangat terbuka untuk kontribusi! Baik itu melaporkan bug, menyarankan fitur baru, atau berkontribusi kode.

Lihat CONTRIBUTING.md untuk panduan lebih lanjut.


📄 Lisensi

Proyek ini dilisensikan di bawah Lisensi MIT. Lihat file LICENSE untuk detailnya.


💡 Mengapa AHA!?

Kami percaya bahwa pemrograman harus lebih dekat dengan cara berpikir manusia. AHA! bertujuan untuk menghilangkan boilerplate dan kompleksitas yang tidak perlu, memungkinkan Anda untuk fokus pada logika dan solusi yang Anda bangun.

Bergabunglah dengan kami dalam menciptakan generasi berikutnya dari bahasa pemrograman!

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages