Pour préparer, illustrer des cours : langages et programmation (sélection thématique) : Différence entre versions

De Sciencinfolycee
Aller à : navigation, rechercher
Ligne 4 : Ligne 4 :
  
 
* Tous les contenus en liens avec [[1.3._Langage_de_programmation|Langages et programmation]]
 
* Tous les contenus en liens avec [[1.3._Langage_de_programmation|Langages et programmation]]
 
  
 
= Historique =
 
= Historique =
 
== Pascal, 1970 ==
 
== Pascal, 1970 ==
  
Impératif, Procédural, Compilé, Bas niveau
+
C'est un langage relativement vieux (plus de 40 ans) mais qui bénéficie d'une syntaxe claire et intuitive facilitant son apprentissage.
 +
 
 +
'''Exemple de programmation en Pascal'''
 +
 
 +
program HelloWorld;
 +
 +
begin
 +
  writeln('Hello World');
 +
end.
 +
 
  
 
== C, 1972 ==
 
== C, 1972 ==
  
Impératif, Procédural, Compilé, Bas niveau
+
Langage historique qui a fortement impacté la communauté et qui reste très utilisé encore aujourd'hui (programmation du noyau linux). C'est un langage de relativement bas niveau avec lequel il est très facile de commettre des erreurs, il est peut donc être un peu difficile d'accès pour une première approche de la programmation.
  
== ML, 1973 ==
+
'''Exemple de programmation en C'''
 +
  # include <stdio.h>
 +
  int main(int argc, char **argv) {
 +
      printf("Hello World\n");
 +
      return 0;
 +
  }
  
Fonctionnel, Procédural, Compilé, Haut niveau
 
  
 
==C++, 1983 ==
 
==C++, 1983 ==
  
Impératif, Procédural / Objet, Compilé, Bas niveau
+
Le langage C++ représente une extension objet du langage C. Bien qu'il permette d'abstraire un certain nombre de structures algorithmiques du langage C, il reste un langage de relativement bas niveau exigeant un certain effort e programmation.
 +
 
 +
'''Exemple de programmation en C++'''
 +
  #include <iostream>
 +
  int main(int argc, char **argv) {
 +
      std::cout << "Hello World" << std:endl;
 +
      return 0;
 +
  }
 +
 
  
 
== Java, 1991 ==
 
== Java, 1991 ==
  
Impératif, Procédural / Objet, Compilé, Haut niveau
+
Java est un langage objet de haut niveau qui a pour origine le langage C++. Il permet un accès facile et assez immédiat à la programmation de par sa présence sur un grand nombre de plate-formes matérielles et son "inter-opérabilité" (les sources restent les mêmes d'une machine à l'autre).
 +
 
 +
'''Exemple de programmation en Java'''
 +
 
 +
class HelloWorldApp {
 +
    public static void main(String[] args) {
 +
        System.out.println("Hello World!"); //Display the string.
 +
    }
 +
}
  
 
== Python, 1991 ==
 
== Python, 1991 ==
  
Impératif, Procédural / Objet, Interprété, Haut niveau
+
Python est un langage de programmation objet de haut niveau, interprété, et possédant une syntaxe claire avec notamment l'utilisation de l'indentation comme délimitateur de blocs. Cela peut cependant être un peu déroutant pour des novices.
 +
 
 +
'''Exemple de programmation en python (version 2.7)'''
 +
 
 +
  $ python
 +
  >>> print "Hello World"
 +
  Hello World
 +
  >>>
 +
 
  
 
== Ruby, 1993 ==
 
== Ruby, 1993 ==
  
Impératif, Procédural / Objet, Interprété, Haut niveau
+
Ruby est un langage de programmation de haut niveau, interprété et très orienté objet.
  
 
== PHP, 1995 ==
 
== PHP, 1995 ==
  
Impératif, Procédural / Objet, Interprété, Haut niveau
+
PHP est un langage de script de haut niveau qui a été conçu à l'origine pour (et reste principalement orienté vers ) la génération dynamique des pages HTML.
 +
 
 +
 
  
 
= Classification des langages =
 
= Classification des langages =
Ligne 114 : Ligne 152 :
 
* Support de cours de Christian Bac pour le langage C.
 
* Support de cours de Christian Bac pour le langage C.
  
'''Exemple de programmation en C'''
+
 
  # include <stdio.h>
 
  int main(int argc, char **argv) {
 
      printf("Hello World\n");
 
      return 0;
 
  }
 
  
 
== C++ ==
 
== C++ ==
Ligne 126 : Ligne 159 :
 
* ''Ce site est une description du langage C++, avec un certain nombre d’exemples simples destinés à l’apprentissage. Il est issu d'un livre antérieur et est donc organisé de manière linéaire  : on peut commencer à lire au début et continuer de section en section. Bien sûr, on peut aussi traverser les différentes sections en utilisant le sommaire.''
 
* ''Ce site est une description du langage C++, avec un certain nombre d’exemples simples destinés à l’apprentissage. Il est issu d'un livre antérieur et est donc organisé de manière linéaire  : on peut commencer à lire au début et continuer de section en section. Bien sûr, on peut aussi traverser les différentes sections en utilisant le sommaire.''
  
'''Exemple de programmation en C++'''
 
  #include <iostream>
 
  int main(int argc, char **argv) {
 
      std::cout << "Hello World" << std:endl;
 
      return 0;
 
  }
 
  
 
== Pascal ==
 
== Pascal ==
Ligne 138 : Ligne 165 :
 
* ''Si la programmation dite procédurale est constituée de procédures et fonctions sans liens particuliers agissant sur des données dissociées pouvant mener rapidement à des difficultés en cas de modification de la structure des données, la programmation objet, pour sa part, tourne autour d'une unique entité : l'objet, offrant de nouvelles perspectives, et que je vous invite à découvrir de suite...''
 
* ''Si la programmation dite procédurale est constituée de procédures et fonctions sans liens particuliers agissant sur des données dissociées pouvant mener rapidement à des difficultés en cas de modification de la structure des données, la programmation objet, pour sa part, tourne autour d'une unique entité : l'objet, offrant de nouvelles perspectives, et que je vous invite à découvrir de suite...''
  
'''Exemple de programmation en Pascal'''
 
 
program HelloWorld;
 
 
begin
 
  writeln('Hello World');
 
end.
 
  
  

Version du 21 novembre 2011 à 11:35

Travaux en cours : cette page n'est pas finalisée.... Merci de votre compréhension.

Voir aussi la page sur les algorithmes

Historique

Pascal, 1970

C'est un langage relativement vieux (plus de 40 ans) mais qui bénéficie d'une syntaxe claire et intuitive facilitant son apprentissage.

Exemple de programmation en Pascal

program HelloWorld;

begin
  writeln('Hello World');
end.


C, 1972

Langage historique qui a fortement impacté la communauté et qui reste très utilisé encore aujourd'hui (programmation du noyau linux). C'est un langage de relativement bas niveau avec lequel il est très facile de commettre des erreurs, il est peut donc être un peu difficile d'accès pour une première approche de la programmation.

Exemple de programmation en C

 # include <stdio.h>
 int main(int argc, char **argv) {
     printf("Hello World\n");
     return 0;
 }


C++, 1983

Le langage C++ représente une extension objet du langage C. Bien qu'il permette d'abstraire un certain nombre de structures algorithmiques du langage C, il reste un langage de relativement bas niveau exigeant un certain effort e programmation.

Exemple de programmation en C++

 #include <iostream>
 int main(int argc, char **argv) {
     std::cout << "Hello World" << std:endl;
     return 0;
 }


Java, 1991

Java est un langage objet de haut niveau qui a pour origine le langage C++. Il permet un accès facile et assez immédiat à la programmation de par sa présence sur un grand nombre de plate-formes matérielles et son "inter-opérabilité" (les sources restent les mêmes d'une machine à l'autre).

Exemple de programmation en Java

class HelloWorldApp {
    public static void main(String[] args) {
        System.out.println("Hello World!"); //Display the string.
    }
}

Python, 1991

Python est un langage de programmation objet de haut niveau, interprété, et possédant une syntaxe claire avec notamment l'utilisation de l'indentation comme délimitateur de blocs. Cela peut cependant être un peu déroutant pour des novices.

Exemple de programmation en python (version 2.7)

 $ python
 >>> print "Hello World"
 Hello World
 >>>


Ruby, 1993

Ruby est un langage de programmation de haut niveau, interprété et très orienté objet.

PHP, 1995

PHP est un langage de script de haut niveau qui a été conçu à l'origine pour (et reste principalement orienté vers ) la génération dynamique des pages HTML.


Classification des langages

Il est possible de classer les différents langages de programmation selon divers critères qui ne se recouvrent pas les une avec les autres. Pour chaque critère, il est parfois possible de classer un langage dans les deux catégories.


Impératif / Fonctionnel

Impératif

C, C++, PHP, Java, Javascript, Pascal, Ruby, Shell script,

Fonctionnel

SML, CAML


Procédural / Objet

En général, tous les langages objets permettent la programmation procédural mais on ne classe dans la catégorie procédural que les langages ne permettant pas la programmation objet.

Procédural

Pascal, C, Shell script

Objet

C++, Java, Javascript, PHP, Python, Ruby, Pascal Objet, Caml


Haut niveau / Bas niveau

Les langages de haut-niveau ne permettent pas en général l'accès direct aux ressources du système comme par exemple la gestion de la mémoire.

Haut niveau

Python, Ruby, PHP, Java, Pascal

Bas niveau

C++, C, Shell script


Compilé/Interprété

Les langages compilés requièrent un compilateur et une phase préalable de compilation avant l'exécution d'un programme.

Compilé

C, C++, Pascal, Java

Interprété

Python, Ruby, Javascript, PHP, Caml




Ressources

Java

C

Langage C et Shell

  • Introduction par Martin Quinson à la programmation en langage C pour des utilisateurs ayant déjà une première expérience de programmation.

Support de cours

  • Support de cours de Christian Bac pour le langage C.


C++

Introduction à C++ par Thomas Lachand-Robert

  • Ce site est une description du langage C++, avec un certain nombre d’exemples simples destinés à l’apprentissage. Il est issu d'un livre antérieur et est donc organisé de manière linéaire : on peut commencer à lire au début et continuer de section en section. Bien sûr, on peut aussi traverser les différentes sections en utilisant le sommaire.


Pascal

Introduction à la programmation orientée objet par Eric Sigoillot

  • Si la programmation dite procédurale est constituée de procédures et fonctions sans liens particuliers agissant sur des données dissociées pouvant mener rapidement à des difficultés en cas de modification de la structure des données, la programmation objet, pour sa part, tourne autour d'une unique entité : l'objet, offrant de nouvelles perspectives, et que je vous invite à découvrir de suite...


Javascript

PHP

Python

Courte introduction à python

Tutoriel officiel

  • Tutoriel (en anglais) officiel de python

Plongez au coeur de Python

  • Dive Into Python (Plongez au coeur de Python) est un tutoriel Python libre destiné aux programmeurs expérimentés. Il s'agit d'une traduction française de l'ouvrage de Mark Pilgrim, initialement intitulé "Dive Into Python", rédigée par une équipe de volontaires. Vous pouvez lire le livre en ligne, ou le télécharger dans divers formats. Il est aussi disponible dans plusieurs langues.

Exemple de programmation en python (version 2.7)

 $ python
 >>> print "Hello World"
 Hello World
 >>>

Ruby

Ruby en vingt minutes

  • Ce court tutoriel ne devrait pas prendre plus de vingt minutes de votre temps. Il part du principe que vous avez déjà installé Ruby ; si ce n’est pas le cas, il vous est chaleureusement conseillé de le faire avant de poursuivre votre lecture.


Exemple de programmation en Ruby

$ irb --simple-prompt
>> puts "Hello world"
Hello world
=> nil

Shell script

Exemple de programmation en shell-script

$ echo "Hello World !"
Hello World !
$

OCAML

Functional Programming For The Rest of Us

  • Courte introduction (en anglais) à la programmation fonctionnelle.

CAML

  • Caml est un langage de programmation généraliste, conçu pour garantir la sûreté et la fiabilité des programmes. Il est très expressif et néanmoins facile d'apprentissage et d'emploi. Caml se prête à la programmation dans un style fonctionnel, impératif ou orienté objets
  • Le langage Caml a été développé à partir de 1985 au sein des équipes Formel, Cristal, puis Gallium de l'INRIA. Caml Light, développé au début des années 1990, est toujours utilisé, en particulier dans l'enseignement. OCaml offre un langage de programmation plus riche et dispose de compilateurs produisant du code natif efficace pour de nombreuses architectures. Une histoire de Caml plus détaillée est disponible.

Exemple de programmation en OCAML

$ ocaml
Objective Caml version 3.00
# print_string "Hello World !\n";; 	 	
Hello World!
- : unit = ()
#