The Nice programming language


    What is Nice ?

Nice is a research programming language. It demonstrates how the powerful ML-Sub type system can be used in practice.
Nice is an object-oriented language, with parametric, polymorphic types, higher-order functions, and more. It combines the advantages of object-orientation and functional programming.

The current implementation is tightly integrated with the Java environment, which offers several advantages. Using Java libraries within Nice programs is straightforward. The Nice compiler produces java bytecode, which means Nice programs can be executed on virtually any platform, with any Java Virtual Machine. The compiler is itself written in Java (and partly in Nice). The compiler needs a 1.2 or higher JVM to run (Java 2).

    The language

This short tutorial should help you to start with the language, but it's not complete in any way.

There is no real manual for the moment. You can find information about the rationale of the language in my graduation report.

Having a look at the collection.nice file can help you discover features not presented in the tutorial.


The Nice compiler is freely available (a source release is planned) on the installation page.

    Compilation instructions

The compilation instructions detail how to structure your programs, compile and run them.


Feel free to contact Daniel Bonniot for any question, any request or to offer help!