title: Pizza (langage de programmation)
text: # Pizza (langage de programmation)
  
  Pizza est un langage de programmation destiné à étendre les versions 1.1 à 1.4 de Java avec des concepts de programmation plus évolués.
  
  Les 3 principales fonctionnalités ajoutées par le langage Pizza sont :
  
  * la programmation générique ;
  * les pointeurs sur les fonctions ;
  * et le filtrage par motif.
  
  Aujourd'hui, Pizza est peu utilisé parce que la plupart des fonctionnalités citées ci-dessus sont désormais nativement supportées par Java depuis la version 5.0 de 2004. Ainsi la version actuelle de Pizza est la 1.1 depuis le 3 janvier 2002.
  
  Au niveau de l'implémentation, les fonctionnalités nouvelles pour Java à l'époque, étaient déjà bien connues des développeurs C++. C'est pourquoi la syntaxe proposée par Pizza est proche du langage C++.
  
  ## Des sources au bytecode Java
  
  Les codes sources écrits en langage Pizza doivent être placés dans un fichier texte avec l’extension .pizza.
  
  Ces codes sources sont transformés en bytecode Java pour pouvoir fonctionner sur une machine virtuelle Java (JVM). Cette transformation est effectuée par un compilateur appelé Pizza Compiler. Comme celui-ci se présente sous la forme d'une archive Java à l'extension .jar la commande de compilation est un peu particulière. En effet, pour compiler HelloWord.pizza, la commande à taper est la suivante :
  
  Pour se ramener à une syntaxe plus classique, il est courant de définir un alias de la forme :
  
  Ainsi la compilation de HelloWorld.pizza se réduit à la simple commande suivante :
  
  ## Documentation des classes Pizza
  
  De la même manière que Java a son Javadoc, Pizza a son Pizzadoc qui permet de générer automatiquement une documentation au format HTML.
  
  Là encore, la syntaxe brute est assez lourde. En effet, pour générer la documentation de la classe HelloWorld, il faut taper :
  
  Donc pour se ramener à une syntaxe plus simple, il est courant de définir un alias de la forme :
  
  Ainsi la génération de la documentation de HelloWorld se réduit à la simple commande suivante :
  
  