Nice (langage)

Image manquante
Langage_progr.png
image:Langage_progr.png

Cet article fait partie de la série
Langages de programmation
Langages à objets
Ada 95 - C++ - C#
Common Lisp
Delphi - Eiffel - Java
Nice - Oz - Python
Simula - Smalltalk
Visual Basic
Langages impératifs
APL - ASP - Assembleur
BASIC - C - COBOL
Forth - FORTRAN - Logo
Pascal - Perl - PHP
Langages fonctionnels
Erlang - Haskell
ML/OCaml - Oz
Lisp/Common Lisp
Scheme
Langages déclaratifs
Clips - Oz - Prolog
Langages concurrents
Ada 95 - Erlang
Java - Oz
Langages balisés
HTML - SGML - XML
Dialectes XML
S-expressions
Voir aussi
Conception - Codage
Tests - Optimisations

Nice est un langage de programmation orientée objet basé sur la plateforme d'exécution Java (JRE) dont la syntaxe s'inspire fortement de celle de Java et qui offre un supports de divers autres concepts de programmation, comme la programmation fonctionnelle.

Ce langage permet d'ajouter des méthodes à des classes dans d'autres sources que celui de la classe (multiméthodes).

Il évite d'avoir à écrire plusieurs versions de méthodes avec des paramètres différents, en offrant des valeurs par défaut et en sélectionnant l'implémentation à utiliser selon la liste de ces arguments.

Le compilateur de Nice est assez sophistiqué et permet de détecter pendant la compilation des erreurs qui apparaissent classiquement lors de l'exécution (valeur de pointeur nulle, transtypage, ...).

Les programmes sources sont compilés en bytecode Java et peuvent donc interagir avec des bibliothèques écrites en Java.

Nice offre un certain support des assertions (Design by Contract) tel que définies par Eiffel, et incorpore d'autres fonctions de programmation comme les fonctions anonymes, etc.

Nice prétend inclure certaines fonctionnalité propres à la Programmation orientée aspect au travers du support des multiméthodes, mais cette approche n'offre en réalité pas le même gain en terme de réduction des dépendances du système que celui offert par la POA, puique les multiméthodes sont liées statiquement par un appel explicite.

Liens externes

See also: Nice (langage), APL (langage), Active server pages, Ada (langage), Assembleur (langage), Basic, Bytecode Java, CLOS, COBOL