Les fonctions
CHAPITRE 8
170
En Java, une méthode de classe (static) joue le même rôle qu’une fonction usuelle. Il existe une
méthode de classe particulière, nommée main qui joue le rôle de fonction principale : elle doit
obligatoirement disposer d’un paramètre (nommé ici args) qui est un tableau de chaînes de caractères
(String) et ne renvoyer aucune valeur (void). Le mot public est obligatoire.
class X
// définition d’une classe nommée X
{ public static void main(String[] args) // comportant une méthode « de classe »
{ .....
// nommée main
}
.....
}
En C#, on trouve un mécanisme comparable à celui de Java, avec cette différence que la méthode se
nomme Main et qu’elle ne dispose pas de paramètre :
class X
// définition d’une classe nommée X
{ public static void Main() // comportant une méthode « de classe » nommée Main
{ .....
}
.....
}
Séparation entre fonction et programme
C et C++ réalisent une « compilation séparée » des différentes fonctions, ce qui fournit des « modules
objets » (contenant des instructions en langage machine). On peut placer une ou plusieurs fonctions dans
un même fichier source. Pour utiliser une fonction dans une autre fonction (ou dans la fonction principale),
le compilateur doit en connaître l’en-tête qu’on lui fournit sous forme d’une « déclaration de fonction »
(cette déclaration n’est pas obligatoire si les instructions de la fonction ont été fournies auparavant, dans le
même fichier source). Il faut ensuite assembler les différents modules objets nécessaires, afin de former un
« programme exécutable ». C’est le rôle d’un programme nommé « éditeur de liens ».
Java réalise une précompilation des classes dans un code intermédiaire, qu’il range dans des fichiers de
type .class. Ces fichiers objets sont directement accessibles à l’interpréteur dit « machine virtuelle ». Le
mécanisme ressemble à celui de la compilation séparée, avec cette différence qu’il n’impose pas de déclarations supplémentaires pour pouvoir utiliser une fonction (en fait une classe).
C# réalise également une précompilation dans un code intermédiaire commun à l’architecture NET, nommé MSIL (Microsotf Intermediate Langage). Là encore ces fichiers sont accessibles à l’interpréteur (qui est
en fait un compilateur de type Just In Time).
PHP dispose de la notion de programme principal et de fonctions (comme nous l’avons définie ici). Il est
totalement interprété. On peut placer une ou plusieurs fonctions, avec le programme principal dans un
même fichier source. Mais on peut aussi incorporer une fonction dans un autre fichier, à l’aide de l’instruction require.
Précédent

- 193/370

Suivant