Outils et langages de développement géo-informatique (GMT-4101) Cadres de développement logiciel en géomatique (GMT-7020)



Documents pareils
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

Chapitre I Notions de base et outils de travail

Évaluation et implémentation des langages

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

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

as Architecture des Systèmes d Information

TP1 : Initiation à Java et Eclipse

Environnements de développement (intégrés)

Initiation à JAVA et à la programmation objet.

RN2-Programmation Orientée Objet - JAVA CH 1 Introduction à la POO et Java

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

Présentation de Java. Olivier de Pertat IT GROUP

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

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

Éléments de programmation et introduction à Java

Remote Method Invocation (RMI)

Derrière toi Une machine virtuelle!

Programmation Orientée Objet

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

Java Licence Professionnelle CISII,

TP1. Outils Java Eléments de correction

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

Introduction à Java. Philippe Genoud.

Projet de développement. Introduction à Eclipse. Application à votre projet. Philippe Collet. Organisation. Cours 1 : principes généraux - svn

Cours 1: Java et les objets

Java - la plateforme

Annexe : La Programmation Informatique

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

Projet de développement

TP1 : Initiation à Java et Eclipse

Vulgarisation Java EE Java EE, c est quoi?

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

Tp 1 correction. Structures de données (IF2)

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

Programmeur Java 1.4 et 5.0

RMI le langage Java XII-1 JMF

Utiliser Java sans BlueJ

INITIATION AU LANGAGE JAVA

Eclipse atelier Java

Systeme d'exploitation

Programmer en JAVA. par Tama

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

Java Avancé. Le langage Java. Rémi Forax

Traitement de données

RMI. Remote Method Invocation: permet d'invoquer des méthodes d'objets distants.

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

La technologie Java Card TM

Remise à niveau d un programme JAVA du domaine public

Point sur les solutions de développement d apps pour les périphériques mobiles

Architectures web/bases de données

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

Environnements de développement (intégrés)

Une introduction à Java

Java Licence Professionnelle CISII,

Mise en œuvre des serveurs d application

Polycopié Cours Programmation Orientée Objet sous Java Programme : Filière SMI S5

Bases du langage. Historique Applications et applets Éléments de base du langage Classes et objets Les exceptions

Informatique UE 102. Jean-Yves Antoine. Architecture des ordinateurs et Algorithmique de base. UFR Sciences et Techniques Licence S&T 1ère année

Java c est quoi? Java pourquoi?

Bases Java - Eclipse / Netbeans

TP, première séquence d exercices.

Machines Virtuelles. et bazard autour. Rémi Forax

Remote Method Invocation en Java (RMI)

Cours 1 : La compilation

Java au cœur de la base de données Oracle

Intergiciel - concepts de base

ACTIVITÉ DE PROGRAMMATION

Projet de Veille Technologique

Langage Java. Classe de première SI

CORBA. (Common Request Broker Architecture)

JAVA. Introduction à la programmation objet avec java 1/4. Nadir BOUSSOUKAIA

Remote Method Invocation Les classes implémentant Serializable

AUVRAY Clément (168187) HOMBERGER Alexandre (186897) GLADE. Langages, outils et méthodes pour la programmation avancée Page 1 sur 12

Cours Plugin Eclipse. Université Paris VI / Parcours STL / Master I Pierre-Arnaud Marcelot - Iktek - pamarcelot@iktek.com

Machines virtuelles Cours 1 : Introduction

Calcul Parallèle. Cours 5 - JAVA RMI

Introduction aux Bases de Données Relationnelles Conclusion - 1

Apache Tomcat 6. Guide d'administration du serveur Java EE sous Windows et Linux. Résumé. Étienne LANGLET

Comment créer des rapports de test professionnels sous LabVIEW? NIDays 2002

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour

Étude de l interopérabilité de deux langages de programmation basée sur la machine virtuelle de Java

DotNet. Plan. Les outils de développement

Une tasse de café fumante est

La carte à puce. Jean-Philippe Babau

INFORMATIQUE & WEB. PARCOURS CERTIFICAT PROFESSIONNEL Programmation de sites Web. 1 an 7 MODULES. Code du diplôme : CP09

SPT Description du cours NORAMSOFT SPT2013. SharePoint 2013 pour développeurs

Architecture Orientée Service, JSON et API REST

Programmation Internet Cours 4

Préparation à l examen EFA en Macro

Principes. 2A-SI 3 Prog. réseau et systèmes distribués 3. 3 Programmation en CORBA. Programmation en Corba. Stéphane Vialle

M Études et développement informatique

CPR Informatique. (poste 3159 ou 3164) Septembre 2002

Java Licence professionnelle CISII,

Introduction aux Machines Virtuelles avec VMKit

Programmation en Java IUT GEII (MC-II1) 1

Initiation aux bases de données (SGBD) Walter RUDAMETKIN

Syfadis. > Configuration du poste client. Nous vous aidons à réussir. REFERENCE : Syfadis LMS - 20/06/2007. AUTEUR : Equipe technique Syfadis

Application Web et J2EE

Java 1.5 : principales nouveautés

Solution d inventaire automatisé d un parc informatique et de télédistribution OCS INVENTORY NG. EHRHARD Eric - Gestionnaire Parc Informatique

Transcription:

Outils et langages de développement géo-informatique (GMT-4101) Cadres de développement logiciel en géomatique (GMT-7020) Capsule 01 Introduction, historique et premier programme en langage Java Thierry Badard & Frédéric Hubert Université Laval, Dép. des sciences géomatiques Québec, Canada {Thierry.Badard; Frederic.Hubert}@scg.ulaval.ca Semaine 03

Plan du cours (1/2) Introduction Différents langages de programmation Compilé versus interprété Le cas Java Java c est quoi? Un petit historique Les différentes moutures de Java Les outils liés à Java Bibliographie Ouvrages, Documentation, Tutoriels, cours et notes en ligne

Plan du cours (2/2) Structure d un programme Java 1er programme : le programme «Bonjour» Conventions de nommage Compilation et exécution Les commentaires Arguments d un programme Les mots réservés du langage Conclusion/Synthèse

Introduction au langage Java

Différents langages de programmation (1/2) En informatique, il existe différents langages de programmation : Assembleur Cobol Fortran Pascal C Basic Perl Php HTML Javascript ADA Lisp Prolog C++ Smalltalk C# Java etc.

Différents langages de programmation (2/2) À quoi servent ils? Pourquoi autant de langages? Estce qu il existe des différences entre ces langages? Certains sont dédiés (fonctionnalités spécifiques) à des types d application, d autres plus généralistes. Certains sont procéduraux, d autres orientés-objet. Certains sont compilés, d autres interprétés. Dans tous les cas, il s agit de pouvoir exprimer dans un langage compréhensible par l humain (code source) des ordres que la machine doit exécuter, celle-ci ne comprenant que des suites de 0 et de 1 (langage machine ou code binaire).

Compilés vs. interprétés Compilation (1/2) La compilation est effectuée en 2 grandes étapes : Assemblage Édition des liens Elle poursuit plusieurs objectifs : Vérifier la correction lexicale, syntaxique des codes sources. Vérifier «le plus possible» la sémantique : ex. les types de données manipulés. Produire du code dans un langage plus «simple» pour la machine, i.e. plus proche de ce qu elle «comprend» (le langage machine ou binaire). Produire des «briques» de code assemblables. Exemples de langages compilés: C, C++,...

Compilés vs. interprétés Compilation (2/2) Code source Code source Code source Analyse des sources et vérifications puis traduction en langage machine (texte) Code objet (binaire) (texte) (1) Assemblage Code objet (binaire) (texte) Code objet (binaire) Résolution des références et fabrication de l exécutable (2) Edition des liens Programme exécutable (binaire)

Compilés vs. interprétés Interprétation (1/2) Dans le cas de l interprétation, le code source : est analysé/vérifié par l interpréteur (syntaxe,...), puis traduit à la volée en langage machine, et enfin exécuté. Nécessite de disposer de l interpréteur sur sa machine pour exécuter le programme. Exemple de langages interprétés : Php, Perl, HTML, Javascript,...

Compilés vs. interprétés Interprétation (2/2) Code source («script» texte) Analyse et vérification des sources, puis traduction en langage machine et exécution Interpréteur Instructions en langage machine (binaire)

Compilés vs. interprétés Comparatif Avantages et inconvénients : langage compilé Rapidité d exécution du programme (car traduit en langage machine). Par contre, obligation de recompiler si on change d environnement (type de processeur, système d exploitation - OS -). Le code n est donc pas portable. langage interprété Nécessite de disposer de l interpréteur sur sa machine pour exécuter le programme. Donc moins rapide («en théorie») et consomme de la mémoire supplémentaire. Portable sur différentes machines et OS. Impose de fournir les sources pour pouvoir exécuter le programme.

Le cas du langage de programmation Java Java est un langage compilé et interprété! Code source Java (texte) Compilateur Java Code objet Java (BYTECODE) Le code de l objet est vérifié et chargé dans la machine virtuelle Java (interpréteur) Le programme est exécuté par l interpréteur Machine virtuelle Java (JVM) Interpréteur Java L interpréteur gère toutes les communications avec le système d exploitation de la machine réelle Système d exploitation de l ordinateur

Avantages / Inconvénients de la JVM Portable Un code source compilé sur un PC sous Windows s exécutera sans modifications sur une station SUN sous Solaris ou un PC sous Linux ou encore un Mac sous MacOS, etc. Pas nécessaire de fournir les sources, juste le BYTECODE pour exécuter le programme sur une machine cliente. JVM disponible sous de nombreux systèmes d exploitation (OS) et architectures matérielles. Source : http://fr.wikipedia.org/wiki/machine_virtuelle_java La JVM (Java Virtual Machine) est continuellement optimisée. Exécution de plus en plus rapide (maintenant proche de celle d un compilé). Par contre, gourmand en mémoire.

Java, c est quoi? (1/2) Un langage spécifié par SUN Microsystems Propriétaire, puis spécifications publiques Maintenant, ~ standard Un langage de programmation orienté-objet On étudiera les fonctionnalités objets de Java plus tard dans ce cours! Une architecture de Virtual Machine Un ensemble de bibliothèques variées (API - Application Programming Interface) Un ensemble d outils (le JDK, Java Development Kit) Il existe différents JDK (SUN Microsystems, IBM, etc.)

Java, c est quoi? (2/2) Fausses rumeurs concernant Java: Java n'a rien de commun avec HTML. Java n'est pas un langage de script (type Perl ou TCL). Java!= JavaScript (c'est un langage généraliste, type C++). Java!= C++ (c'est un langage purement objet, de plus haut niveau, plus proche de SmallTalk). Java ne sert pas seulement à faire des applets (petites applications tournant dans les navigateurs web).

Les caractéristiques de Java (1/2) Orienté objet Compilé et interprété Portable Génération de BYTECODE + JVM sur de nombreux OS Taille des types primitifs indépendants de l OS Support de l Unicode Simple Sémantique précise, proche de C Concepts simples (plus simples que C++) Robuste Allocation de mémoire derrière la scène (garbage collector ou ramasse miettes) Mécanisme d exception (interception des erreurs possibles), compilateur contraignant

Les caractéristiques de Java (2/2) Sécurisé Prise en charge dans l interpréteur Code certifié par une clé Capacités de cryptage embarquées Indispensable pour le code mobile Multi-threads Possibilité d exécuter des processus concurrents Intégrés au langage et aux API Meilleures performances Distribué API réseau fournie en standard Applet/Servlet Possibilité d exécuter des traitements distants (autres machines)

Petit historique (1/2) 1990 Internet peu connu, World Wide Web inexistant boom des PC (puissance) 1991 Projet OAK de SUN Microsystems (langage pour la communication des appareils électroniques de poche et domotique) 1993 Mars : le NCSA lance MOSAIC (1er navigateur Internet) été : OAK change d orientation et s adapte à Internet 1995 Mai : annonce officielle de la naissance de Java (issu de OAK) Netscape prend une licence Sept. 95 : sortie du JDK 1.0 b1 (version beta) Déc. 95 : Microsoft se dit intéressé

Petit historique (2/2) 1996 Janvier : sortie du JDK 1.0.1 (1ère version stable) été : création du Java Study Group ISO/IEC JTC 1/SC22 sorties de Netscape 2 et MS Explorer 3 (intégrant Java pour l animation de pages web) 1997 Février : Sortie du JDK 1.1 Sortie du JavaOS (un système d exploitation basé sur Java) 1998 Sortie de la Java 2 Platform (JDK 1.2) 2002 Sortie d une version majeure de Java 2, le JDK 1.4.1 2005 Nouvelle évolution importante : Java 5 (JDK 1.5) Décembre 2006 Sortie de la version actuelle : Java 6!

Quelques statistiques Plus de 6,5 millions de développeurs de logiciels utilisent le langage Java. Java équipe plus de 4,5 milliards de périphériques, notamment : plus de 800 millions de PC 2,1 milliards de téléphones portables et autres périphériques de poche (source : Ovum) 3,5 milliards de cartes à puce Des décodeurs, des imprimantes, des webcams, des jeux, des systèmes de navigation automobile, des terminaux de loterie, des appareils médicaux, des bornes de paiement de parking, etc. Source : http://www.java.com/fr/about/

Les différentes moutures de Java (1/2) Java ME Java SE Java EE Source : http://www.javaman.com.br/apres/files/javaeditions.pdf

Les différentes moutures de Java (2/2) Source : http://www.javaman.com.br/apres/files/javaeditions.pdf

J2EE Permettre le déploiement des applis Source : http://www.javaman.com.br/apres/files/javaeditions.pdf

Les outils liés à Java Environnements de développement : Sun JDK (compilateur, interpréteur, appletviewer,...) java-mode emacs IDE : Visual Age, Café, CodeWarrior, Java Studio Creator (SUN), JBuilder (Borland), Visual J++ (MS), Eclipse,... Navigateurs : Sun HotJava Netscape Communicator Internet Explorer Mozilla Firefox Apple Safari, etc.

Les outils du JDK javac : compilateur de sources java java : interpréteur de byte code appletviewer : interpréteur d'applet javadoc : générateur de documentation (HTML, MIF) javah : générateur de header pour l'appel de méthodes natives javap : désassembleur de byte code jdb : debugger javakey : générateur de clés pour la signature de code rmic : compilateur de stubs RMI rmiregistry : "Object Request Broker" RMI

Bibliographie Ouvrages: D.Flannagan, Java in a Nutshell, O'Reilly. Bruce Eckel, "Thinking in Java ", http://www.mindview.net/books Ivor Horton, Beginning Java 2, JDK 5 Edition, Wrox Press Deitel & Deitel, "Java How to Program". W. Clay Richardson et al., Professional Java, JDK 6 Edition, Wrox Press Documentation: SUN: http://java.sun.com Tutoriels, cours, notes complémentaires en ligne: SUN : http://java.sun.com/developer/onlinetraining IMAG : http://membres-liglab.imag.fr/donsez/cours/#java CNAM : http://cedric.cnam.fr/~farinone/java/index.html Developpez.com : http://java.developpez.com/cours/ Penser en Java : http://penserenjava.free.fr/

1er programme : le programme Bonjour import java.lang.*; /* Programme Bonjour. */ public class Bonjour { static String mot = "bonjour"; // Méthode retournant mot public static String getmot() { return mot; } Importation de bibliothèques (packages) Commentaire Début du programme Instanciation d une variable Commentaire Développement d une méthode (fonction) } public static void main(string args[]) { System.out.println(getMot()); } Méthode principale d exécution Fin du programme Ce programme affiche simplement sur la sortie standard le contenu de la variable «mot», i.e. : bonjour

Conventions de nommage import java.lang.*; /* Programme Bonjour. */ public class Bonjour { static String mot = "bonjour"; Le fichier DOIT être nommé : Bonjour.java } // Méthode retournant mot public static String getmot() { return mot; } public static void main(string args[]) { System.out.println(getMot()); } Sous peine de ne pas pouvoir être compilé! De façon générale, un programme Java est nommé: <Nom_classe>.java Un nom de programme DOIT TOUJOURS commencer par UNE LETTRE. Il peut contenir des chiffres et NE DOIT PAS inclure des symboles comme + ou.

Compilation et exécution Écriture du code de l application dans un éditeur de texte (ex. Notepad ou XEmacs) Enregistrement du code (<Nom_classe>.java) Compilation du code : javac <Nom_classe>.java Un fichier <Nom_classe>.class est alors créé sur le disque. C est le bytecode Java. Exemple : javac Bonjour.java ( création de Bonjour.class) Exécution (interprétation) du programme: java <Nom_classe> Exemple : java Bonjour (Pas d extension.class)

Les commentaires Ils servent à décrire un programme, un bloc, une variable Très utiles quand on reprend du code après une longue période ou pour d autres programmeurs (travail en équipe) pour comprendre plus vite ce que fait le code. 3 types de commentaire : // Pour commenter une ligne /* */ Pour commenter un ensemble de lignes /** */ Pour générer des commentaires javadoc (HTML) Exemples : // Ceci est un exemple de commentaire sur 1 ligne /* Les commentaires utilisés ici peuvent être placé n importe où dans le code de java. Attention : Tout code inclus ne pourra être pris en compte. */

Arguments de lancement... } public static void main(string args[]) { System.out.println(getMot()); } La fonction d exécution «main» d un programme dispose d un argument particulier: args[] args[] représente les paramètres entrés après le nom du programme à l exécution. Exemple: java Bonjour Raoul Chmouldu args[0] = Raoul (1er argument) args[1] = Chmouldu (2ème argument), etc. (args[n], le nième). Le nombre d arguments saisis est donné par : args.length

Les mots réservés du langage Tous les mots suivants sont des instructions Java et ne peuvent pas être utilisés pour nommer un élément d un programme (nom du programme, méthode, variable, etc.) :

Conclusion/Synthèse Dans cette capsule de cours, on a vu : Différents langages (compilés / interprétés). Java est compilé et interprété. Java est portable, robuste, généraliste et ouvert vers Internet. C est un langage structuré et rigoureux. Le nom du fichier doit être <nom_classe>.java Compilation (javac <nom_classe>.java) et exécution (java <nom_classe>). Les commentaires dans vos codes sont importants! args[] permet de récupérer les arguments de la ligne de commande.