Algorithmique et Programmation Java L`informatique (1) L

1
Algorithmique et Programmation
Java
Jean-Marie Boé, Guy Melançon, Joël
Quinqueton
Dé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,
dé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 l'interface ou les textes ? Ou savez-vous comment améliorer l'interface utilisateur de StudyLib ? N'hésitez pas à envoyer vos suggestions. C'est très important pour nous!