![]() Keyword lexing is done using a DFA which should have been generated through a macro instead. The lexer is straight-forward apart from keywords. String -> -> AST -> (Typed AST + Contextual Tables) -> CLIF -> Machine Code Some implementation details Text Input -> Lexer (+ preprocessing) -> Parser (+ macro expansion) -> (Type Checker & Transformer) -> IR Code Generator -> IR Compiler The compilation process is structured as follows: Jitter compiles to machine code using Cranelift. ![]() Jitter aims to be to Rust what Lua is to C/C++.Īdditionally, Jitter is fully compatible with C and C++. Jitter's primary goal is to be an embedded scripting language that is fast to compile, fast at runtime, and all-around easy to use. Instead, it seeks to promote good design patterns while being easy to work with and providing functionality not found in traditional languages. Thus, Jitter does not aim to be fast, safe, or low-level. These reasons, however, do not necessarily apply to scripting languages. Rust is rather strict and for good reason. Variant instead of Rust's path::EnumType::Variant Why not use Rust instead? Ideally, Jitter would improve the syntax wherever possible such as allowing. This includes everything from pattern matching to keywords. Much of Jitter's syntax comes directly from Rust. The research/white paper associated with Jitter is currently in progress. However, Jitter may be further evolved into a functional language in the future.īecause the focus of Jitter is language extension mechanisms, arithmetic operations are not yet implemented. Many features are non-existant or broken. Therefore, Jitter is a research language and not intended for everyday use. ![]() Jitter evolved into a research project investigating the ideas of: Jitter is a just-in-time (JIT) compiled scripting language designed with Rust interoperability in mind. ![]()
0 Comments
Leave a Reply. |
Details
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |