Nice TWiki > Doc > CodeExamples (r1.34) TWiki webs:
Dev | Doc | Main | TWiki | Sandbox
Doc . { Changes | Index | Search | Go }
This section is a repository for code fragments and programs, for illustration purposes. Please create a specific page for each example. Its WikiWord should end with the word Example.


Download Novice and Beginner Examples

Download Language Shootout Examples (See The Great Win32 Computer Language Shootout )


Examples for novices

HelloWorldNoviceExample: Setup, compile and run Hello World.

AckermannNoviceExample: Setup, compile and run Ackermann's function.

FiboNoviceExample: Setup, compile and run Fibonnaci function.

Multi Method Examples

BenderFsmMultiMethodExample?: Finite State Machine encoded with multi methods.

BuilderPatternMultiMethodExample: For performance testing, the Runabout project generates various styles of test code - Visitor, Test Case, Multi Java, Runabout etc. In Java, this kind of generator code is often written using the BuilderPattern; in Nice, multi methods provide a straightforward solution.

Examples for beginners

HashBeginnerExample: HashMap with type parameter <String,Cell>

ListsBeginnerExample: ArrayList with type parameter <int>

NumberFiveBeginnerExample?: Subtype constraints on type parameters < T | T <: double, int <: T >

MethcallBeginnerExample: Define a class and subclass.

ObjinstBeginnerExample: Import Nice classes from MethcallBeginnerExample.

RandomBeginnerExample: Import a standard Java package.

ShapesBeginnerExample: Alternative ways to define methods.

SieveBeginnerExample: Type inference for array variable.

StrcatBeginnerExample: Type inference for object variable.

SpellcheckBeginnerExample: Anonymous functions help reduce boiler-plate code.

MomentsBeginnerExample: Read numbers from a file and compute basic statistics.

ProducerConsumerBeginnerExample: Simple producer consumer thread synchronization.

GenericProgrammingBeginnerExample: Compare with C++, ML, Haskell, Eiffel, Java Generics, Generic C# implementations in "A Comparative Study of Language Support for Generic Programming".

CollectionExample: How to use collections with generic types.

Examples for intermediates

MethcallIntermediateExample: Define a Java class JavaToggleExample and subclass it in Nice, compile Nice using classes in a Java jar, setup a Nice executable archive classpath to find a Java jar - compare with MethcallBeginnerExample.

WordfreqIntermediateExample: Read words from a file and compute word frequencies - generic HashMap and ArrayList, sort, local functions.

ShapesIntermediateExample: Extend existing ShapesBeginnerExample classes to implement an abstract interface and new methods.

MethcallIntermediateTwoExample: Define a Nice class NiceToggleExample and subclass it in Java - compare with MethcallBeginnerExample.

GenericProgrammingIntermediateExample?: Generic implementations of graph algorithms from the Boost Graph Library - Breadth First Search, Dijkstra Shortest Paths, Prim's Minimum Spanning Tree, Bellman Ford Shortest Paths, Johnson All-Pairs Shortest Paths. Compare with C++, ML, Haskell, Eiffel, Java Generics, Generic C# implementations in "A Comparative Study of Language Support for Generic Programming".

Examples for benchmarkers

TreeVisitorIntermediateExample: Benchmark comparison between the Java Extensible Visitor pattern and modular extension in Nice. Simple generic binary tree TreeVisitorClassesIntermediateExample extended with a subclass representing n-ary trees, and with 3 different external methods.

DispatchIntermediateExample: Benchmark comparison between typecase and double-dispatch in Java, and multiple dispatch in Nice.

BenchIntermediateExample: Martin Richards systems language benchmark Bench, written in an ordinary OO style. PacketBenchExample declares enums, TcbBenchExample uses a class initializer, SchedulerBenchExample misuses enum.hashCode, TaskBenchExample declares an interface. "Benchmarking Java with the Richards benchmark" provides some background information.

More advanced examples

HelloSwingWorld : shows how to write (a little more complex :-) helloworld program.

SwingLibraryExample : shows how to write a GUI program using the Swing Library.

HaskellPreludeExample: Selected parts of the Haskell prelude, lots of functions which are useful when programming in functional style.

LazyVectorExample: A Vector subclass which computes its elements as they are they requested.

Topic CodeExamples . { Edit | Attach | Ref-By | Printable | Diffs | r1.57 | > | r1.56 | > | r1.55 | More }
Revision r1.34 - 30 Jan 2004 - 19:38 GMT - IsaacGouy
Parents: WebHome
Copyright © 1999-2003 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback.