Projelere geri dön
Compiler Design

Siyo Compiler

Siyo programlama dili için sıfırdan geliştirilmiş tam özellikli derleyici. Lexical analysis, parsing, AST, semantic analysis ve kod üretimi aşamalarını içeren kapsamlı bir derleyici implementasyonu.

CompilerLexerParserASTSemantic AnalysisJavaLanguage Design

Proje Hakkında

Siyo Compiler, özel Siyo programlama dili için geliştirilmiş tam kapsamlı bir derleyici projesidir. Bu proje, derleyici tasarımının tüm temel aşamalarını içerir: lexical analysis (tokenization), syntax analysis (parsing), abstract syntax tree (AST) oluşturma, semantic analysis ve kod üretimi. Java ile yazılmış olan bu proje, derleyici teorisinin pratik bir uygulamasıdır.

Derleyici Aşamaları

1

Lexical Analysis

Kaynak kodunu tokenize eder. Keywords, identifiers, literals, operators ve diğer lexical elementleri tanır ve sınıflandırır.

2

Syntax Analysis (Parser)

Token dizisini alır ve dilin gramer kurallarına göre parse eder. Syntax hatalarını tespit eder ve raporlar.

3

AST Generation

Parse edilen koddan Abstract Syntax Tree (AST) oluşturur. Kodun yapısal temsilini ağaç formatında tutar.

4

Semantic Analysis

Type checking, symbol table yönetimi, scope analizi. Semantik hataları tespit eder (örn. tip uyumsuzlukları, tanımsız değişkenler).

5

Code Generation

AST'den hedef kod üretir. Bytecode veya intermediate representation (IR) formatında çıktı sağlar.

6

Optimization

Üretilen kodu optimize eder. Dead code elimination, constant folding gibi optimizasyon teknikleri uygular.

Öne Çıkan Özellikler

  • Tam Özellikli Lexer: Tüm token tiplerini tanıma, whitespace ve comment handling, hata raporlama
  • Recursive Descent Parser: Top-down parsing yaklaşımı, clean ve anlaşılır kod yapısı
  • Type System: Static typing, type inference, primitive ve user-defined types
  • Symbol Table: Multi-scope variable tracking, function signatures, type definitions
  • Error Handling: Detaylı hata mesajları, satır ve kolon bilgisi, recovery mekanizmaları
  • Modular Architecture: Temiz ayrılmış compiler phases, kolay genişletilebilir yapı

Teknik Detaylar

Programlama Dili
Java
Parsing Tekniği
Recursive Descent
Hedef Dil
Siyo Language
Output Format
Bytecode / IR
Type System
Static Typing
Design Pattern
Visitor Pattern (AST)

Siyo Dil Özellikleri

Desteklenen Özellikler

  • Variables & Constants
  • Functions & Procedures
  • Control Flow (if/else, loops)
  • Arrays & Data Structures
  • Operators & Expressions

Gelecek Özellikler

  • Object-Oriented Programming
  • Advanced Optimizations
  • JVM Bytecode Generation
  • Standard Library
  • REPL & Debugger

Kaynak Kodunu İncele

Derleyici implementasyonunun tüm detayları, kod örnekleri ve dokümantasyon GitHub üzerinde açık kaynak olarak mevcut.