Share your Programming Language Jam submissions here!

← Back to all posts
Volant
h
ApoorvSingal (75)

Volant

Volant is a general-purpose data-oriented high-level programming language with a focus on speed, power, asynchronicity, and concurrency. Volant is designed with simplicity in mind, allowing both low-level and high-level features with simple and easy to use syntax. Volant is transpiled to c with no or a very thin layer of abstraction over the code you write, which makes it as fast as c in almost all cases.

The team

The language was designed and developed solely by me.

Try it out

Step 1: Fork this repl.
Step 2: Edit the file named main.vo and press the run button to try it out.

You can also try Volant on our online Volant playground here.

Useful links

EDIT: @CSharpIsGud made a complete operating system using Volant. Check it out here.


Any constructive feedback is appreciated and thanks for checking it out.

Commentshotnewtop
AmazingMech2418 (939)

Nice job, but isn't this really just a modification of the C++ syntax with custom data types?

ApoorvSingal (75)

@AmazingMech2418 Well, no.
Unlike CPP, Volant isn't object-oriented. You understand how big of a difference that is, right? I don't even need to say anything more but,

Volant has garbage collection.
Volant support for closures is far better than CPP.
Volant doesn't have exceptions (errors should be handled by returning a tuple).
Volant has an in-built event system and thread-management system (it uses libuv and its not in a usable state yet).
Volant has (not yet) async/await and concurrency primitives.

Volant "syntax modifications" aren't just randomly chosen. Every difference from the c syntax has a very specific purpose. For example, Volant's version of CPP's int ((*var[10])(int, int))(int, int) is var: [10] * func(int, int) (func (int, int) int). You can clearly see the superiority of Volant syntax here. Volant syntax is chosen very precisely to be as simple, clean, and readable as possible.

AmazingMech2418 (939)

@ApoorvSingal Yeah, but doesn't it use just a C++ library after the syntax modifications?

ApoorvSingal (75)

@AmazingMech2418 What's bad about that? What's the point in rewriting those libraries when we can just use them?

AmazingMech2418 (939)

@ApoorvSingal Well, I guess you're right, but it seems kind of like what some people called "fake" languages where you change the syntax and use classes... I kind of expected an interpreter or a full compiler to Assembly...

ApoorvSingal (75)

@AmazingMech2418 Volant uses c as an intermediate representation and there are countless other languages that do the same. No sane person would ever write a compiler to asm if he isn't immortal or doesn't have a team of 20 devs.
Also, it would have been an absolute waste of time to write a compiler to asm because Volant does not need any more access to the machine than what c gives.

CSharpIsGud (639)

@AmazingMech2418 An interpreter usually isn't very fast and most people use an intermediary like C or C++. Not everyone knows assembly good enough to generate fast, portable code.

What I call a fake language is when people do this:

class Console:
    def writeln(self, str):
        print(str)

console = Console()

console.writeln("Woo look at me im a new language based on python")
AmazingMech2418 (939)

@ApoorvSingal That makes sense! In my opinion, though, compiling to Assembly is good though since it provides full control and also is more efficient...

AmazingMech2418 (939)

@CSharpIsGud Okay. I just thought this was kind of like a "fake" language though since it really just uses a C++ library for most of it.

CSharpIsGud (639)

@AmazingMech2418 Some of the languages being submitted to the jam use a parsing library to do the parsing for them, but noone seems to mind.

fuzzyastrocat (1210)

@ApoorvSingal I guess I'm either:

  • A team of 10 people (no)
  • Immortal (would be nice)
  • Insane (probably correct)
AmazingMech2418 (939)

@fuzzyastrocat Uh... I made a BrainF compiler that compiles to Assembly in like 30 minutes...

fuzzyastrocat (1210)

@AmazingMech2418 Congrats, you're now either Insane or Immortal!

AmazingMech2418 (939)

@fuzzyastrocat LOL! Probably the insane one. It was easy though!

ApoorvSingal (75)

@fuzzyastrocat Are you talking about Curta? It's just transpiled to cpp. It's not like you have written a compiler to asm.

ApoorvSingal (75)

@AmazingMech2418 Do you really think you can compare the complexity of Volant with BrainF?

AmazingMech2418 (939)

@ApoorvSingal No, but BrainF is turing-complete and so is Volant. It still wouldn't be too difficult to make Volant compile to Assembly. I mean, if you use enough macros, it would be really easy actually!

fuzzyastrocat (1210)

@ApoorvSingal No, I'm talking about Sea. Sea is compiled directly to AT&T assembly, which is even harder than asm :D

(And Curta is transpiled to c++ so that it is portable across many systems, or else I would've compiled to AVR-assembly)

AmazingMech2418 (939)

@fuzzyastrocat AT&T? Why not just use NASM? LOL!

fuzzyastrocat (1210)

@AmazingMech2418 Because actually I like AT&T better, despite its shortcomings. I like the sigils because I see what I'm working with — a register, an immediate, etc. (And it's builtin to GCC so I don't have to set up NASM :D)

emd22 (14)

are you allowed to submit a project that was started before the jam?!

HahaYes (1246)

@emd22 uh good question. But uh... they worked hard on this!

TheDrone7 (1423)

@emd22 You were allowed to work on the basic compiler before the jam. Since we also allowed redoing old languages and/or just adding lots of new features to your old languages, we decided to allow working on the very basic compiler before the jam began.

ApoorvSingal (75)

bruh there are even submissions that have been under development for literally years

xxpertHacker (477)

@ApoorvSingal Yeah, I saw one that is literally 11 years old :/

HahaYes (1246)

oh boy. Volant has submitted their project. I think its time for us to submit ours.

DynamicSquid (4350)

@HahaYes yeah, I also added multiline comments @AmazingMech2418 when are you going to submit it?

AmazingMech2418 (939)

@DynamicSquid I will submit it after school ends today. In the Post repl, can you put all of the features of Rex C++ so far for when I make the post later today?

xxpertHacker (477)

Honestly, doesn't look bad. Hope to see what becomes of this.

fuzzyastrocat (1210)

@xxpertHacker @CSharpIsGud has already written an OS in it, so pretty good I guess?

fuzzyastrocat (1210)

@xxpertHacker Yeah, it's pretty neat that such a new language is OS-ready.

xxpertHacker (477)

@fuzzyastrocat Well, almost, CSharpisGud had to modify the compiler to work as intended. But still, within 3 days after release an OS was created in it.