Java2K
Java2K is a new programming language, who's features are:
- Java2K is not a deterministic programming language, but a probabilistic one. Even for built-in functions, there is only a certain probability the function will do whatever you intend it to do. All Functions have two different implementations. At runtime, based on a pseudo-RNG, the actual implementation is choosen. This is in line with common physicalist assumptions about the nature of the universe - there is never absolute security, there is always only probability.
- Java2K uses a 11-based number system, which is a very good approximation of the 10-based decimal system for many purposes, including counting up to and including 9.
- Java2K is a programming language with release versions that come in triple digit sequences, just like plain vanilla Java.
- Java2K has numeric restrictions on valid keywords and instructions, which means you have implicit error checking at sourcecode level - a feature that makes Java2K highly secure. You cannot write a ILOVEYOU virus in Java2K!
- Java2K has a garbage collection: memory is freed when the program exits, or, at random intervals, whichever comes first.
- NEW VERSION 7.3 PRE-GAMMA RELEASED EARLY 2004, with a completely new interpreter written in Python. Finally, it is safe to embed Python in Webpages!
Why ?
Because plain Java sucks. The more important reason is this: Because (almost) all builtin functions in Java2K have only a 90% chance of returning the correct result, actual results often deviate more-or-less from expected results. So, the real challenge is to develop techniques of getting a higher probability of correct results !
It is relatively easy to write a function that will return a one 90% of the time, but it is more difficult to write a function that has a 99.9999% chance of doing so, and even more difficult of doing this to a function that returns something as simple as the number two.
Download
Starting with the brand new version JAVA2K 7.3 PRE-GAMMA, I rewrote the interpreter from scratch in Python.
It includes DIE.py
, the python-based IDE.
You can also download the old, now obsolete DIE for Win32, the Java2K Integrated Development Environment, including all binaries and files from the SDK.
You can download DIE for Linux, the Java2K Integrated Development Environment, including all binaries and files from the SDK.
You can download DIE for the AMIGA, the Java2K Integrated Development Environment, including all binaries and files from the SDK. (Tested with WinUAE only, comments welcome).
The Java2K SDK
The Manual is both a reference and a tutorial for writing great Java2K programs.
DIE is the permutation of an IDE for Java2K. Forget Eclipse, move over Visual Studio, here comes DIE!
And here are some sample sources:
7
7 is a test instruction, a minimal way of getting the number one. It was used in the development cycle to proof the compiler is bug-free:
ZIRO-IQUALZ-11 6/*/_\-RIGHT
13
13 is the obligatory hello-world program. Note that this program is not unlucky, because its name is a 11-based name which is actually 14.
1 1 /125 /131 /119 /125 /11 6/*/_\/_\/125 /13 2
/*/_\/_\\/131 /119 /125 /11 6/*/_\/_\/125 /13 2
/*/_\/_\\/119 /125 /11 6/*/_\/_\/125 /13 2/*/_\
/_\\\\/131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/
_\/_\\/131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/
_\/_\\/131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/
_\/_\\/131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/
_\/_\\/131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/
_\/_\\/119 /125 /11 6/*/_\/_\/125 /13 2/*/_\/_\
\\\\\\\/*\1 1 /125 /119 /11 6/*/_\/13 2/*/_\\/
125 /131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/_\
/_\\/119 /125 /11 6/*/_\/_\/125 /13 2/*/_\/_\\\
/125 /131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/_
\/_\\/131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/_
\/_\\/131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/_
\/_\\/131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/_
\/_\\/119 /125 /11 6/*/_\/_\/125 /13 2/*/_\/_\\
\\\\/131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/_\
/_\\/131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/_\
/_\\/131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/_\
/_\\/131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/_\
/_\\/131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/_\
/_\\/119 /125 /11 6/*/_\/_\/125 /13 2/*/_\/_\\\
\\\\\\\/*\1 1 /125 /131 /119 /125 /11 6/*/_\/_\
/125 /13 2/*/_\/_\\/119 /125 /11 6/*/_\/_\/
125 /13 2/*/_\/_\\\/125 /131 /119 /125 /11 6/*/
_\/_\/125 /13 2/*/_\/_\\/131 /119 /125 /11 6/*/
_\/_\/125 /13 2/*/_\/_\\/119 /125 /11 6/*/_\/_\
/125 /13 2/*/_\/_\\\\/125 /131 /119 /125 /11 6/
*/_\/_\/125 /13 2/*/_\/_\\/131 /119 /125 /11 6/
*/_\/_\/125 /13 2/*/_\/_\\/131 /119 /125 /11 6/
*/_\/_\/125 /13 2/*/_\/_\\/131 /119 /125 /11 6/
*/_\/_\/125 /13 2/*/_\/_\\/119 /125 /11 6/*/_\/
_\/125 /13 2/*/_\/_\\\\\\/131 /119 /125 /11 6/*
/_\/_\/125 /13 2/*/_\/_\\/131 /119 /125 /11 6/*
/_\/_\/125 /13 2/*/_\/_\\/131 /119 /125 /11 6/*
/_\/_\/125 /13 2/*/_\/_\\/131 /119 /125 /11 6/*
/_\/_\/125 /13 2/*/_\/_\\/131 /119 /125 /11 6/*
/_\/_\/125 /13 2/*/_\/_\\/119 /125 /11 6/*/_\/_
\/125 /13 2/*/_\/_\\\\\\\\\\/*\1 1 /125 /131 /
119 /125 /11 6/*/_\/_\/125 /13 2/*/_\/_\\/119 /
125 /11 6/*/_\/_\/125 /13 2/*/_\/_\\\/125 /
131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/_\/_\\/
131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/_\/_\\/
119 /125 /11 6/*/_\/_\/125 /13 2/*/_\/_\\\\/
125 /131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/_\
/_\\/131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/_\
/_\\/131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/_\
/_\\/131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/_\
/_\\/119 /125 /11 6/*/_\/_\/125 /13 2/*/_\/_\\\
\\\/131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/_\/
_\\/131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/_\/
_\\/131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/_\/
_\\/131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/_\/
_\\/131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/_\/
_\\/119 /125 /11 6/*/_\/_\/125 /13 2/*/_\/_\\\\
\\\\\\/*\1 1 /125 /119 /11 6/*/_\/13 2/*/_\\/
125 /119 /125 /11 6/*/_\/_\/125 /13 2/*/_\/_\\/
125 /131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/_\
/_\\/119 /125 /11 6/*/_\/_\/125 /13 2/*/_\/_\\\
/125 /131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/_
\/_\\/131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/_
\/_\\/119 /125 /11 6/*/_\/_\/125 /13 2/*/_\/_\\
\\/125 /131 /119 /125 /11 6/*/_\/_\/125 /13 2/*
/_\/_\\/131 /119 /125 /11 6/*/_\/_\/125 /13 2/*
/_\/_\\/131 /119 /125 /11 6/*/_\/_\/125 /13 2/*
/_\/_\\/131 /119 /125 /11 6/*/_\/_\/125 /13 2/*
/_\/_\\/119 /125 /11 6/*/_\/_\/125 /13 2/*/_\/_
\\\\\\/131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/
_\/_\\/131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/
_\/_\\/131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/
_\/_\\/131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/
_\/_\\/131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/
_\/_\\/119 /125 /11 6/*/_\/_\/125 /13 2/*/_\/_\
\\\\\\\\\\\/*\1 1 /125 /131 /119 /125 /11 6/*/_
\/_\/125 /13 2/*/_\/_\\/119 /125 /11 6/*/_\/_\/
125 /13 2/*/_\/_\\\/125 /131 /119 /125 /11 6/*/
_\/_\/125 /13 2/*/_\/_\\/131 /119 /125 /11 6/*/
_\/_\/125 /13 2/*/_\/_\\/119 /125 /11 6/*/_\/_\
/125 /13 2/*/_\/_\\\\/131 /119 /125 /11 6/*/_\/
_\/125 /13 2/*/_\/_\\/131 /119 /125 /11 6/*/_\/
_\/125 /13 2/*/_\/_\\/131 /119 /125 /11 6/*/_\/
_\/125 /13 2/*/_\/_\\/131 /119 /125 /11 6/*/_\/
_\/125 /13 2/*/_\/_\\/119 /125 /11 6/*/_\/_\/
125 /13 2/*/_\/_\\\\\\\\/*\1 1 /131 /119 /125 /
11 6/*/_\/_\/125 /13 2/*/_\/_\\/131 /119 /125 /
11 6/*/_\/_\/125 /13 2/*/_\/_\\/131 /119 /125 /
11 6/*/_\/_\/125 /13 2/*/_\/_\\/131 /119 /125 /
11 6/*/_\/_\/125 /13 2/*/_\/_\\/119 /125 /11 6/
*/_\/_\/125 /13 2/*/_\/_\\\\\\/*\1 1 /125 /
119 /11 6/*/_\/13 2/*/_\\/125 /119 /125 /11 6/*
/_\/_\/125 /13 2/*/_\/_\\/125 /131 /119 /125 /
11 6/*/_\/_\/125 /13 2/*/_\/_\\/119 /125 /11 6/
*/_\/_\/125 /13 2/*/_\/_\\\/125 /131 /119 /
125 /11 6/*/_\/_\/125 /13 2/*/_\/_\\/131 /119 /
125 /11 6/*/_\/_\/125 /13 2/*/_\/_\\/131 /119 /
125 /11 6/*/_\/_\/125 /13 2/*/_\/_\\/119 /125 /
11 6/*/_\/_\/125 /13 2/*/_\/_\\\\\/131 /119 /
125 /11 6/*/_\/_\/125 /13 2/*/_\/_\\/131 /119 /
125 /11 6/*/_\/_\/125 /13 2/*/_\/_\\/131 /119 /
125 /11 6/*/_\/_\/125 /13 2/*/_\/_\\/131 /119 /
125 /11 6/*/_\/_\/125 /13 2/*/_\/_\\/131 /119 /
125 /11 6/*/_\/_\/125 /13 2/*/_\/_\\/119 /125 /
11 6/*/_\/_\/125 /13 2/*/_\/_\\\\\\\\\\\/*\
1 1 /125 /119 /11 6/*/_\/13 2/*/_\\/125 /119 /
125 /11 6/*/_\/_\/125 /13 2/*/_\/_\\/125 /131 /
119 /125 /11 6/*/_\/_\/125 /13 2/*/_\/_\\/119 /
125 /11 6/*/_\/_\/125 /13 2/*/_\/_\\\/125 /
131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/_\/_\\/
131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/_\/_\\/
119 /125 /11 6/*/_\/_\/125 /13 2/*/_\/_\\\\/
125 /131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/_\
/_\\/131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/_\
/_\\/131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/_\
/_\\/131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/_\
/_\\/119 /125 /11 6/*/_\/_\/125 /13 2/*/_\/_\\\
\\\/131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/_\/
_\\/131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/_\/
_\\/131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/_\/
_\\/131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/_\/
_\\/131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/_\/
_\\/119 /125 /11 6/*/_\/_\/125 /13 2/*/_\/_\\\\
\\\\\\\\/*\1 1 /125 /119 /125 /11 6/*/_\/_\/
125 /13 2/*/_\/_\\/125 /131 /119 /125 /11 6/*/_
\/_\/125 /13 2/*/_\/_\\/131 /119 /125 /11 6/*/_
\/_\/125 /13 2/*/_\/_\\/131 /119 /125 /11 6/*/_
\/_\/125 /13 2/*/_\/_\\/119 /125 /11 6/*/_\/_\/
125 /13 2/*/_\/_\\\\\/125 /131 /119 /125 /11 6/
*/_\/_\/125 /13 2/*/_\/_\\/131 /119 /125 /11 6/
*/_\/_\/125 /13 2/*/_\/_\\/131 /119 /125 /11 6/
*/_\/_\/125 /13 2/*/_\/_\\/131 /119 /125 /11 6/
*/_\/_\/125 /13 2/*/_\/_\\/119 /125 /11 6/*/_\/
_\/125 /13 2/*/_\/_\\\\\\/131 /119 /125 /11 6/*
/_\/_\/125 /13 2/*/_\/_\\/131 /119 /125 /11 6/*
/_\/_\/125 /13 2/*/_\/_\\/131 /119 /125 /11 6/*
/_\/_\/125 /13 2/*/_\/_\\/131 /119 /125 /11 6/*
/_\/_\/125 /13 2/*/_\/_\\/131 /119 /125 /11 6/*
/_\/_\/125 /13 2/*/_\/_\\/119 /125 /11 6/*/_\/_
\/125 /13 2/*/_\/_\\\\\\\\\\/*\1 1 /125 /131 /
119 /125 /11 6/*/_\/_\/125 /13 2/*/_\/_\\/119 /
125 /11 6/*/_\/_\/125 /13 2/*/_\/_\\\/125 /
131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/_\/_\\/
131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/_\/_\\/
119 /125 /11 6/*/_\/_\/125 /13 2/*/_\/_\\\\/
125 /131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/_\
/_\\/131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/_\
/_\\/131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/_\
/_\\/131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/_\
/_\\/119 /125 /11 6/*/_\/_\/125 /13 2/*/_\/_\\\
\\\/131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/_\/
_\\/131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/_\/
_\\/131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/_\/
_\\/131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/_\/
_\\/131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/_\/
_\\/119 /125 /11 6/*/_\/_\/125 /13 2/*/_\/_\\\\
\\\\\\/*\1 1 /125 /131 /119 /125 /11 6/*/_\/_\/
125 /13 2/*/_\/_\\/119 /125 /11 6/*/_\/_\/125 /
13 2/*/_\/_\\\/125 /131 /119 /125 /11 6/*/_\/_\
/125 /13 2/*/_\/_\\/131 /119 /125 /11 6/*/_\/_\
/125 /13 2/*/_\/_\\/131 /119 /125 /11 6/*/_\/_\
/125 /13 2/*/_\/_\\/131 /119 /125 /11 6/*/_\/_\
/125 /13 2/*/_\/_\\/119 /125 /11 6/*/_\/_\/
125 /13 2/*/_\/_\\\\\\/131 /119 /125 /11 6/*/_\
/_\/125 /13 2/*/_\/_\\/131 /119 /125 /11 6/*/_\
/_\/125 /13 2/*/_\/_\\/131 /119 /125 /11 6/*/_\
/_\/125 /13 2/*/_\/_\\/131 /119 /125 /11 6/*/_\
/_\/125 /13 2/*/_\/_\\/131 /119 /125 /11 6/*/_\
/_\/125 /13 2/*/_\/_\\/119 /125 /11 6/*/_\/_\/
125 /13 2/*/_\/_\\\\\\\\\/*\
26
26 is a sample program will print out the letter F. This in itself would justify its inclusion in the Java2K SDK, but there is more: This example shows you how to declare AND use variables, at the same time.:
FOR-1 07=119 TO-/12 4DO/*/_\/12 4=13 2=*+*.+_.\+119 =11 6=*+_.+13 2/*/_\..
16 /125 =119 =125 =11 6=*+_.+_.+125 /13 2/*/_\/_\.+125 /131 /119 /125 /11 6/*/_\/_\/
125 =13 2=*+_.+_.\/119 =125 =11 6=*+_.+_.+125 /13 2/*/_\/_\.\/131 =119 =125 =11 6=*+_
.+_.+125 /13 2/*/_\/_\.+131 /119 /125 /11 6/*/_\/_\/125 =13 2=*+_.+_.\/131 =119 =125
=11 6=*+_.+_.+125 /13 2/*/_\/_\.+131 /119 /125 /11 6/*/_\/_\/125 =13 2=*+_.+_.\/131 =
119 =125 =11 6=*+_.+_.+125 /13 2/*/_\/_\.+119 /125 /11 6/*/_\/_\/125 =13 2=*+_.+_.\.\
.\.\./837=119 /12 4/*/_\/12 4=13 2=*+*.+_.\+119 /12 4/*/_\/12 4=13 2=*+*.+_.\.\
1 1 =*+837/119 /12 4/*/_\/12 4=13 2=*+*.+_.\/119 /12 4/*/_\/12 4=13 2=*+*.+_.\\.
Do you want to know more? There is even a language history for those who are interested in digging up stuff better forgotten from the past