Aller au contenu

Semaine 1 : JOUR 1 – Introduction à Java et comparaison avec COBOL

Cours théorique

1.1 Présentation de l’écosystème Java

Qu’est-ce que Java ?

Comparaison avec COBOL :

Aspect COBOL Java
Paradigme Procédural Orienté Objet
Compilation Code natif pour plateforme Bytecode pour JVM
Portabilité Dépend du compilateur Multi-plateforme via JVM
Lisibilité Verbeux, proche langage naturel Concis, syntaxe C-like
Domaine Mainframe, gestion Universel

Quelques exemples de codes comparatifs

COBOL (approche procédurale) :

IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO-WORLD.
PROCEDURE DIVISION.
    DISPLAY "Hello World".
    STOP RUN.

Java (approche objet) :

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello World");
    }
}
IDENTIFICATION DIVISION.
PROGRAM-ID. Votre-programme.

DATA DIVISION.
WORKING-STORAGE SECTION.
77 nomVariable PIC type.

SCREEN SECTION.
1 instruction.

PROCEDURE DIVISION.
instruction1.
instruction2.
etc.
STOP RUN.

Section COBOL,Rôle,Équivalent en Java IDENTIFICATION DIVISION,Métadonnées du programme (nom, auteur, etc.).,Pas d’équivalent direct : En Java, ces infos sont dans les commentaires Javadoc ou les annotations. DATA DIVISION,Déclaration des variables et structures de données.,Attributs de classe ou variables locales dans les méthodes. WORKING-STORAGE SECTION,Variables temporaires (ex: 77 nomVariable PIC type).,Variables locales dans une méthode ou attributs d’instance dans une classe. SCREEN SECTION,Définition des interactions avec l’utilisateur (affichage/entrée).,Pas d’équivalent direct : En Java, on utilise System.out.println() ou des frameworks comme Spring MVC pour les IHM web. PROCEDURE DIVISION,Logique du programme (instructions, boucles, conditions).,Méthodes dans une classe. STOP RUN.,Fin du programme.,Pas d’équivalent direct : La fin du programme en Java est implicite à la fin de la méthode main.

1.2 Architecture Java : JVM, JDK, JRE

La JVM (Java Virtual Machine)

Le JDK (Java Development Kit)

Le JRE (Java Runtime Environment)

Schéma du processus de compilation/exécution :

Code source (.java)[javac - compilateur]
Bytecode (.class)[JVM - interpréteur]
Exécution sur n'importe quel OS (Sysyème d'exploitation)

COMPARAISON avec COBOL :

Code source COBOL (.cbl)[Compilateur COBOL]
Code machine natif
    ↓ [Processeur spécifique]
Exécution sur plateforme cible uniquement

1.3 Installation et configuration de l’environnement

Éléments à installer :

  1. JDK 17 ou 21 (versions LTS - Long Term Support)
  2. IDE : IntelliJ IDEA Community ou Eclipse
  3. Maven (gestionnaire de dépendances)
  4. Git (gestionnaire de versions)

Configuration de l’IDE :

COMPARAISON avec environnement COBOL :

Travaux Pratiques

TP1 : Installation et premier programme

Exercice 1 : Configuration de l’environnement

  1. Installer le JDK avec la version 17.
  2. Vérifier l’installation : java -version et javac -version
  3. Installer Eclipse
  4. Créer un premier projet Java

Démonstration : PremierProgramme détaillé

Créer un programme qui affiche “Bienvenue dans le monde de l’objet !” avec commentaires explicatifs.

/**
 * Première classe Java
 * En COBOL, on aurait un PROGRAM-ID
 * En Java, tout est dans une classe
 */
public class PremierProgramme {
    
    // Point d'entrée du programme (comme PROCEDURE DIVISION en COBOL)
    public static void main(String[] args) {
        // Affichage (comme DISPLAY en COBOL)
        System.out.println("Bienvenue dans le monde de l'objet !");
        
        // System.out : objet de sortie standard
        // println : méthode pour afficher dans la console (avec retour à la ligne)
    }
}

Explication : Analyse comparative

Comment convertir ce petit programme COBOL en Java ?

IDENTIFICATION DIVISION.
PROGRAM-ID. CALC-SIMPLE.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 NOMBRE-1 PIC 9(3) VALUE 150.
01 NOMBRE-2 PIC 9(3) VALUE 75.
01 RESULTAT PIC 9(4).

PROCEDURE DIVISION.
    COMPUTE RESULTAT = NOMBRE-1 + NOMBRE-2.
    DISPLAY "Le résultat est : " RESULTAT.
    STOP RUN.

Cela pourrait donner ceci en Java :

public class CalculSimple {
    public static void main(String[] args) {
        // En Java, on déclare des variables avec leur type
        // Pas de PICTURE clause, mais des types primitifs
        
        int nombre1 = 150;  // PIC 9(3) → int (entier)
        int nombre2 = 75;
        int resultat;
        
        // COMPUTE en COBOL → opérateur = en Java
        resultat = nombre1 + nombre2;
        
        // DISPLAY en COBOL → System.out.println en Java
        System.out.println("Le résultat est : " + resultat);
    }
}

Exercice 4 : Exploration de l’IDE

Tâches à réaliser :

  1. Créer 3 classes différentes dans le même projet
  2. Exécuter chaque classe
  3. Observer la génération des fichiers .class
  4. Déboguer un programme avec des points d’arrêt
  5. Utiliser l’auto-complétion de l’IDE Eclipse