GithubHelp home page GithubHelp logo

mesabloo / snowstar Goto Github PK

View Code? Open in Web Editor NEW
33.0 6.0 1.0 5.11 MB

Here lies the code for the Snow* programming language, currently being rewritten.

Home Page: https://mesabloo.github.io/snowstar-lang

License: GNU General Public License v3.0

C++ 90.11% CMake 1.28% ANTLR 8.52% Shell 0.10%
snowstar language compiler structured-programming procedural-programming llvm antlr4

snowstar's Introduction

Snow*

Snow* icon

madewithcpp builtwithheart

ℹ️ Table of content

  1. What is Snow* ?

  2. Me, Mesabloo

  3. Free sample

  4. Thanks to

  5. Software used

❔ What is Snow* ?

license

Snow* is a programming language which knew several generations:

  • The first one called RainDrop was an Object-Oriented programming language.
    It really never took off in the first place, being always a theoritical project more than anything else.

  • The second one was called #* (SharpStar)
    It was an ASM-like language with some inconsistences (registers holding only up to one value).
    It was the real first programming language made here from nothing. The VM was slow, the compiler inefficient.

  • The third generation was the first called Snow*.
    It was still an ASM-like, but more developped than the previous one. It contained more instructions, the VM was faster, the compiler more efficient.

  • The fourth generation, Snow*, a procedural programming language.
    This generation is built with ANTLR and LLVM to offer power and native compilation.

🖥️ Behind Snow*, a developer, Mesabloo.

I've been working on Snow* from the second generation until now since the beginning of June 2018. I wanted to create my own programming language since the beginning of October/November of 2017. (RainDrop came to life around this time) Because I never really understood how they work, and because I wanted to compile RainDrop into ASM (the Assembly Language), it didn't go far enough to actually be considered a good "experience" (just a basic Lexer + a simple compiling process until the AST generation, where I got stuck).
After this, I switched from Java to C++ and completely changed the syntax of the language, creating my first "ASM-like" language.
And now, I changed it again, and I'm ready to go for it.

📄 What about a free sample ?

Samples can be found here but I will post here a simple Hello, World! program made in Snow*:

(*
 *  Declaration of the main method. The parameters of it are unrequired, you may write it without.
 *
 *  @param `argc` is of type i8 ;
 *  @param `argv` is of type array<str> ;
 *  @return i32
 *)

% So that we can use `print()`.
import stdout;
import array;

i32(i8, array<str>) main =
    (i8 argc, array<str> argv) => {
        print("Hello, World!");
        % We print "Hello, World!" in the console.
        return 0;
        % We return from the function, with an i32 value.
    };

(*
    This sample is not yet compilable.
    Don't try to compile it, you'll get many errors.
*)

✴️ Special thanks to

People from many Discord servers helping me when I need help. Links to them will be put down below.

  • NaN - Not a Name : a francophone programming related Discord server, very nice and helpful:
    Discord bagde
  • The Programmer's Hangout : a nice community about programming with many developers from all around the world:
    Discord bagde
  • Atelier - Création d'un langage de programmation : a francophone Discord server about the creation of programming languages, with some languages creator such as me.
    Discord bagde
  • Some other servers where people helped me mentally by being here for me whenever I needed some comfort.
  • My friends who put some hope in my project.
  • All the people who starred this repository so far. It's really pleasant.

💽 Pieces of software used with their licenses

  • ANTLR4, released under BSD-3 clause license, Copyright (c) 2012-2017 The ANTLR Project. All rights reserved
  • termcolor, released under BSD license, Copyright (c) 2013 Ihor Kalnytskyi
  • LLVM, released under Open Source license, Copyright (c) 2003-2018 University of Illinois at Urbana-Champaign. All rights reserved.
  • Tiny Process Library, released under the MIT License, Copyright (c) 2015-2018 Ole Christian Eidheim
  • Argh ! released under the BSD-3 License, Copyright (c) 2016 Adi Shavit

snowstar's People

Contributors

mesabloo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

Forkers

hermetique

snowstar's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.