The SK Programming Language banner

The SK Programming Language

20 devlogs
90h 23m 13s

https://sk.aloyak.dev
SK is an interpreted programming language designed to handle incomplete, approximate, or partially known information as first-class entities. Unlike other languages, SK does not assume all variables have exact values. Instea…

https://sk.aloyak.dev
SK is an interpreted programming language designed to handle incomplete, approximate, or partially known information as first-class entities. Unlike other languages, SK does not assume all variables have exact values. Instead, it tracks uncertainty explicitly throughout calculations, decisions, and control flow.

This project uses AI

Used github copilot for code completion and organization

Demo Repository

Loading README...

aloyak

The SK Programming Language

https://sk.aloyak.dev

Hello! Made a few simple changes that I spotted missing while creating a project written in SK, heres the changelog!:

  • Added the *= and /= Operators
  • Added Basic REPL Syntax Coloring!
  • Updated Documentation

Published all these changes to a new version (0.9.8), Any suggestions are welcome (PLEASE)

Attachment
0
aloyak

Shipped this project!

Hours: 88.72
Cookies: 🍪 72
Multiplier: 24.51 cookies/hr

Hey There!
I’ve added a lot of thing that are essential to this language, many new features and variable types and most importantly the units library, I published the VS Code extension to the Workshop, made a http and json library, an improved REPL mode and much more stuff!!!
Please look at the demo page. (https://sk.aloyak.dev)
After this I will start to work on other projects but I’m not over with this one yet!

  • 4loyak!
aloyak

The SK Programming Language

https://sk.aloyak.dev

I’ve added a lot of things in this update, I love to see how this project is growing so fast lol, Next ship will probably come shortly. These is the changelog:

  • Added The match Statement
  • Added try-catch for Easy Error Handling
  • The http and json Libraries
  • Improved REPL interpreter with support for code blocks
  • Published the VS Code Extension to the Workshop
  • Better Documentation!

Any new features/ideas are welcome!
A new version will be publish after I upload this (0.9.7)

Attachment
Attachment
Attachment
0
aloyak

The SK Programming Language

https://sk.aloyak.dev

@cyteon help me find a bug that happened to be hugely important because it didnt only affect partial bools but many other variable types such as arrays and ‘nones’, so that was fixed quickly and I pushed a new version (0.9.6)! This are the full changes

  • Fixed Logic
  • Fixed the panic If Policy Error Handling
  • Added The string Library
  • Small Improvements to IDE’s loading speed (i think)

PS: 100 downloads on crates.io!

Attachment
0
AVD

Tagged your project as well cooked!

🔥 AVD marked your project as well cooked! As a prize for your nicely cooked project, look out for a bonus prize in the mail :)

aloyak

The SK Programming Language

https://sk.aloyak.dev

Finally finished with an exciting feature, after rewriting this a million times I’m done with the units library, its allows you to use variables with units (which means they transform into the quantity type) and also define your own units, this is the full changelog:

  • The units library
  • Added multi line comments (/* comment */)
  • Added the write() function to print without adding a new line.
  • Deleted Dead Code

I’m running out of ideas to add so any suggestion is very much welcome. I’m currently working on a ffi for the language :)

Attachment
Attachment
0
aloyak

The SK Programming Language

https://sk.aloyak.dev

I’ve been working on some stuff that I believe to be essential for this language and they were fairly easy to do:

  • New Web Domain (thx github benefits)
  • The Array Type
  • For Loops
  • Website IDE RAM limit
  • Website Share button

I was considering adding an ffi to this language but there’s a lot to finish before doing that!

Attachment
0
aloyak

Shipped this project!

Hours: 73.47
Cookies: 🍪 2103
Multiplier: 28.62 cookies/hr

Hey There!
I really liked working on this project even tho I forgot to log almost 1/3 of my coding time. This is the SK Programming Language, it features a lot of high level functionality like variable type assumption, easy conversion and features many uncertainty-based functions. On top of this it has support for REPL mode, a website IDE, good enough documentation and much more stuff.
Please take a look into the demo website for all information
Thank you!

  • @aloyak
aloyak

The SK Programming Language

https://sk-lang.vercel.app

I’ve been trying to add the units library but right now it’s only syntax related, no real useage right now.
Also added the += and -= operators!

I think this project is in a very good shape right now so I’m going to ship it, but, this won’t be at all its last version. After the first ship these new features will be in the works:

  • Fully working units library
  • Array type + for Loop
  • Constrains (maybe)
  • The Observe and Explain Keywords
  • FFI (maybee)
Attachment
2

Comments

Noten
Noten 23 days ago

I really like the idea of this, you should post this on hackernews and/or reddit, i feel like people would be interested.

aloyak
aloyak 23 days ago

ty! i will do this for sure :))

aloyak

The SK Programming Language

https://sk-lang.vercel.app/

The most basic functionalities are almost completed, there’s still a lot of work to do but I’m considering shipping this as it is right now and updating it later on, after a few hours of coding and then starting over I got some new features working!

  • Way Better Error Messages
  • Increment and Decrement Operators (x++ and x--)
  • File System (fs) library (very basic)
  • A few unit tests
  • math.truncate()
  • Safe mode that disables os.command() and the fs library (so my server doesn’t get hacked)
  • the “clear!” keyword for the REPL interpreter

Currently searching for bugs and undefined behavior.

Attachment
Attachment
1

Comments

aloyak
aloyak about 1 month ago

PS: I also updated the documentation a little bit but i couldn’t log that time for some reason

aloyak

The SK Programming Language

https://sk-lang.vercel.app/

Added a few interesting things:

  • The Rand Library
  • The OS Library
  • Loops!
  • Better Documentation
  • Moved the interval operators to the math library
  • Allowed the interpreter to run projects rather than only files (–project flag)
  • Minor Refactoring

TODO:

  • I started working on a more detailed Error system that shows exactly where anything happens and displays the code to fix, very rust inspired too
Attachment
Attachment
0
aloyak

The SK Programming Language

https://sk-lang.vercel.app/

This is starting to look in very good shape!

  • Added the ‘pub’ and ‘as’ keywords for an improved workflow with libraries
  • Improved: The Math Library, I added a lot of stuff I thought I had already done but apparently not
  • Added the Time Library, with timer functionality and formatting
  • Small fixes to error handling and simplified some implementations
  • Better Documentation Rendering + The IDE downloads automatically the latest version now

I would like to keep adding new things but I’m gonna take a little bit to study any possible bugs or undefined behavior to have a more robust code base

Attachment
Attachment
0
aloyak

The SK Programming Language

The updated website: https://sk-lang.vercel.app/

Added a few important things!

  • Added functions, with default arguments and return values
  • No return keyword, all blocks return the last value of the block
  • Added imports for built-in libraries as well as other files
  • Added the (very basic) math library
  • Improved Documentation!

TODO:

  • The ‘pub’ keyword for public functions (all functions are public right now D: )
  • The ‘as’ keyword for aliases for libraries
  • Better error messages
  • Loops
  • More libraries
  • Organization

Look at this beautiful Fibonacci function!

Attachment
Attachment
0
aloyak

The SK Programming Language

Huge update! The SK Programming Language now has a website with a lot of features.
CHECK THIS OUT: https://sk-lang.vercel.app
Created the SK Website which includes:

  • Basic but very scalable Documentation
  • Installation and Basics for quick setup
  • A FULLY working IDE with the latest SK interpreter installed!
  • A lot of information about the language

After this im going to focus on improving the interpreter with:

  • Working Functions (non-natives)
  • Better Error messages
  • Standard Libraries + Multiple file projects (i.e. the ‘import’ keyword)
  • A more detailed documentation
  • Improved REPL interpreter
Attachment
Attachment
Attachment
Attachment
0
aloyak

The SK Programming Language

Very small stuff added but I am pretty excited for this:

  • Created a simple vscode extension that makes working with SK a lot easier, includes colors and simple snippets!
  • Published the interpreter to crates.io: (https://crates.io/crates/sk-lang)
  • Created a Release (0.5.2) on the github repo
  • Added the MIT License
  • Took some time to create a second version of the logo in GIMP

I needed to take some time off from coding the language so I focused a little bit on simple but useful stuff

The SK Programming Language: https://github.com/AlmartDev/SK

Attachment
Attachment
0
aloyak

The SK Programming Language

I’ve been doing a lot of research to apply some of these so I spent most of my time actually reading documentations lol,
Very nice updates today:

  • Created a super simple repl interpreter (line-by-line interpreter) that needs a lot of work
  • Added Scopes!
  • Added if/else statements (and elifs, but they’re not really finished)
  • Added interval operators like mid(), width(), intersect(), union()
  • HUGE refactoring & organization, specially to primitive functions
  • Fixed resolve() for symbolic formulas with an unknown variable
  • Updated the readme to match the new features and made it prettier !
  • Started working, barely, to create a vscode extension for SK!

take a look! -> https://github.com/AlmartDev/SK

Attachment
Attachment
Attachment
Attachment
0
aloyak

The SK Programming Language

The SK Programming Language:
Improved the interpreter with a lot of new features!

  • Symbolic Variables (see screenshot 1)
  • Primitive Functions: Input() and num() (see screenshot 2)
  • Boolean Logic + Knowledge Operators (see screenshot 3)
  • Power Operators
  • Started a little secret

TODO:

  • Scopes
  • if/else statements and functions

check out why SK is speciall here!: https://github.com/AlmartDev/SK

Attachment
Attachment
Attachment
0
aloyak

The SK Programming Language

Finished a super basic Rust interpreter for SK,
What was added:

  • An improved parser and a brand new evaluator + environment controllers
  • Primitive functions like “print()” or “panic!”
  • Support for most variables (symbolics are yet to come)
  • String concatenation and the “str()” function
  • All kinds of operations for known, intervals and unknown variables (SK special)
  • Improved CLI

TODO:

  • Symbolic varialbes
  • Scopes
  • If/else statements, functions, (loops maybe but idk)
  • A nice beautiful web IDE

Why is The SK Programming language special? check out: https://github.com/AlmartDev/SK

Attachment
Attachment
0
aloyak

Started the SK-interpreter!

I started designing and structuring the actual SK interpreter and finally felt like I had something good enough to start, at the moment the interpreter has:

  • Simple file selection + logging
  • Error handling (with line and column)
  • No semicolons! i though i would have to add them at some point but apparently not
  • Raw file into Tokenized code (see screenshot)

Next steps would be to move this tokenized code into a Abstract Syntax Tree (AST).
Even tho this looks like any other high level lang, this one is different! see the cool features of the SK programming language at: https://github.com/AlmartDev/SK

Attachment
2

Comments

chefpenguino
chefpenguino about 2 months ago

how’d you do the 3d mockup image? it looks cool

aloyak
aloyak about 2 months ago
aloyak

The SK Programming Lanugage: Uncertainty is a first-class entity, SK does not assume all variables have exact values. Instead, it tracks uncertainty explicitly throughout calculations, decisions, and control flow.

Added:

  • Boolean logic
  • Knowledge operators
  • Improved resolution of Symbolic variables + better simplification
  • Added symbolic policy for if statements
  • Overall code base simplification
  • extra: created a simple logo (really bad)

TODO:
I really want to start with the interpreter but I first want to make sure that this prototype made in python really represents my intentions with this language, its been a headache for the last 13 hours and I haven’t even really started :))

Attachment
Attachment
1

Comments

rupnil.codes
rupnil.codes about 1 month ago

my dumahh read S-UNKNOWN as SUN-KNOWN

aloyak

Hello People!
I managed to get a super basic prototype working using python as a base, but the idea is to build an interpreter in Rust or C.

Sk takes uncertainty as a fundamental part of its design, variables can be known, partially known or unknown and it allows you to work with them seamlessly. It has support for symbolic variables and has a nice syntax yet to come.

This is a simple example in python…

Attachment
0