Giter Site home page Giter Site logo

dijon's Introduction

Dijon

An imperative, stack-oriented esoteric language with highly non-traditional control flow constructs

Introduction

Dijon is a language that I initially came up with in 2013. The original design goal was to create a language with a unique way to handle control flow; in fact, the original vision was to attempt to create a language without loops, if statements, and GOTOs. The design has gone through many iterations since then, but this is the first completely implemented version. Between 2019 and 2022, 3 Java versions and 2 Python versions of the interpreter were created, each slightly fleshing out the language and its implementation. The heart of Dijon is the way it handles memory using both a stack and variables. However, variables also influence the control flow using a concept called triggers, which are sections of code that execute when the trigger's variable's value is requested. Variables can be declared in these triggers and are scoped inside them. Programs may import and use triggers and variables from other files as well, most importantly the standard library.

Documentation

Please see the following links to view the language reference, code examples, and future plans.

Implementation

Please see the reference interpreter, PyDijon, which is written in Python.

dijon's People

Contributors

bluesun212 avatar

Watchers

 avatar

dijon's Issues

Standard library tests

Once the standard library is finished, a Dijon file as well as a Python file should be created to test each function in the standard library.

Improve REFERENCE.md

The wording in the language reference needs work. In addition, more needs to be written about imports and the builtins.

Finish the standard library

More functions need to be added to the standard library, many of which are documented in the file itself.

Examples improvements

More examples need to be created. In addition, a readme needs to be added to the examples folder.

Tutorial

There needs to be a tutorial, or at least a collection of runnable code snippets that demonstrate how the language works, and individual features that can be used.

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.