Algorithmique et Programmation Java L`informatique (1) L

1
Algorithmique et Programmation
Java
Jean-Marie Boé, Guy Melançon, Joël
Quinqueton
pt MIAp, UFR IV
UPV - Université Montpellier III
L’informatique (1)
10% des investissements des sociétés (hors
bâtiments)
Croissance très rapide du nombre de cadres
et techniciens informaticiens [1982-1991]
Science encore jeune (30 ans)
Gigantesque cathédrale de constructions
matérielles et intellectuelles
Cori, Levy
L’informatique (2)
Il existe une science de l’informatique
Plusieurs théories imbriquées
logique et calculabilité, algorithmique et analyse
d'algorithmes, conception et sémantique des
langages de programmation, bases de données,
principes des systèmes d'exploitation, architectures des
ordinateurs et évaluation de leurs performances, réseaux et
protocoles, langages formels et compilation, codes et
cryptographie, apprentissage et zero-knowledge algorithms, calcul formel,
monstration automatique, conception et vérification de circuits, vérification et
validation de programmes, temps réel et logiques temporelles, traitement d'images et
vision, synthèse d'image, robotique, ...
L’informatique (3)
La jeunesse de l'informatique permet à
certains de nier son aspect scientifique
Mythe du hacker («fous de la
programmation»)
hacker [...] n. 2. One who programs
enthusiastically (even obsessively) or who
enjoys programming rather than just theorizing
about programming.
L’informatique (4)
La jeunesse de l'informatique permet à
certains de nier son aspect scientifique
Mythes du hacker («fous de la
programmation»)
Programmeur préférant ignorer toute
considération théorique qui puisse l’aider dans
ses constructions souvent très habiles
L’informatique (5)
Une autre caractéristique de l'informatique
est le côté instable des programmes
Les phénomènes continus sont rares en
informatique
Une panne n'est en général pas le résultat d'une
dégradation perceptible. Elle arrive simplement
brutalement.
2
L’informatique (6)
Une autre caractéristique de l'informatique
est le côté instable des programmes
C'est ce côté exact de l'informatique qui est très
attrayant
En informatique, il y a peu de solutions
approchées
En informatique, il y a une certaine notion de
l'exactitude
Objectifs
Initiation à la programmation objet
Initiation à la programmation impérative
Initiation à l’approche objet avec Java
Rudiments d’algorithmique
Conception et analyse des algorithmes
Implémentations des structures de données
Architecture machine
Types de base,
affectation
Instructions
conditionnelles
Boucles
Plan (1)
Tris simples (bulles,
par insertion)
Tris récursifs
(Quicksort, fusion)
Recherche dans des
tables
Plan (2)
• Méthodes:
valeur de retour
visibilité
classe vs instance
La jdk (AWT,
java.util, …)
Objets
Champs et Méthodes
Références et valeurs, test
d’égalité
Références (1)
Une seule
http://ead.univ-montp3.fr:8900
http://metice.univ-montp3.fr/~miap
Références (2)
3
Références (3)
Sites web
Tutorials Java
Kjell , CCSU (USA)
Brandeis University (USA)
Campione and Walrath, Addison Wesley
Tutorials d’algorithmique
Cours de Robert Cori et Jean-Jacques Lévy
Serveur Spédago de Spécif
Cours / TD sur l'algorithmique
Cours / TD sur la programmation
Références (4)
Livres
Brondeau J. Introduction à la programmation
objet en Java, Dunod, 1999.
Eckel B. Thinking in Java, Mind View Inc.
Bob Sedgewick, Algorithms, 2nd edition,
Addison-Wesley, 1988. En français: Algorithmes
en langage C, trad. par Jean-Michel Moreau,
InterEditions, 1991.
Architecture d’un ordinateur (1)
Architecture d’un ordinateur (2)
Toutes les opérations effectuées en machine
sont exécutées par le processeur
Aucune opération n’est faite en mémoire
principale
Le processeur opère sur des données
préalablement stockée en mémoire
Architecture d’un ordinateur (3)
Processeur MIPS 32 4kP
Architecture d’un ordinateur (4)
La mémoire est une composante constituée
de circuits spécialisés dans la localisation de
mots mémoire à partir d’une adresse
Une adresse = un nombre = un endroit où se
trouve une donnée
4
Architecture d’un ordinateur (5)
Architecture d’un ordinateur (6)
Le processeur sait faire un nombre fini
d’opérations
Tout programme doit être traduit en une
suite d’opérations qu’il sait exécuter
Ces opérations sont souvent appelées
instructions machines
Architecture d’un ordinateur (7)
Pour additionner deux nombres m et n.
Amener l’adresse de m dans un registre
Amener dans un second registre le contenu de la
mémoire vive à cette adresse
Idem pour le second nombre n
Exécuter l’addition (module arithmétique)
Amener dans un registre l’adresse où stocker le résultat
Le stocker dans la mémoire vive
Architecture d’un ordinateur (8)
Architecture d’un ordinateur (8)
Un processeur est composé de plusieurs modules
spécialisés
Module arithmétique
Contrôle de flux
Calcul d’adresse
Traitement des interactions avec les périphériques
Deux processeurs diffèrent par l’ensemble des
instructions machine dont il dispose
Compilation (1)
Les langages de programmation de haut
niveau permettent de s’abstraire du matériel
class Hello {
public static void main ( String[] args ) {
System.out.println("Hello World!");
}
}
5
Compilation (2)
La compilation consiste à traduire un
langage de haut niveau en langage machine
System.out.println("Hello World!");
00011011011010010100 000110110101
11011010010010010100 001110110110
00110011011010010100 000110110111
Compilation (3)
Le résultat d’une compilation dépend de la
plate-forme (type d’ordinateur) sur lequel
elle est effectuée
Un programme compilé sur Mac ne tourne
pas sur un PC, un programme compilé sur
PC ne tourne pas sous Linux, etc.
Java (1)
Java est un langage portable
Le même programme, compilé une seule
fois, peut-être exécuté sur n’importe quelle
plate-forme
Hello.java Hello.class
Compilation
Java
Compilation
Java
Bytecodes Java
javac
Java (2)
La compilation produit le même fichier de
bytecodes, quel que soit la plate-forme
Hello.java Hello.class
Compilation
Java
Compilation
Java
Bytecodes Java
javac
Java (3)
Le même programme, compilé une seule
fois, peut-être exécuté sur n’importe quelle
plate-forme
Heuh ?
La Machine Virtuelle Java (JVM)
Les bytecodes sont interprétées
différemment selon la plate-forme sur
laquelle ils sont exécutés
Hello.class Le processeur
Interpréteur
Java
Bytecodes
Java Machine Virtuelle Java
1 / 6 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !