COMPARAISONDESLANGAGESC, C++, JAVA ET



Documents pareils
Introduction au langage C

as Architecture des Systèmes d Information

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Programmer en JAVA. par Tama

INTRODUCTION A JAVA. Fichier en langage machine Exécutable


INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Programmation système I Les entrées/sorties

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre Enrica.Duchi@liafa.jussieu.fr

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

UE C avancé cours 1: introduction et révisions

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

UE Programmation Impérative Licence 2ème Année

Plan du cours. Historique du langage Nouveautés de Java 7

Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski

Cours 1: Java et les objets

Java Licence Professionnelle CISII,

Cours de C++ François Laroussinie. 2 novembre Dept. d Informatique, ENS de Cachan

TP1 : Initiation à Java et Eclipse

Claude Delannoy. 3 e édition C++

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, , ISBN :

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Une introduction à Java

PROGRAMMATION PAR OBJETS

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

Notions fondamentales du langage C# Version 1.0

Langage Java. Classe de première SI

Java Licence Professionnelle CISII,

Aide mémoire UML & Java 1ère partie : Introduction. marc.lemaire@u-cergy.fr

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004

Programmation Objet Java Correction

Cours d Algorithmique et de Langage C v 3.0

INITIATION AU LANGAGE JAVA

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

SUPPORT DE COURS. Langage C

Les structures. Chapitre 3

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

Programmation en Java IUT GEII (MC-II1) 1

Introduction à l algorithmique et à la programmation M1102 CM n 3

La technologie Java Card TM

Flux de données Lecture/Ecriture Fichiers

ACTIVITÉ DE PROGRAMMATION

Cours d initiation à la programmation en C++ Johann Cuenin

Rappels Entrées -Sorties

Programmation en langage C

Initiation. àl algorithmique et à la programmation. en C

INF 321 : mémento de la syntaxe de Java

Anne Tasso. Java. Le livre de. premier langage. 6 e édition. Groupe Eyrolles, 2000, 2002, 2005, 2006, 2008, 2010, ISBN :

Langage C. Patrick Corde. 22 juin Patrick Corde ( Patrick.Corde@idris.fr ) Langage C 22 juin / 289

Programmation C. Apprendre à développer des programmes simples dans le langage C

Programmation Classique en langage C

TD3: tableaux avancées, première classe et chaînes

Initiation à JAVA et à la programmation objet.

Chap III : Les tableaux

Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie

30.avr.10 Présentation miniprojet. 9.mars.10 Cours 3 4.mai.10 Cours C mars.10 Cours 4 11.mai.10 Cours C++ 2

MISE A NIVEAU INFORMATIQUE LANGAGE C - EXEMPLES DE PROGRAMMES. Université Paris Dauphine IUP Génie Mathématique et Informatique 2 ème année

Algorithmique et Programmation, IMA

Cours 14 Les fichiers

Conventions d écriture et outils de mise au point

Java c est quoi? Java. Java. Java : Principe de fonctionnement 31/01/ Vue générale 2 - Mon premier programme 3 - Types de Programme Java

1. Langage de programmation Java

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique

Programmation C. J.-F. Lalande. 15 novembre 2012

Généralités sur le Langage Java et éléments syntaxiques.

Introduction à C++ et à wxwidgets

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

Bases de programmation. Cours 5. Structurer les données

Chapitre I Notions de base et outils de travail

Java c est quoi? Java pourquoi?

Les structures de données. Rajae El Ouazzani

Cours de Java. Sciences-U Lyon. Java - Introduction Java - Fondamentaux Java Avancé.

Centre CPGE TSI - Safi 2010/2011. Algorithmique et programmation :

C++ Programmer. en langage. 8 e édition. Avec une intro aux design patterns et une annexe sur la norme C++11. Claude Delannoy

Premiers Pas en Programmation Objet : les Classes et les Objets

Licence Bio Informatique Année Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...

Dans le chapitre 1, nous associions aux fichiers ouverts des descripteurs de fichiers par lesquels nous accédions aux fichiers.

LMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. jabbour@cril.univ-artois.fr

Auto-évaluation Programmation en Java

Notes du cours 4M056 Programmation en C et C++ Vincent Lemaire et Damien Simon

Traduction des Langages : Le Compilateur Micro Java

Machines virtuelles. Brique ASC. Samuel Tardieu Samuel Tardieu (ENST) Machines virtuelles 1 / 40

Programmation en C/C++

Bases Java - Eclipse / Netbeans

Chapitre 2. Classes et objets

Programmation Orientée Objet application au langage Java Version Novembre 2007

Algorithme. Table des matières

Programmation système en C/C++

Programmation Orientée Objet

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

ALGORITHMIQUE ET PROGRAMMATION ORIENTEE OBJET

Introduction au C++ et à la programmation objet

Algorithmes et Programmes. Introduction à l informatiquel. Cycle de vie d'un programme (d'un logiciel) Cycle de vie d'un programme (d'un logiciel)

Introduction au Langage de Programmation C

Le Langage C Version 1.2 c 2002 Florence HENRY Observatoire de Paris Université de Versailles florence.henry@obspm.fr

Transcription:

REPUBLIQUE DU BENIN *******@******* MINISTERE DE L ENSEIGNEMENT SUPERIEUR ET DE LA RECHERCHE SCIENTIFIQUE(MESRS) *******@******* UNIVERSITE D ABOMEY CALAVI(UAC) *******@******* ECOLE POLYTECHNIQUE D ABPOMEY CALAVI(EPAC) *******@******* DEPARTEMENT DE GENIE INFORMATIQUE ET TELECOMMUNICATION Année d étude èmeannée : 4 PROGRAMMATION ORIENTE OBJET COMPARAISONDESLANGAGESC, C++, JAVA ET FORTRAN Réalisé par : Professeur : ACCALOGOUN Descartes Dr ADEDJOUM AYENA Edgar AZONHOUMON Ignace GOUCLOUNON Juste SESSOU Maurice Année académique : 2012-2013

INTRODUCTION Les langages de programmation sont des outils indispensables aux programmeurs. Ces langages sont vraiment variés et possèdent des caractéristiques propres et similitudes. Au nombre de ces langages, nous pouvons citer le FORTRAN, le C, le C++ et le JAVA. FORTRAN est un langage de traitement mathématique. Le C++ n est rien d autre que du C évolué. Quant à JAVA, il est venu pour simplifier certains aspects du C et C++ Ces trois langages feront l objet de notre étude comparative. HISTORIQUE SUR LES LANGAGES C, C++ et JAVA Le langage C a été créé en 1972 par Denis Ritchie avec un objectif relativement limité : écrire un système d'exploitation (UNIX). Mais ses qualités "opérationnelles" l'ont très vite fait adopté par une large communauté de programmeurs. Une première "définition" du langage est apparue en 1978 avec l'ouvrage de Kernighan et Ritchie The C programming language. Mais le langage a continué d'évoluer après cette date à travers les différents compilateurs qui ont vu le jour. Son succès international a contribué à sa normalisation, d'abord par l'ansi (American National Standard Institute), puis par l'iso (International Standardization Organisation), plus récemment en 1993 par le CEN (Comité européen de normalisation) et enfin, en 1994, par l'afnor. E fait, et fort heureusement, toutes ces normes sont identiques, et l'usage ve qu'on parle de "C ANSI" ou de "C norme ANSI".

Le langage C++, quant à lui, a été conçu suivant une démarche hybride. En effet, Bjarne Stroustrup, son créateur, a cherché à adjoindre à un langage structuré existant (le C), un certain nombre de spécificités lui permettant d appliquer les concepts de P.O.O. Dans une certaine mesure, i permis à des programmeurs C d effectuer une transition en douceur de la programmation structurée vers la P.O.O. De sa conception jusqu à sa normalisation, le langage C++ a quelque peu évolué. Initialement, un certain nombre de publications de AT&T ont servi de référence du langag Les dernières en date sont : la version 2.0 en 1989, les versions 2.1 et 3 en 1991. C est cette dernière qui a servi de base au travail du comité ANSI qu sans la remettre en cause, l a enrichie de quelques extensions et surtou de composants standard originaux se présentant sous forme de fonctions e de classes génériques qu on désigne souvent par le sigle S.T.L (Standard Template Library). La norme définitive de C++ a été publiée par l ANSI en juillet 1998. En ce qui concerne JAVA, on peut faire remonter sa naissance à 1991. À cette époque, des ingénieurs de chez SUN ont cherché à concevoir un langage applicable à de petits appareils électriques (on parle de code embarqué). Pour ce faire, ils se sont fondés sur une syntaxe très proche de celle de C++, en reprenant le concept de machine virtuelle déjà expl auparavant par le Pascal UCSD. L idée consistait à traduire d abord un programme source, non pas directement en langage machine, mais dans u pseudo langage universel, disposant des fonctionnalités communes à toutes les machines. Ce code intermédiaire, dont on dit qu il est form de byte codes, se trouve ainsi compact et portable sur n importe quelle machine ; il suffit simplement que cette dernière dispose d un programme approprié (on parle alors de machine virtuelle) permettant de l interpréter dans le langage de la machine concernée.

En fait, ce projet de langage pour code embarqué n a pas abouti en tant qu tel. Mais ces concepts ont été repris en 1995 dans la réalisation du logiciel HotJava, un navigateur Web écrit par SUN en Java, et capable d exécuter d applets écrits précisément en byte codes. Les autres navigateurs Web ont suivi, ce qui a contribué à l essor du langage qui a beaucoup évolué depuis cette date, sous forme de versions successives : 1.01 et 1.02 en 1996, 1.1 98 et 1.2 (finalement rebaptisée Java 2) en 1999, 1.3 en 2000, 1.4 en 2002 5.0 en 2004 (toujours appelées Java 2). Ainsi parle-t-on du J2SE 1.4 (Java 2 Standard Edition 1.4) basée sur le JDK 1.4 (Java Development K 1.4), plus récemment du J2SE5.0 (JDK 5.0) ou encore de Java 5. En revanch la dernière version s intitule JSE 6 (le 2 a disparu!), ou plus simplement Java 6 1. On notera que, au fil des différentes versions, les aspects fondamentaux d langage ont peu changé (ils ont quand même été complétés de façon substancielle par Java 5, notamment par l introduction de la programmation générique et du remaniement des "collections"). En revanche, les bibliothèques standards (API) ont beaucoup évolué, à la fois par des modifications et par des ajouts. Il en va d ailleurs de même des ensembles de spécifications accompagnant chaque version standard de Ja (J2EE jusqu à la version 4 et JEE depuis la version 5).

TABLEAU DE COMPARAISON DES LANGAGES C, C Eléments de comparaison C C++ JAVA Entiers Int Long Short Types de Float Réels Base Double Caractères Char Complexes Booléens Bool boolean Opérateurs logiques Opérateurs Arithmétiques Addition + Soustraction - Multiplication Division / Modulo % ET && OU Egalite == Différence!= Inférieur < Supérieur > Inférieur ou égal <= Supérieur ou égal >= *

Fonction principale int main(int argc, char *argv[]) public class nom_c static void main(s instructions Syntaxe générale des fonctions Type_fonction nom_fonction(type paramètre1, type paramètre2, Fonctions Type_fonction nom_fonction(type paramètre1, type paramètre2, Passage d arguments par valeur Type_fonction nom_fonction(type* paramètre1, type* Passage paramètre2,, type* paramètren) d arguments par adresse Passage d arguments par référence Type_fonction nom_fonction(type &paramètre1, type &paramètre2,, type &paramètren) Type_fonction nom_fonction(type paramètre1, type paramètre2,, ty paramètren) Pointeurs Déclaration Type *nom_pointeur ; Type *nom_pointeur ;

Types structurés Structures Classes typedef struct nom_structure nom_appelation ; struct nom_structure struct nom_structure Déclaration des variables Déclaration des variab ; les ; class nom_class : options d héritage Public : constructeur visibilité : méthodes public : destructeur [optionnel] visibilité : attributs ; visibilité class nom extends class_mer implements interfa interfacen public constructeu visibilité méthode1instruc visibilité méthodeninstruc private attributs Affichage et lecture à l écran Affichage Lecture System.out.print(v puts( texte ); System.out.println std::cout << [texte] <<[var1, printf( texte+format "texte") ; var2, varn] << [iomanip] ;, var1, var2,, varn) ; System.out. printf format, var1, var getchar() ; Scanner sc = new getch() ; Scanner(System.in getline(char*) ; gets(char*, int n) ; var = sc.nexttype std::cin >> var1 >> var2 >> scanf( texte + format, Scanner sc = new >> varn ; Scanner(System.in var1, var2,, varn) ; var = sc.nextline(

Fichiers // Ecriture ifstream nom_fichier_entrée ; // Ecriture // Lecture FILE *nom_fichier=nu PrintWriter fichier Déclaration ofstream nom_fichier_sortie ; LL ; // Lecture // Ecriture + Lecture Scanner fichier ; fstream nom_fichier_d entrée _sortie ; Try fichier = new PrintWriter(new // Ecriture FileWriter(nom_fic nom_fichier_entrée.open( emplacement_fichier ) ; nom_fichier=fopen( e Catch(FileNotFoun // Lecture mp on e) nom_fichier_sortie.open( Ouverture lacement_fichier, m emplacement_fichier ) ; ode Try // Ecriture + lecture d ouverture ) ; fichier = new Scan nom_fichier_entrée_sortie.op File(nom_fichier)) en( emplacement_fichier, ios ::in ios ::out) ; Catch(FileNotFoun on e) //Caractère fgetc(nom_fichier) ; //Chaine de caractère s Try fgets(chaine, taille_ma nom_fichier_entrée >> var1 var = fichier.nextt x, >> var2 >> >> varn ; var = fichier.nextl Lecture nom_fichier) ; nom_fichier_entrée_sortie >> //Chaine de var1 >> var2 >> >> varn Catch(Exception ; e caractères avec format fscanf (nom_fichier, format_variable, nom_variable) ;

Catch(Exception e //Caractère fputc (nom_fichier) ; //Chaine de caractère Try Ecriture s fichier.print(var + nom_fichier_sortie << var1 < fputs (chaine, taille_m fichier.println(var + < ax, fichier. printf( text var2 << << varn << endl ; nom_fichier) ; var1, var2,, var nom_fichier_entrée_sortie << //Chaine de caractère var1 << var2 << << varn ; s avec format Catch(Exception e fprintf (nom_fichier, format_variable, nom_variable) ; Fermeture fclose(nom_fichier) ; nom_fichier.close() ; Try fichier.close() ; Conditions Si Si sinon Si sinon si sinon If (conditions) If (conditions) else If (conditions) Else if (conditions)

Selon Else instructions Switch (var) case valeur1 : instructions break case valeur2 : instructions break.. case valeurn : instructions break default : instructions Boucles Pour for (initialisation; c de continuité; mod for(initialisation;condition de continuité;modification) while (conditions) Tant que Répéter tant do que Ou for (type var :table ar)

while (conditions) ; Allocation dynamique Allocation nom_tableau=malloc( nom_tableau=new type de mémoire taille*sizeof(type)) ; [taille] ; Libération free(nom_tableau) ; delete [] nom_tableau ; de mémoire nom_tableau=new [taille]

NB Toutes les syntaxes du langage C peuvent être utilisées en langage C++. En C++ il existe aussi des fonctionnalités très intéressantes comme le fonctions inline, les fonctions operator et toutes les joies de la programmation orientée objet En Java, il existe des classes représentant des types de base en terme d objet. Types de base int, long float, double Char Boolean Classes équivalentes Interger Double Character Boolean CONCLUSION Les langages de programmation ont évolués dans le temps du langage machine pour approcher le langage humain. Cela donne une certaine aisance dans la nouvelle manière de programmer. Notons aussi que les langages de programmation de dernière génération intègrent de nouvelles notions, celle de la programmation orienté objet qu on retrouve dans les langages C++ et java. BIBLIOGRAPHIE Claude Delannoy. Apprendre le C++. N 12135, 1re édition 2007, 780 pages. Claude Delannoy. C++ pour les programmeurs C. N 12231, environ 580 pages. Claude Delannoy. Programmer en Java (Java 5 et 6). N 12232, 5e édition, environ 780 pages + CD-Rom, à paraître. Jean-Bernard Boichat, apprendre java et C++ en parallèle, EYROLLES 4è Edition Cours de programmation: Fortran 90 Alexandre Mayer