项目作者: DrDeano

项目描述 :
A backwards programming language
高级语言: Rust
项目地址: git://github.com/DrDeano/backwards.git
创建时间: 2018-12-20T19:28:49Z
项目社区:https://github.com/DrDeano/backwards

开源协议:

下载


backwards

A backwards programming language. If you can understand this, your a god.

Purpose

This is not to be intended as a real programming language, but I’m not stopping you for using it. Spread the love. This is for me to learn how a programming language is created. I’ll be writing a lexer, parser, type checking and interpreter. This maybe be integrated into my operating system, DeanOS.

Features/How to

  • The function body will be exaluated before the arguments, like in Haskell
  • Statements end in a semi-colon
  • Assignment is left to right, so asigning 5 to a variable, you would do:
    1. 5 := five;
  • Function applications are arguments then function name:
    1. (5)fib;
  • Code is executed upwards, so the following will do an assignment then print:
    1. (five)print;
    2. 5 := five;
    So u will read the program from bottome to top
  • Indendting is reverces where instead of indenting a line within a if or for… statment, u will have to indent the whole program:
    1. {
    2. return n;
    3. } if n < 2
  • To make it even more backwards, the indenting doubles with each indent. It starts off at 1 then 2 then 3 and so on, so here is an example:
    1. { // 8 spaces
    2. { // 4 spaces
    3. { // 2 spaces
    4. { // 1 spaces
    5. ("two")print;
    6. } if i > 1
    7. } if i > 3
    8. } (0 := int: i, i < 5, i++) for
    9. } ()main