C - ugweb.cs.ualberta.ca

publicité
Programmation en C++
Autres langages
Marianne Morris
1
Plan du reste du semestre

Chapitres 8, 9, 10
Réseaux et Intelligence Artificielle
Devoir 4 est dû le mardi 28 novembre
Labo final est le 30 novembre

Examen final est le 5 décembre







Tout ce qu’on a étudié (emphase sur la deuxième
partie du cours après l’examen mi-session)
Notes du cours
Exemples en classe
Exercices de labo
2
Chapitres 8 et 9




Programmation en C++
Révision de concept orienté objet
Hiérarchie des classes orienté objet
Exemple de fonctions et de programme
orienté objet
3
Stockage virtuel de données

Array

Groupe une collection de cellules de mémoires
pour stocker des données du même type
4
Figure 8.22
The Outline for a C++ Function
5
Utilisation des fonctions

Fonctions « functions »


Un module de code en C++
Nommée d’après les identificateurs en C++

Fonctions d’opérations: optionnelles

Fonction main : obligatoire!
6
Programmation orientée objet

La programmation par objet
Object-Oriented Programming - OOP



Paradigme de programmation
Consiste en la définition et l'assemblage de
briques logicielles appelées objets
Objet

Représente un concept, une idée ou une chose du
monde réel, de l'entreprise ou celui des idées.
Définition selon Wikipedia.org
7
Programmation orientée objet

Héritage de type


Mécanisme par lequel est raffiné un type
père en un autre type, le sous-type
Mécanisme de restrictions des espaces de
valeurs du type
Père
Sous-type
8
Programmation orientée objet

Rédéfinition


Permet à un sous-type de raffiner
l'implémentation d'un message défini dans
le type père
Overriding (en anglais)
9
Programmation orientée objet

Polymorphisme


Permet d'utiliser des objets de types
différents là où est attendue une valeur
d'un type précis, dès que ceux-ci satisfont
le type requis
Concept d’héritage – façon de réaliser le
polymorphisme
10
Programmation orientée objet

Encapsulation


L'idée de cacher l'information contenue
dans un objet et de ne proposer que des
méthodes de manipulation de cet objet
Permet à l'instance d'une classe d'accéder
aux attributs d'une super-classe
11
Programmation orientée objet
Hiérarchie des classes
Forme
Cercle
Rectangle
Triangle
Carré
Figure 8.31 (page 395)
12
Programmation orientée objet
et fonctions en C++

Discussion de l’exemple 8.8.1:


Figure 8.29
Pages 392 – 394
13
Programmation
(autres langages)





C/C++
Java
SQL
HTML
JavaScript
14
Programmation en langage
procédural C




Développé au début des années 1970 aux
labos AT & T
Fait pour UNIX
Utilisé pour les logiciels du système et les
systèmes d’exploitation
Utilisé pour des buts généraux
15
Programmation en langage
procédural C

Pourquoi est-ce C très populaire?





Relation entre le langage C et UNIX
C est très efficace
C est proche du langage assembleur
C contient une syntaxe de haut niveau
La portabilité de C
16
C++
(langage orienté objet)

Développé au début des années 1980 aux
labos AT & T

Un « superset » de C

Langage à avantages industriels



Standard
Conception orientée objet
Collection de librairies de code
17
Java



Créé originairement pour le marché des
électroniques
Orienté objet (basé sur C++)
Les programmes en Java sont:



Applications: Un programme ordinaire
Applet: Programme à interface fait pour les
pages Web
Compilé à bytecode et puis interprété
18
Langages à buts spéciaux

Créés pour tâches spécifiques



SQL
HTML
JavaScript
19
SQL

Structured Query Language

Pour les bases de données



Stocker et accéder à des données
On pose des questions aux bases de
données: «query »
SQL est le langage qu’on utilise pour
faire des « query »
20
HTML



HyperText Markup Language
C’est le langage qu’on utilise pour écrire
des documents HTML pour le Web
Une page Web

Un document HTML qu’on peut lire en
utilisant un logiciel navigateur pour le Web

Internet Explorer, Mozilla, FireFox
21
HTML

Un document HTML


Du texte avec des « tags »
Tags sont des caractères spéciaux



Format
Effets spéciaux
Références à d’autres documents HTML
22
Figure 9.4
HTML Code for a Web Page
23
Figure 9.5
Body of the Web Page Generated by Figure 9.4
24
Figure 9.6
Some HTML Tags
25
JavaScript

Un langage pour écrire des scripts


Interprété: traduit/exécuté ligne par ligne
Les morceaux de code en JavaScript
peuvent être implantés dans les pages Web
pour rendre ces pages actives!
26
D’autres langages de
programmation


Il y a bien plusieurs d’autres langages
Voir Figure 9.15 (page 463 dans votre
manuel de cours)
27
Chapitre 10: Compilateurs et
traduction de langages
Le processus de compilation
(quatre phases)





Analyse lexicale
Analyse grammaticale
Sémantique et création de code
Optimisation de code
28
Compilateurs
et traduction de langages

Compilateur



Un logiciel qui traduit les langages de haut
niveau en langage machine
Traduction doit être correcte
Le code en langage machine doit être
efficace et concis
29
Figure 10.1
General Structure of a Compiler
30
Processus de compilation

Phase I: Analyse lexicale

Le compilateur examine les caractères
individuelles dans le programme source et
les groupe en unités syntactiques qui
s’appellent « tokens »
31
Processus de compilation

Phase II: Analyse grammaticale

La vérification de la séquence d’unités
syntactiques « tokens » formée par un
scanner pour assurer qu’elle est correcte
syntaxiquement
32
Processus de compilation

Phase III: Analyse sémantique

Le compilateur analyse le sens des
instructions du langage évolué et les
traduit en instructions de langage machine
pour être exécutées
33
Processus de compilation

Phase IV: Optimisation de code

Le compilateur essaye de rendre plus
efficace le code créé en phase III.
34
Figure 10.2
Overall Execution Sequence on a High-Level Language
Program
35
Processus de compilation

Étape finale


Programme source


Le programme objet est écrit à un fichier
objet
Programme originaire en langage évolué
Programme objet

Traduction du programme source en
langage machine
36
• Example (Phase II: Parsing)
– High-level language statement: a = b + c
37
Prochaine classe
(le mardi 28 novembre)


Réseaux
Intelligence Artificielle
38
Téléchargement