Skip to content

Weltraumschaf/cay-the

Repository files navigation

Cay-The

This project is not actively maintained!

With this project I play around with ANTLR4 to create a own programinglanguage. First for learning purposes, but second also to build the next worlds best programming language ;)

Research and Specifiaction

Why I'm doing this? Since decades I'm blaming other languages for errors, faults and shortcommings. Something my friends always here from me: If I would do a programming language I would never do it like this, but that yada yada.

Over time I looked into lot of languages and read a lot of stuff about the topic. A dense concetrate about that you can find in the paper which is part of this repo. And if I would do my own language then it will be like in this specification.

Status

This project is under heavy construction. A lot of things may change or disappear.

Distribution

There is a distribution file with the latest executable and documentation in a zip file. To execute Cay-The on the command line simply run:

$> ./bin/caythe -h

Prerequisite

You need a Java 8 VM and a Bash compatible shell to run the CLI.

Helpfull Stuff and Links

Design Considerations

Some thoughts or questions about basic language stuff.

The Difference Between Expressions and Statements

In Python it is defined as:

Expressions only contain identifiers, literals and operators, where operators include arithmetic and boolean operators, the function call operator () the subscription operator [] and similar, and can be reduced to some kind of "value", which can be any Python object. (source)

Conclusions:

  • Should add a method invocation operator () such as the existing subscript operator [].
  • Define the difference between expressions and statements. The Python way is nearly the same.

Multiline Strings / Heredoc

TODO