IJVM and Ruri Programs

This page contains various IJVM and Ruri programs I've written. I occasionally write code in these languages to submit to various "see how many languages this problem can be coded in"-type pages on the Net.

CipherSaber-1

This an implementation of CipherSaber-1 in Ruri, that uses my own extensions to the language and Mic1, IJVMA. Due to a limitation of IJVM (IN can return 0 both in the case where 0 is input and in the case where no character is input.), this can only handle hex-encoded data, and due to a lack of a decent PRNG (mostly due to my laziness), this can only decrypt. It was originally written for the CipherSaberList page.

This software is capable of encryption. The United States government controls exports of commercial use encryption software under the Export Administration Regulations ("EAR"). EAR amendments published Jan. 14, 2000, lifted most controls over publicly available encryption source code that is not subject to payment of license fee or royalty payment. This kind of encryption source code now can be exported or reexported without a license provided that the U.S. government is notified about the Internet location of the software. This source code is publicly available without license fee or royalty payment, with source code being available corresponding to all binary versions. Therefore, the code can be exported without a U.S. export license except to the following destinations: Afghanistan, Cuba, Iran, Iraq, Libya, North Korea, Serbia (except Kosovo), Sudan and Syria. By downloading cryptographic software from this site you are agreeing to these terms.

Whew. Anyway, if you're still interested, you can download the Ruri code or the IJVMA translation.

99 Bottles of Beer on the Wall

One of the oldest programming language comparisons on the web is the 99 Bottles of Beer on the Wall page. I've submitted two different versions of the code to that page. The first is written in ruri, and is available here, with the corresponding IJVM here. I then took that code and went through optimizing it by hand, leading to the somewhat-optimized IJVM version.