LanguageKit
LanguageKit provides the abstract syntax tree and compilation framework for Étoilé Pragmatic Smalltalk and EScript. LanguageKit is split into three main components:
- The core LanguageKit framework provides the abstract syntax tree structure that front ends (such as Pragmatic Smalltalk) construct and manipulate. It also contains an AST interpreter.
- The Runtime subframework provides a runtime library for code generated by LanguageKit. This sits on top of the Objective-C runtime and provides extra features, such as non-local returns and small integers.
- The CodeGen framework uses LLVM to generate optimised native code from LanguageKit abstract syntax trees.
Code Generation Overview
The code generation framework generates code that is ABI-compatible with Objective-C. Classes, methods, and blocks use the same underlying representation as Objective-C.