\part{Présentation de Nit}

\chapter{Caractéristiques}
Nit est un langage de programmation orienté objet dont la syntaxe est proche de celle des langages de scripts. Le but de Nit est de proposer un langage de programmation robuste à typage statique, où la structure n'est pas une torture.
\begin{description}
	\item[Nit est compilé]Le code source de Nit est compilé pour être ensuite traduit en C.
	\item[Nit est orienté objet]Comme la plupart des langages récents, Nit est orienté objet. Chaque fichier source contient la définition d'une ou plusieurs classes qui sont utilisées les unes avec les autres pour former une application. En Nit, TOUT est objet (Et oui même a = 0, c'est de l'objet).
	\item[Nit supporte l'héritage multiple]Avec Nit il est possible de faire hériter une classe de plusieurs classes parentes, et bien d'autres choses plus intéressantes encore !
	\item[Nit est fortement typé]Toutes les variables sont statiquement typées mais Nit utilise le typage adaptatif. C'est à dire qu'il devinera automatiquement et adaptera le type statique d'une variable en fonction de son utilisation dans le programme. Il n'est donc plus nécessaire de spécifier un type à chaque déclaration (mais cela reste possible). Le typage fort n'est plus une torture !
	\item[Nit assure la gestion de la mémoire]L'allocation de la mémoire pour un objet est automatique à sa création et Nit récupère automatiquement la mémoire utilisée grâce à un ramasse miette qui restitue les zones de mémoires laissées libres suite à la destruction des objets.
\end{description}

\begin{quote}
\centering
    \textsc{\textbf{Nit : A Fun Language for Serious Programming !}}
\end{quote}

\chapter{Historique}
Nit est le descendant direct de PRM développé en 2005 au LIRMM en France. Il s'agissait d'un langage jouet servant à expérimenter des traits de langage et des techniques d'implémentation.

En 2008 nait Nit un langage plus généraliste développé conjointement à l'UQAM et au LIRMM. Il étend PRM en y ajoutant utilisabilité et robustesse.

Aujourd'hui, en 2011, le développement de Nit continue...


\chapter{Installation de Nit}
Le compilateur Nit est librement accessible grâce à git : 
\begin{description}
	\item[Protocole GIT]\url{git://nitlanguage.org/nit.git}
	\item[Protocole HTTP]\url{http://nitlanguage.org/nit.git}
\end{description}

La documentation de la librairie standard se trouve sur le site web de Nit : \url{http://nitlanguage.org/}

Pour télécharger le compilateur :
\begin{lstlisting}[language=bash]
$ git clone git://nitlanguage.org/nit.git
\end{lstlisting}
ou
\begin{lstlisting}[language=bash]
$ git clone http://nitlanguage.org/nit.git
\end{lstlisting}

Il faut maintenant compiler le compilateur :
 
\begin{lstlisting}[language=bash,firstnumber=last]
$ cd nit
$ make
\end{lstlisting}

Ça y est, le compilateur Nit est maintenant installé sur votre ordinateur !

\chapter{Compilation et exécution}
Un programme Nit est composé d'un ou plus généralement plusieurs fichiers source. N'importe quel éditeur de texte peut être utilisé pour modifier un fichier Nit.

Ces fichiers source possèdent l'extension \og .nit \fg. Ils peuvent contenir du code, une ou plusieurs classes et/ou modules.

Il est nécessaire de compiler le source pour pouvoir l'exécuter. Le compilateur \textbf{nitc} est utilisé pour compiler chaque fichier source en code exécutable par la machine. Lors de la compilation, les fichiers sources écrits en Nit seront transformés en C pour être exécutés.

Commençons par créer le classique Hello World dans le fichier hello\_world.nit :
\lstinputlisting[language=Nit]{./presentation/listings/hello_world_s.nit}

A présent il faut le compiler :
\begin{lstlisting}[language=bash]
$ bin/nitc hello_world.nit
\end{lstlisting}

Puis l'exécuter comme on le ferait en C :
\begin{lstlisting}[language=bash,firstnumber=last]
$ ./hello_world
\end{lstlisting}