Skip to content

aurorusidk/starling

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

361 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Starling

Starling is a high-level programming language designed for data processing.

Requirements

Python (Prototyping) Implementation:

  • Python 3
  • llvmcpy (Python bindings for LLVM-C)

Zig Implementation:

  • Zig
  • LLVM

Design

Read more about the design and features of the language

Roadmap

Bootstrap

This will likely be done only in Python as a simple starting point.

  • Prototype grammar
  • Lexer
  • Parser
  • Basic codegen (maybe just an interpreter)

Initial Design

  • 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

Core Development

  • Import System
  • Errors
  • Optionals/nil
  • Generic Typing
  • Functions as expressions
  • Higher-Order Functions
  • Standard Library
  • Zig implementation

Built-in and Plug-in Features

  • 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

About

The Starling Programming Language

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages