nitg: Added option to bind C function names to Nit names when generating a Stack...
[nit.git] / README
1 Nit is a statically typed object-oriented programming language.
2 The goal of Nit is to propose a statically typed programming language where structure is not a pain.
3
4 Nit has a simple straightforward style and can usually be picked up quickly, particularly by anyone who has programmed before.
5 While object-oriented, it allows procedural styles.
6
7 The Nit Compiler (nitc) produces efficient machine language binaries.
8
9 Some Nit features:
10
11  * Pure Object-Oriented.
12  * Multiple Inheritance.
13  * Realist typing policy.
14  * Light and clear syntax.
15
16
17 Requirement:
18
19         * gcc           http://gcc.gnu.org/
20         * ccache        http://ccache.samba.org/        to improve recompilation
21         * libgc-dev     http://www.hpl.hp.com/personal/Hans_Boehm/gc/
22         * graphviz      http://www.graphviz.org/        to enable graphes with the nitdoc tool
23         * libunwind     http://nongnu.org/libunwind
24         * gperf         http://gnu.org/software/gperf   to enable mapping from C to Nit function names in a stack trace
25
26 Those are available in most linux distributions
27
28     # sudo apt-get install build-essential ccache libgc-dev graphviz libunwind gperf
29
30 Important files and directory:
31
32         benchmarks/     Script to bench the compilers
33         bin/            The Nit tools
34         bin/nitc        The Nit compiler
35         bin/nitg        The new Nit compiler
36         bin/nit         The Nit interpreter
37         bin/nitdoc      The Nit autodoc
38         c_src/          C code of nitc (needed to bootstrap)
39         clib/           C code needed by nitc to compile programs
40         Changelog       List of change between versions
41         contrib/        Various Nit programs (may or may not be useful)
42         doc/            Documentation
43         examples/       Program examples written in Nit
44         LICENCE         License of the software
45         misc/           Some additional file for commons text editors and tools
46         tests/          Non-regression test-suite
47         lib/            Nit standard library
48         Makefile        Bootstrap the Nit tools
49         NOTICE          List of the authors
50         README          This file
51         src/            The Nit tool sources (written in Nit)
52
53
54 How to start:
55
56     $ make
57     $ bin/nitc examples/hello_world.nit
58     $ ./hello_world
59
60
61 More information:
62
63         http://www.nitlanguage.org
64