Skip to content

Evan programming language, a functional-style, general purpose programming language which nestles comfortably in the JavaScript-world, complete with tools like an evaluator and IDE.

License

Maher4Ever/evan-lang

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Evan: EValuation of Abstract Nodes

The main goal of the Evan programming language is to bootstrap a working, functional-style general purpose programming language which nestles comfortably in the JavaScript-world, complete with tools like an evaluator and IDE.

It also ports selected virtues of a number of existing languages (most notably: Lisp) to the context of JavaScript. The IDE should (eventually) be implemented as an Evan program itself, making it meta-circular.

The following technology is used: Node.js, NPM, TypeScript, Browserify, React and MobX.

Getting started

To get started:

  1. Clone this repository.
  2. In the cloned repository, execute: npm install
  3. To start a Web server with the IDE, execute: npm start. Then point a browser to http://localhost:8031 to interact with the IDE. Select an available file/resource to inspect and/or edit and see its evaluation.
  4. To run the tests for the evaluator, execute: npm test.
  5. To (re-)build the IDE (after having made changes), execute npm build-web and re-load it in the browser. Hot reloading isn't implemented yet and meta-circularity of the IDE would actually make that circuitous.
  6. To run the standalone evaluator on arbitrary (but valid) JSON, execute: npm run build, node dist/test/cli.js (<) data/fib.json. You can input JSON either by specifying a path as last argument or by passing it to stdin.

Documentation

All other documentation you can find under documentation/. Right now, the menu offers the following selection of dishes:

About the name

As you've probably already noticed, the "Evan" acronym is awkward. That's because is retrofitted to the name of my first-born :)

About

Evan programming language, a functional-style, general purpose programming language which nestles comfortably in the JavaScript-world, complete with tools like an evaluator and IDE.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 87.1%
  • JavaScript 10.4%
  • CSS 1.8%
  • HTML 0.7%