Typhon is a statically-typed, virtual-machine based, cross-platform programming language, designed to improve upon the concepts built into languages such as Java or C#. Typhon is even written in Java, allowing you to easily use the compiler itself as a library in many other projects.
- Full type inference- Use the
var
keyword instead of specifying a type! - Object-oriented with full multiple inheritance!
- Templates for classes and functions, whose type data are retained run-time!
- Full operator overloading support!
- Many convienience features for the programmer!
- Compiler-as-a-library achitecture, inspired by LLVM: Make use of the Typhon compiler easily in any Java program!
- Extendable with a plugin system: Add plugin JARs to your classpath, and they just install themselves!
Check out the examples
directory for example Typhon programs.
To run Typhon, first download the complete JAR from Bintray, our Maven repository and download provider. Note that there are three JARs to download per version; to get the one you can run from the command line, look for the one with -complete
at the end of the file name. Then invoke it like so:
java -jar typhon-complete.jar
This will print the basic Typhon usage, showing you what subcommands and options you can specify. The most basic use of Typhon is to check programs for compilation errors; to do this, run the check
subcommand as follows:
java -jar typhon-complete.jar check your_file.tn
To run Typhon programs, check out TnBox, the official Typhon VM. You can also check and run programs from Eclipse using TnClipse.
This project uses Gradle to build. To build this repository, all you have to do is check it out and run:
./gradlew build
This will compile Typhon, downloading all the needed dependencies from Maven.
There are other Gradle tasks to run as well, such as jar
, sourcesJar
, completeJar
, compileJava
, generateGrammarSource
, and test
. Run ./gradlew help
for more options.
Feel free to make any pull requests you desire, and check out our issue tracker to report any bugs.