Starling is a high-level programming language designed for data processing.
- Python 3
- llvmcpy (Python bindings for LLVM-C)
- Zig
- LLVM
Read more about the design and features of the language
This will likely be done only in Python as a simple starting point.
- Prototype grammar
- Lexer
- Parser
- Basic codegen (maybe just an interpreter)
- Create initial language design goals
- Create initial roadmap
- Language grammar
- Codegen framework and support for different backends (compiled/interpreted)
- Intemediate Representation (IR)
- Interpreter
- Compiler
- Testing suite
- Lexer Tests
- Parser Tests
- IR Testing
- Type Checker Tests
- Interpreter Tests
- Compiler Tests
- Base Feature Implementation
- Variables
- Functions
- Structures
- Interfaces
- Methods/Impls
- Arrays/Vectors
- Strings
- Import System
- Errors
- Optionals/nil
- Generic Typing
- Functions as expressions
- Higher-Order Functions
- Standard Library
- Zig implementation
- Data Set Handling
- CSV
- Spreadsheet
- XML/YAML
- JSON
- Database
- Mathematical Functionality
- Trignometric Functions
- Statistical Functions
- Rational Number Handling
- Complex Number Handling
- Randomness
- Visualisation Tools
- Graphing
- Flowcharts
- Schematics
- Extended Data Structures
- Deques
- Queues
- Linked Lists
- System API
- File System
- Processes
- System Info
