Une carte d'identité des langages de programmation

Première version d'une carte d'identité des langages de programmation

Ci-dessous un premier jet de notre carte d'identité. On a essayé de ranger les caractéristiques en catégories afin de structurer les notions abordées dans les précédents articles.
  • Généralités
    • Nom
    • Version : souvent une date de sortie, parfois un nom de code
    • Date de création
    • Créateur(s) : personne ou entreprise à l'origine du langage
    • Logo
  • Paradigmes : listes des paradigmes supportés [1], [2]
    • <impératif |
    • fonctionnel |
    • orienté objet | ...>
  • Typage : caractéristiques du typage [4]
    • <fort | faible>
    • <statique | dynamique>
    • <explicite | implicite>
  • Divers
    • Turing complétude [3]
    • Évaluation: les valeurs sont-elles évaluées de manière paresseuse, … Cette notion concerne principalement le mécanisme de transmission des valeurs entre fonctions
    • Gestion de la mémoire : la mémoire est-elle laissé à la gestion du programmeur
  • Fonctionnalités de la bibliothèque standard : liste des modules présents dans la bibliothèque standard sans autre ajout
    • <thread |
    • exception | ...>
  • Communauté
    • Popularité [4]
    • Implémentations : liste des principaux compilateurs/interpréteurs du marché
  • Code
    • Code objet: source, binaire, byte-code [4]
    • Hello world! : l'exemple typique pour la présentation d'un langage [5]
[1] http://ser-info-02.ec-nantes.fr/users/info3/weblog/e1f06/Langage_et_paradigme_definitions.html
[2] http://ser-info-02.ec-nantes.fr/users/info3/weblog/0e335/Paradigmes_de_programmation_generalites_et_exemple.html
[3] http://ser-info-02.ec-nantes.fr/users/info3/weblog/692b5/Questce_quun_langage_turingcomplet_.html
[4] http://ser-info-02.ec-nantes.fr/users/info3/weblog/62da8/Langages_de_programmation__typage_et_divers.html
[5] http://www.roesler-ac.de/wolfram/hello.htm

Deux exemples

C++

  • Généralités
  • Paradigmes
    • générique
    • orienté objet
    • procédural
    • récursivité
  • Typage
    • explicite
    • faible
    • statique
  • Divers
    • Turing-complétude : oui
    • Évaluation : stricte
    • La gestion de la mémoire est laissée aux soins de l'utilisateur
  • Fonctionnalités de la bibliothèque standard
    • Exceptions
  • Communauté
    • Il s'agit d'un des langages les plus utilisés. En fonction des critères de classement, il occupe de manière variable les cinq premières places
    • Implémentations : g++, MinGW, Borland C++ Compiler, Digital Mars, Visual C++, Code::Blocks Studio, Eclipse CDT, NetBeans IDE...
  • Code
    • Code objet : binaire
    • Hello world!
#include <iostream> // Commentaire : cette inclusion permet de récupérer la sortie standard
int main(void)
{
/*
Commentaire : 'std::' sert à accéder à l'espace de nom std
dans lequel sont définies les variables cout et endl
*/
std::cout << "Hello world!" << std::endl;
return 0;
}

Prolog

  • Généralités
    • Nom : Prolog (acronyme de PROgrammation LOgique)
    • Version : 2000
    • Date de création: 1972
    • Créateurs : Alain Colmerauer, Philippe Roussel
  • Paradigmes
    • programmation logique
    • récursivité
  • Typage
    • La qualification du typage du prolog n'a pas vraiment de sens puisqu'il n'existe pas réellement de variables. Cependant, en essayant d'extrapoler sur les mécanismes d'évaluation des valeurs il serait dynamique, fort et implicite
  • Divers
    • Turing complétude : oui
    • Evaluation : paresseuse
    • Fonctionnalités de la bibliothèque standard
    • entrées-sorties standards
  • Communauté
    • Popularité : Faible (> 30ème place)
    • Implémentations : BProlog, ECLiPSe, GNU Prolog, Poplog Prolog, P#, ...
  • Code
    • Code objet source, binaire lorsque les performances comptent, parfois byte-code en fonction de l'implémentation
    • Hello world!
?- write('Hello world!'), nl.
Hello world!
true.

Comments