Skip to content
/ neve Public

A modern, hybrid-paradigm programming language with a soothing* syntax.

License

Notifications You must be signed in to change notification settings

ademyro/neve

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

74 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Neve

Neve is a modern, hybrid-paradigm programming language designed to deliver reliability through static typing, while providing users a soothing* syntax to work with.

Example

fun main
  let my_tea = Tea with
    herbs = Herbs.Chamomile 
  end

  my_tea.brew
end

* Syntactical aesthetics are ultimately subjective, and Neve's syntax may not be considered 'soothing' by everyone.

So, what’s happening?

Neve’s compiler is going to be ported from C to Python. This should allow us to implement complex optimizations more efficiently. We’re doing this because we want Neve to support separate compilation, and in doing so implement further optimizations on the Neve code before it’s translated to bytecode.

This means that we’re going to introduce two major changes:

  • We’re getting rid of the REPL. Having a separate compiler for Neve means longer compilation times, and a less snappy REPL experience. Moreover, writing the bytecode output to a file and then having the Neve interpreter read it isn’t exactly desirable--we don’t want to create a new file for the tiniest expressions.

    • It might be possible to get around that, though. If we can output the bytecode to an array of bytes without needing to create a new file just for that, and then pass that array to the interpreter, having a REPL might be manageable.
      Ideally, we could implement a “REPL mode” for nevec that skips through all optimizations, to provide the snappiest experience.
  • Neve will now have two components--neve and nevec. nevec will compile the .neve file to a .geada bytecode file, and neve will interpret that file. nevec will be implemented in Python, but we will immediately work on self-hosting it (reimplementing it in Neve) the moment we can.

Eventually, Neve will be moved to a GitHub organization instead of sitting on my GitHub account, and once that step is completed, neve and nevec will be hosted on two separate projects.

About

A modern, hybrid-paradigm programming language with a soothing* syntax.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published