Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Salt, A Scripting Langauge

Prealpha 0.0.1


Approach

Salt is an IN DEVELOPMENT scripting language. With it, I want to make a language that compiles to my stack-based virtual machine, GoStack.

When I started my virtual machine in Go, I didn't expect it to be actually good, as I just wanted to use it to be less bored. But with some lat updates I did, it really leveled up, making me think "could I make a programming language that compiles to this?". And later I told myself: "just make the VM better". And so I did. In 2 days aprox. I added a lot of new operations and making it better overall.

Salt is the result of the improvements of the VM, which led me to this: the possibility of creating another language, this time an interpreted one. A scripting language.

I didn't want to overcomplicate too much, so I didn't make an AST, it goes from tokens to bytecode. This has its good and bad things as everything, but I think that design is making development easier.

Syntax

Output

print("hi") is used to generate the bytecode to print the string inside the aprenthesis.

More syntax coming soon when it gets added

How To Execute

Write a file, and run

./main run main.salt

Examples

In the folder examples/ you can find examples about various Salt aspects. As the language grows, more examples will appear.

To execute an example, run:

./main run "examples\1. Basic Output\1.1.salt"

Changelog

2026-07-19

  • Add first command: print("hi")
  • Wrote README
  • Now to execute write a file
  • Use arguments
  • Add the VM exe code
  • Make it interpreted
  • Refactor code
  • Add examples/ folder
  • Make it able to execute more than one file
  • Add two examples
  • Add '\n'

2026-07-22

  • Implement if
  • Add if examples

About

The scripting language for the Gravel group, runned in my VM, GoStack

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages