Sol is a lightweight language primarily designed for scripting environments

Overview

☀️ Sol

A dynamically-typed (for now) and procedural programming language.

About

Sol is a lightweight language primarily designed for scripting environments. It uses a compile-to-JS approach at runtime, converting all Sol source-code into readable JavaScript code. (Bet you didn't see that coming >:D)

This JavaScript code is then executed on an embedded JavaScript machine.

Syntax Highlighting

Sol now has a VS Code extension! (Warning: there are a ton of extensions that appear if you write Sol or Sol Tools, so instead write this (FOR NOW): publisher:"Joshua Colell")

Why not write JavaScript?

JavaScript is also a great language for scripting. By writing a language on top of JavaScript, we can take advantage of it's more powerful features such as promises, async/await without having to implement it from scratch. The QuickJS engine is also incredibly lightweight and fast enough for 99% of use-cases.

Example

fn fib(n) {
    if n < 2 {
        return n
    }

    return fib(n - 1) + fib(n - 2)
}

println(fib(27)) // -> 196418

Ok so... where do I start?

You can start of from the Wiki!

Limitations

During testing and development, these are some of the limitations I have found so far:

A checked box marks the limitation as resolved or fixed.

  • A recursive fib(n) function that exceeds fib(27) causes a runtime stack-overflow. Realistically, nobody is going to be using this much recursion but it's normally a good benchmark for raw recursive performance.

TODO

This is the list of things I needed (and want) to add to Sol:

TODO WIP Implemented Released in latest version
Built-In Modules ✔️ ✔️ ✔️
Comments ✔️
Package Manager & Custom Modules ✔️
You might also like...
A super-lightweight Lua microservice (toy) framework.

Hive A super-lightweight microservice (toy) framework written in Rust. It uses Lua as interface to provide simple, fun developing experience and fast

A lightweight sandbox sim written in Rust.
A lightweight sandbox sim written in Rust.

Rusty Sandbox A lightweight sandbox sim written in Rust. Play via Browser (WASM) | Compile by yourself This is a quick hobby project written to practi

A script language like Python or Lua written in Rust, with exactly the same syntax as Go's.

A script language like Python or Lua written in Rust, with exactly the same syntax as Go's.

Tyrade: a pure functional language for type-level programming in Rust

A pure functional language for type-level programming in Rust

An OOP programming language I am making by following Crafting Interpreters.

horba An OOP programming language I am making by following Crafting Interpreters. https://craftinginterpreters.com/ I intend it to have a somewhat C-s

A dynamically typed, interpreted, stack-based language.

Stacc A dynamically typed, interpreted, stack-based language. How does it work? Each call-frame/scope has its own variables and stack, so you can get/

Yet Another Programming Language

Yet Another Programming Language

🐱‍👤 Cross-language static library for accessing the Lua state in Garry's Mod server plugins

gmserverplugin This is a utility library for making Server Plugins that access the Lua state in Garry's Mod. Currently, accessing the Lua state from a

luau bindings for the Rust programming language

🌔 luau-rs Luau bindings for the Rust programming language using bindgen ⚠️ Disclaimer This does not provide bindings for everything as luau does not

Owner
Joshua
Joshua
A shell scripting language

Slash The system level language for getting the job done. Detailed documentation is available on the Slash site Motivation Bash is an awesome shell, b

null 27 Jun 17, 2022
An interactive scripting language where you can read and modify code comments as if they were regular strings

An interactive scripting language where you can read and modify code comments as if they were regular strings. Add and view text-based visualizations and debugging information inside your source code file.

Sumeet Agarwal 13 Apr 28, 2022
Lagoon is a dynamic, weakly-typed and minimal scripting language. 🏞

Lagoon is a dynamic, weakly-typed and minimal scripting language. It draws inspiration from a handful of modern languages including JavaScript, Rust and PHP.

Ryan Chandler 25 Jul 5, 2022
A small scripting language running on V8.

Rook A small scripting language running on V8. After spending a few hours playing with V8, it seems like the only way to make this work is by transpil

Ryan Chandler 2 Dec 16, 2022
A forth-inspired, bytecode-compiled scripting language for Anachro Powerbus

Anachro Forth (core) Anachro Forth is a forth-inspired, bytecode-compiled scripting language for Anachro Powerbus platform. Use Case The intended use

null 14 May 27, 2022
A small embeddable scripting language

There is currently a tree-walking interpreter called bird in progress, but the plan is to have a bytecode vm in the end language_name is a small embed

nils 15 Dec 10, 2022
A simple programming language made for scripting inspired on rust and javascript.

FnXY Programming Language Quick move: CONTRIBUTING | LICENSE What? FnXY is a simple programming language made for scripting inspired on rust and javas

null 2 Nov 27, 2021
whydia is a small embeddable scripting language

whydia is a small embeddable scripting language It's inspired by Javascript, Lox, Lua, Python, Rust and more Reference Overview Declaring variables us

Adi Yenuubarii 4 Apr 15, 2022
Ethereal - a general-purpose programming language that is designed to be fast and simple

Ethereal is a general-purpose programming language that is designed to be fast and simple. Heavly inspired by Monkey and written in Rust

Synthesized Infinity 21 Nov 25, 2022
A dialect of Lisp that designed for Minecraft bedrock command.

Command Lisp Document Command Lisp是一门为Minecraft Bedrock设计的简化语言,拥有这非常高的抽象程度。同时,它也是Lisp的一门方言。 Lisp 与众不同的部分原因是,它被设计成能够自己进化。你能用 Lisp 定义新的 Lisp 操作符。

CAIMEO 5 Jul 21, 2022