0% ont trouvé ce document utile (0 vote)
3 vues27 pages

Types de langages de programmation

Les langages de programmation peuvent être classés comme des langages de bas niveau ou de haut niveau. Les langages de bas niveau, comme le langage machine et le langage d'assemblage, sont plus proches du code machine et permettent un accès direct aux adresses mémoire, mais sont difficiles à lire et à écrire pour les humains. Les langages de haut niveau, comme BASIC, COBOL et Pascal, utilisent une syntaxe proche de l'anglais qui est plus facile pour les humains, mais nécessitent une compilation en code machine. Les langages de programmation peuvent également être classés en fonction de leur paradigme de programmation, comme les langages impératifs/procéduraux qui spécifient des instructions étape par étape ou les langages déclaratifs qui spécifient des règles et des faits.

Transféré par

ScribdTranslations
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
3 vues27 pages

Types de langages de programmation

Les langages de programmation peuvent être classés comme des langages de bas niveau ou de haut niveau. Les langages de bas niveau, comme le langage machine et le langage d'assemblage, sont plus proches du code machine et permettent un accès direct aux adresses mémoire, mais sont difficiles à lire et à écrire pour les humains. Les langages de haut niveau, comme BASIC, COBOL et Pascal, utilisent une syntaxe proche de l'anglais qui est plus facile pour les humains, mais nécessitent une compilation en code machine. Les langages de programmation peuvent également être classés en fonction de leur paradigme de programmation, comme les langages impératifs/procéduraux qui spécifient des instructions étape par étape ou les langages déclaratifs qui spécifient des règles et des faits.

Transféré par

ScribdTranslations
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

LANGAGES DE PROGRAMMATION

Un langage de programmation est un ensemble de symboles en langage informatique qui sont utilisés dans le codage.
programmes informatiques.
Un langage de programmation est un code spécialement écrit utilisé pour rédiger des programmes d'application par exemple.
C, Pascal, COBOL, BASIC, Visual Basic, C++ et Java (À l'origine pour le consommateur intelligent-
dispositifs électroniques (téléphones portables), utilisés ensuite pour créer des pages Web avec du contenu dynamique, maintenant aussi
utilisé pour le développement d'applications d'entreprise à grande échelle
- Programme : un ensemble d'instructions détaillées et sans ambiguïté qui indiquent à un ordinateur d'effectuer une
tâche spécifique, par exemple, ajouter un ensemble de nombres.
Programmation : un processus de conception, de codage et de test de programmes informatiques
- Programmeur : Une personne qui se spécialise dans la conception, le codage et les tests de programmes informatiques
problème : toute question ou affaire impliquant des difficultés ou des incertitudes et proposée à un ordinateur
solution.

TYPE DE LANGAGES DE PROGRAMMATION


Langages de bas niveau (LLL) :
-Ce sont des langages de programmation utilisés pour écrire des programmes en code machine (c'est-à-dire en 1 et 0) ou dans
codes mnémotechniques.
-Les langages de bas niveau sont orientés machine (spécifiques à la machine).
Le langage de bas niveau se présente sous deux formes :

(a) Langage machine et


b) Langage d'assemblage.

a. Code machine (langage)


Le langage utilisé pour écrire des programmes est en forme binaire (1 et 0).
Le code machine s'exécute sans traduction.
Le langage machine a les avantages suivants :
Les programmes s'exécutent plus rapidement puisqu'ils sont déjà en langage informatique. Il n'y a pas besoin de
conversion car les programmes sont en langage machine.
Les programmes occupent très peu d'espace de stockage sur disque en ne stockant que des 1 et des 0.

Inconvénients du langage machine :


Ils sont très difficiles à apprendre.
Ils sont difficiles à comprendre.
Très difficile à utiliser et donc très peu de programmeurs les utilisent de nos jours.
Cela prend trop de temps à déboguer et est donc sujet à certaines erreurs.
Il faut trop de temps pour développer des programmes fonctionnels.
-Ils dépendent de la machine (ils ne peuvent fonctionner que sur le type d'ordinateur pour lequel ils ont été conçus et non
travailler sur d'autres ordinateurs)

b. Langage d'assemblage :
Ce sont des langages de programmation qui utilisent des codes mnémotechniques dans la programmation.
Les codes mnémotechniques sont des abréviations utilisées pour représenter des instructions lors de la programmation en langage assembleur.
programmes, par exemple, LDA pour Chargement, ADD pour Addition, etc.
Une instruction dans un langage d'assemblage équivaut à une instruction en code machine et donc
la programmation est longue et chronophage.
Cependant, les programmes en langage assembleur sont efficaces.
-Les programmes s'exécutent également plus rapidement car ils sont plus proches du langage machine et sont donc utilisés dans
concevoir des programmes nécessitant un timing efficace, par exemple des jeux comme les échecs, des systèmes d'exploitation, etc.
Le langage d'assemblage est utilisé lorsqu'il est nécessaire d'accéder directement aux registres et aux adresses mémoire.
Les instructions en langage d'assemblage occupent également très peu d'espace de stockage sur disque.

Compilé par Kapondeni T. Page1sur27


-Les codes mnémotechniques sont très proches du code machine, ce qui en fait un langage d'assemblage de bas niveau.
codes.
Cependant, ils fonctionnent sur une architecture informatique spécifique puisqu'ils sont alignés sur le matériel.
Ils contiennent également différentes formes d'instruction, par exemple : saut, contrôle, arithmétique, etc.
Le langage d'assemblage permet un adressage direct, immédiat et d'autres formes de mémoire.
Application : Le langage d'assemblage est utilisé dans :
Coder des systèmes d'exploitation
Développement de pilotes de périphériques
Coder des programmes pour des systèmes embarqués comme des lecteurs DVD, des décodeurs, etc.
Logiciel de cryptage

Avantages du langage d'assemblage :


Une instruction en langage d'assemblage correspond à une instruction en code machine et donc
la traduction est plus facile et plus rapide à coder.
-Les programmes s'exécutent plus rapidement car ils sont proches du code machine.
-Ils occupent très peu d'espace de stockage sur disque, donc ils sont économiques à utiliser.
Plus facile à utiliser pour un programmeur que le langage machine.

Inconvénients du langage d'assemblage


Ils sont très difficiles à apprendre.
Ils sont très difficiles à comprendre.
Prend trop de temps pour développer des programmes fonctionnels.
Ils peuvent être dépendants de la machine (orientés vers la machine) à moins que les machines n'utilisent le même
puce de processeur.

2. Langages de Haut Niveau (HLL) :


Ce sont des langages de programmation qui utilisent des déclarations similaires à l'anglais dans les programmes de codage, pour
exemple COBOL, Pascal, BASIC, etc.
-Les langages de haut niveau sont principalement utilisés pour développer des applications utilisateurs telles que les systèmes de contrôle des stocks.
dossiers du personnel, etc.
Il existe tellement de langages de haut niveau en raison de la concurrence entre les concepteurs qui veulent
se dépasser les uns les autres.
Cela peut aussi être dû au fait que nous avons tant de domaines d'application dans la vie réelle, donc chaque niveau élevé
la langue est conçue pour un problème spécifique (orienté vers le problème/spécifique au problème) à résoudre dans
nos vies quotidiennes, par exemple BASIC a été conçu à des fins d'apprentissage, COBOL pour les affaires
applications, FORTRAN à des fins scientifiques, etc.
Les langages de haut niveau sont indépendants de l'architecture de l'ordinateur.
Une instruction est traduite en plusieurs instructions de code machine équivalentes avant d'être exécutée.
-Ci-dessous un exemple d'un programme BASIC qui accepte deux nombres saisis au clavier,
les ajoute et affiche le résultat à l'écran :
ENTREZ LE PREMIER NUMÉRO.
ENTREZ LE DEUXIÈME NOMBRE.
SOMME = A + B
IMPRIMER LA SOMME

FIN

Les programmes écrits en langage de haut niveau sont d'abord convertis en code machine avant d'être exécutés.
Les langages de haut niveau ont les caractéristiques suivantes :
- Orienté problème (indépendant de la machine) : ils sont conçus pour résoudre un problème d'application et
par conséquent, fonctionne sur n'importe quelle machine

- Ils sont portables : ils peuvent être transférés d'une machine à une autre et fonctionner sans problème.
- Les instructions sont écrites en énoncés en anglais qui sont plus faciles à comprendre.

Réalisé par Kapondeni T. Page2de27


Fonctionnalités des langages de haut niveau
Les fonctionnalités suivantes des langages de haut niveau ne se retrouvent pas dans les langages de bas niveau
-Structures de sélection
-Structures d'itération
-Routines intégrées pour simplifier les entrées et les sorties, par exemple INPUT, PRINT, PRINTLN, etc. en BASIC.
-Fonctions intégrées comme sqr, sqrt, val, etc.
-Structures de données comme les chaînes, les tableaux, les enregistrements, etc.
Fonctions définies par l'utilisateur.

Avantages des langages de haut niveau :


-Ils sont plus faciles à comprendre puisqu'ils sont écrits dans des déclarations semblables à l'anglais qui sont plus
lisible.
Ils sont plus faciles à apprendre.
Il est plus facile de travailler avec, c'est-à-dire de corriger les erreurs (déboguer) et de tester des programmes.
-Ils sont orientés vers les problèmes et peuvent donc être utilisés sur n'importe quel ordinateur (pas sur une machine

dépendant

Inconvénients des HLL


-Il faut beaucoup de temps pour s'exécuter car ils doivent d'abord être convertis en code machine.
Ils occupent beaucoup d'espace de stockage sur le disque par rapport aux langages de bas niveau.

Types de langages de haut niveau / Paradigmes de programmation


- Le paradigme de programmation fait référence aux méthodes utilisées pour catégoriser les langages de haut niveau en termes de
principes d'organisation utilisés par les designers. C'est un motif qui sert de courant de pensée pour
programmation des ordinateurs.
Les paradigmes de programmation sont les suivants :
Langages impératifs/procéduraux
Langages déclaratifs
Langages de programmation de usage général
Langages à usage spécial
Langages orientés objet (POO)

1. Langages de programmation impératifs / procéduraux


- Ce sont des programmes de haut niveau dans lesquels le programmeur spécifie comment le programme doit être
exécuté, suivant une séquence d'exécution prédéfinie.
- Le programmeur doit écrire des instructions (dans le code source) qui doivent être strictement suivies lorsque
effectuer une certaine tâche.
- Le programmeur montre les étapes dans l'ordre d'exécution, fournissant un ensemble de données.
- L'ordre des instructions est très important et doit être respecté par l'ordinateur lorsque
effectuer une tâche.
- Les exemples incluent C, Pascal, COBOL, BASIC, etc.
- Les langages impératifs ont les caractéristiques suivantes :
types de données intégrés comme les entiers, les caractères, les chaînes, les booléens, etc.
types de données définis par l'utilisateur tels que les enregistrements, les tableaux, etc
Déclarations pour les variables, tableaux, constantes, fonctions, procédures, etc.
Instructions de programmation telles que les affectations, les structures de contrôle, les appels de procédure, les fonctions
appels, etc.

2. Langages de programmation déclaratifs


- Ce sont des langages de programmation qui indiquent ce qu'il faut faire plutôt que comment le faire.
- Le programmeur énonce les faits et les règles associés au problème.
- L'ordre d'énoncer les règles et les faits n'est pas important.
Compilé par Kapondeni T. Page3de27
- Ajouter de nouvelles règles, modifier celles existantes et supprimer certaines règles est très facile.
- Ils n'utilisent pas de boucles, de structures de sélection ou de procédures.
- Peut également être appelé langages de programmation de très haut niveau ou langages 4GL.
- Ils ont les avantages suivants :
Facilite la programmation des applications informatiques pour les raisons suivantes :
Permettre des méthodes alternatives de développement de logiciels, par exemple le prototypage.
Un code 4GL équivaut à plusieurs lignes de code dans des langages 3GL.
La productivité des programmeurs est augmentée.
Application : principalement utilisée dans la conception de systèmes experts.
Des exemples de langages déclaratifs sont Prolog (Programmation en Logique)

Langages de usage général


Ce sont des langues qui peuvent être utilisées pour effectuer une variété de tâches, elles ne sont pas dédiées à une seule.
tâche particulière.

4. Langages à but spécifique


Ce sont des langages qui sont dédiés à un domaine spécifique, par exemple, pour fonctionner sur des systèmes embarqués.
systèmes informatiques comme les machines à laver, les téléphones portables, le contrôle des robots dans un assembleur de voitures,
etc.
de telles langues doivent prendre en charge des installations en temps réel et disposer des installations suivantes :
Installations de contrôle en temps réel : Le programmeur spécifie les heures/fréquences auxquelles certains
des actions doivent être effectuées, par exemple prendre des mesures toutes les 3 secondes pour les capteurs.
Les programmeurs doivent également programmer un délai d'attente si le capteur ne parvient pas à effectuer une lecture dans le temps imparti.
interval et considérez cela comme une faute et prenez les mesures appropriées.
Interaction avec les interfaces matérielles : le langage doit contenir des instructions pour surveiller
des dispositifs comme des capteurs et des actionneurs de contrôle.

Capacité à prendre en charge la programmation concurrente : les langages doivent permettre à deux ou plusieurs
actions à réaliser en même temps.

5. Langages de programmation orientés objet (OOP)


- Ce sont des langages de programmation qui utilisent des objets qui stockent à la fois des données et du code pour le
opérations qui peuvent être appliquées sur les données.
- Les objets sont des éléments de données avec tous les traitements possibles sur l'élément de données qui leur est attaché. (ont des états
et méthodes)
- Les langages de programmation orientés objet incluent Visual Basic, C++, Java, Object Pascal, Common Lisp, Scheme, Perl,
Python, Ruby, [Link] et Oz, etc.
- Les langages POO supportent les fonctionnalités suivantes :
Encapsulation
Héritage et
Polymorphisme
Identifier l'état et le comportement des objets du monde réel est une excellente manière de commencer à penser en termes de
programmation orientée objet.

Qu'est-ce qu'un objet ?


Objets
- sont des objets du monde réel qui ont des états (attributs) et des comportements (opérations) et appartiennent à certains
classe, par ex. bureau, voiture, télévision, bicyclette, etc.
- En général, un objet est une instance d'une classe et est une entité réelle du monde réel.

État

Compilé par Kapondeni T. Page4de27


- Ce sont des attributs/caractéristiques/champs pour un objet, par exemple une voiture a une couleur, une immatriculation
numéro, modèle, etc.
- Les bicyclettes ont l'état de l'engrenage actuel, la vitesse actuelle, etc.
- Chaque objet stocke son propre état.
- Les chiens ont un état (nom, couleur, race, faim).

Comportement (opérations)
- Fait référence aux méthodes qui peuvent être utilisées sur chaque état d'objet, par exemple, changer de vitesse d'une voiture, appliquer
freins, etc.
- Chaque classe a son code source qui y est associé et définit les champs et les méthodes.
- Les chiens ont des comportements (aboyer, rapporter, remuer la queue).

Classe :
Un ensemble d'objets qui partagent une structure de données commune et un comportement commun.
Dans la programmation d'un programme, une classe est considérée comme un type de données abstrait qui décrit les champs et les méthodes.

de la classe.
Chaque classe a différents niveaux d'accès, qui peuvent être privés, protégés ou publics.
-Exemple de déclarations de classes en Java :

classe Vélo {
int vitesse = 0;
int vitesses = 1;
void changerVitesse(int nouvelleValeur) { vitesse = nouvelleValeur; }
void accelerer(int increment) { vitesse = vitesse + increment; }
void appliquerFreins(int diminution) { vitesse = vitesse - diminution; }
void printStates() {[Link]("vitesse:"+vitesse+" rapport:"+rapport); }
}

Le vélo est le nom de la classe


-La vitesse, la vitesse de changement de vitesse sont les états (champs) de la classe Bicycles.

-ChangerVitesses, accélérer, appliquerFreins, imprimerÉtats sont les comportements (méthodes) de la classe. Tous
les bicyclettes ont les états et les opérations ci-dessus.
Le code suivant est pour la création d'objets pour la classe Bicycle.

Vélo bike1 = new Vélo();


Bicyclette bike2 = nouvelle Bicyclette();
[Link]élérer(10);
[Link](2);
[Link]États();
[Link]élérer(10);
[Link](2);
Compilé par Kapondeni T. Page5de27
[Link]élérer(10);
[Link](3);
[Link]États();
}
}

-bike1etbike2sont des objets de la classe Bicycle.


-Leur comportement et leurs états sont les mêmes (bien qu'ils puissent avoir des valeurs différentes) donc ils
appartenir à la même classe.

Encapsulation
C'est une technique de combinaison des opérations (méthodes) et des données (champs) en une seule unité comme dans les classes.
-L'encapsulation peut se présenter sous deux formes :

(a) Encapsulation des données : Cacher les états en interne et exiger que toutes les interactions soient effectuées.
à travers les méthodes d'un objet. Cela implique de restreindre l'accès aux états (champs).
(b) Encapsulation procédurale : les utilisateurs n'ont pas besoin de savoir comment le comportement se produit, c'est-à-dire

cacher les opérations à l'utilisateur.

Héritage
Dans la programmation orientée objet, l'héritage est le moyen par lequel les classes peuvent réutiliser (assumer) des éléments communs.
état et comportement utilisés de leur classe parente (de base).
L'héritage est la capacité d'une classe à utiliser les variables et les méthodes d'une classe dont la nouvelle classe dérive.
la classe est dérivée (classe parente)
L'héritage permet à une nouvelle classe d'être dérivée d'une classe existante.
L'héritage est donc une relation entre les classes, où une sous-classe (classe dérivée) partage tout
les champs et les méthodes de la classe de base (parent), ainsi que ses propres méthodes et états.
-Considérez le diagramme d'héritage ci-dessous :

-Classe de base : C'est la classe parente ou la première classe à être créée à partir de laquelle d'autres classes peuvent.
hériter des états et des méthodes.
Classe dérivée : Ce sont de nouvelles classes qui sont créées à partir de la classe de base, et donc ont
méthodes et états de la classe de base ainsi que leurs propres méthodes et états.
La syntaxe pour créer une sous-classe utilise le mot clé extends, suivi du nom de la classe à
hériter de :
classe VTT étend Bicyclette
{
// nouveaux champs et méthodes définissant un vélo de montagne
// irait ici
}

Polymorphisme

Compilé par Kapondeni T. Page 6 sur 27


En général, le polymorphisme est la capacité d'avoir la même opération se comportant différemment dans
différentes circonstances.
Le polymorphisme permet à une opération de se comporter différemment en fonction des paramètres qui sont
réussi.
C'est la capacité des classes à utiliser le même nom dans la hiérarchie des classes pour une méthode, mais chaque
classe implémentant la méthode différemment.
Dans le polymorphisme, les classes dérivées sont capables de redéfinir certaines des méthodes de la classe de base (super classe).

Confinement/agrégation/composition
Ce sont des liens/associations entre des objets qui leur permettent de communiquer.
-Par exemple : un formulaire sur un écran est un objet. Sur l'objet formulaire, il y a d'autres objets, par ex. supprimer
bouton
Ces boutons (qui sont des objets) communiquent avec le formulaire (un autre objet).
Ainsi, le lien entre le formulaire et les boutons est appelé la contenance.

Programmation orientée événements


C'est là que la séquence d'exécution du code est déterminée (déclenchée) par des événements externes ou par
Les actions de l'utilisateur, par exemple, cliquer sur un bouton sur un formulaire, sont un événement qui peut déclencher un programme pour exécuter certaines

sections du code.
Ainsi, cliquer sur un bouton ou un élément de menu est un événement.
C'est important car le programmeur ne peut pas prédire la séquence exacte que l'utilisateur peut effectuer.
ses tâches.

Gestionnaires d'événements : petits codes de programme qui sont invoqués (appelés) en réponse à des événements externes.
Dispatcheur : petits codes de programme qui appellent des gestionnaires d'événements afin que les événements puissent être traités.

Avantages de la POO
Le regroupement de code en objets logiciels individuels offre un certain nombre d'avantages, notamment :

-Modularité : Le code source d'un objet peut être écrit et maintenu indépendamment de la
code source pour d'autres objets. Une fois créé, un objet peut être facilement transmis à l'intérieur du
système.

-Cacher les informations : En interagissant uniquement avec les méthodes d'un objet, les détails de son interne
l'implémentation reste cachée du monde extérieur.
-Réutilisation de code: Si un objet existe déjà, vous pouvez utiliser cet objet dans votre programme.

-Débogage facile : Si un objet particulier s'avère problématique, vous pouvez simplement le retirer de
votre application.

Fiabilité : si les codes sont conçus par des spécialistes, ils sont plus susceptibles d'être exempts d'erreurs dues à
tests intensifs.
Économie de temps : la réutilisation des méthodes et des états existants signifie moins de temps nécessaire pour coder des programmes.

Coûts de maintenance réduits : les programmeurs ont moins de code à maintenir.

-Codes de programme plus petits : étant donné que les états et les méthodes des classes sont réutilisés, le code de la
le programme est plus petit, occupant moins d'espace de stockage sur le disque.

-Les structures de stockage d'un objet peuvent être modifiées sans affecter les programmes qui l'utilisent.

Compilé par Kapondeni T. Page7de27


Code source et code objet
Code source
-Fait référence aux instructions du programme écrites sous forme d'instructions ressemblant à l'anglais (Langage de Haut Niveau) par
le programmeur, par exemple, le code Visual Basic tel que tapé par le programmeur.
Le code source est un langage compréhensible par l'homme et ne peut pas être compris par l'ordinateur.
Cela doit donc être traduit en code machine (binaire) que l'ordinateur peut
comprendre.

Code objet
Fait référence à une version en code machine d'un code source.
Tous les programmes écrits en code source doivent être convertis en code objet pour que l'ordinateur puisse.
les comprendre.

TRADUCTEURS
Ce sont des programmes utilisés pour convertir les programmes en langage de haut niveau tels qu'écrits par le programmeur.
(code source) en code machine que l'ordinateur peut exécuter.
Les traducteurs se divisent en trois types, qui sont les assembleurs, les interprètes et les compilateurs.
expliqué plus en détail ci-dessous :

Assembleurs
Ce sont des programmes utilisés pour traduire les instructions en langage d'assemblage (programme) en langage machine.
instructions de langue avant exécution.
Puisque chaque ordinateur a son propre langage d'assemblage, il a également son propre assembleur.
- Les programmes assembleurs sont écrits soit en utilisant le langage d'assemblage, soit en utilisant des langages de haut niveau comme
C.
Les assembleurs sont plus simples à programmer par rapport aux compilateurs.
- Les assembleurs se présentent sous deux types : Assembleurs à un passage et Assembleurs à deux passages.

. Assembleurs à passage unique


Ceci passe par le code source une fois et suppose que tous les symboles seront définis au préalable.
toute instruction qui les référence. Cela équivaut à déclarer des variables en haut de la
code source, peu importe où il est utilisé dans un programme en langage de haut niveau.
Il a l'avantage de la vitesse puisqu'une seule phase est traversée.

. Assembleurs à deux passes.


-Crée une table avec tous les symboles et leurs valeurs lors du premier passage, puis utilise la table dans
le deuxième passage pour générer du code.
A un avantage que les symboles peuvent être définis à n'importe quelle étape dans le code source.
Les assembleurs à double passage rendent les programmes plus faciles à lire et à maintenir.
Utilisations des assembleurs
-Les utilisations des assembleurs comprennent :

Ils génèrent du code machine qui est équivalent au langage d'assemblage.


Ils sont utilisés pour vérifier la validité des instructions, c'est-à-dire pour vérifier les erreurs de syntaxe dans un
instruction.
Ils assignent également des emplacements mémoire aux variables.

2. Interprètes
Ce sont des programmes qui traduisent et exécutent une instruction (commande) d'un programme à la fois.
avant de passer à l'instruction suivante jusqu'à la fin du programme, par exemple l'interpréteur BASIC.
- L'interpréteur doit être présent pour exécuter le programme. Il est utilisé lors de l'écriture du programme (codage) car
cela aide facilement au débogage.
Un interpréteur traduit une instruction à la fois puis l'exécute.
Ils ne produisent pas la version en code machine (code objet) d'un programme ; donc, la traduction est
répété à chaque fois que le programme est exécuté.
Compilé par Kapondeni T. Page8de27
Si le programme est exécuté 100 fois, la traduction de chaque instruction est également effectuée 100 fois.

Fonctions des interprètes


Ils traduisent chaque instruction tour à tour en langage machine et l'exécutent.
-Alloue de l'espace de stockage aux variables.
Ils vérifient les erreurs de syntaxe dans une instruction de programme.
Donne des messages d'erreur à l'utilisateur
Trouve les mots réservés et incorrects du programme
-Détermine une mauvaise utilisation des variables

Avantages des interprètes


Il est facile de trouver et de corriger les erreurs de syntaxe dans les programmes interprétés.
Il n'est pas nécessaire de recompilier longuement chaque fois qu'une erreur est découverte.
Il est très rapide de lancer des programmes pour la première fois.
-Permet le développement de petits segments de programme qui peuvent être testés de manière autonome sans
écrire tout le programme.
Il est
plus facile de tester et de déboguer partiellement des programmes, en particulier pendant la phase de programmation.
Il est très rapide d'exécuter de petits programmes.
-les segments individuels peuvent être exécutés, permettant d'isoler les erreurs
Une exécution sera nécessaire après des modifications très mineures.
- La compilation continue de l'ensemble du code est coûteuse en temps/inutile.

Inconvénients des interprètes


Ils sont très lents à exécuter de très grands programmes.
-Ils ne produisent pas de code objet à partir d'un code source et donc difficile à utiliser car
la conversion a lieu chaque fois que le programme est exécuté.

3. Compilateurs
Ce sont des programmes qui convertissent un programme en langage de haut niveau en son équivalent en code machine.
d'un seul coup (d'un seul) puis exécutez-le, par exemple, le compilateur COBOL.
- Le compilateur doit être présent pour compiler le programme.
Une fois compilé, le programme n'a plus besoin de conversion puisque la version en code machine est celle
cela sera exécuté, jusqu'à ce que des modifications soient apportées au code du programme.
Les compilateurs s'exécutent plus rapidement lorsqu'ils sont appelés et peuvent donc être utilisés comme routines de bibliothèque.
Une fois compilé, le programme peut alors être exécuté même sur un ordinateur sans le compilateur puisque le
le programme sera déjà en code machine.
Les processus de compilation impliquent de nombreuses étapes complexes qui seront examinées plus tard dans ce cours.

Fonctions des compilateurs


-Ils vérifient les erreurs de syntaxe dans les instructions du programme.
Ils allouent de l'espace de stockage aux variables.
Translatez l'ensemble du programme en code machine d'un seul coup.
Exécutez le code objet du programme.
-Produit une liste de programmes qui indique la position des erreurs dans un programme.
Donne des messages d'erreur à l'utilisateur
Trouve les mots réservés et erronés du programme
Détermine une utilisation incorrecte des variables

Avantages des compilateurs


Le code objet peut être enregistré sur le disque et exécuté lorsque nécessaire sans avoir besoin de
compilation.
- Les programmes compilés s'exécutent plus rapidement puisque seul le code objet est exécuté.

Compilé par Kapondeni T. Page9de27


Le code objet peut s'exécuter sur n'importe quel ordinateur, même ceux sans le compilateur. Par conséquent
les programmes compilés peuvent être distribués à de nombreux utilisateurs et utilisés sans aucun problème.
Le code objet est plus sécurisé puisqu'il ne peut pas être lu sans avoir besoin de rétro-analyse.
ingénierie.
-Les compilateurs indiquent les numéros de ligne avec des erreurs de syntaxe et aident donc les programmeurs dans
débogage des programmes.
Ils sont appropriés même pour des programmes très volumineux.

Inconvénients des compilateurs


-Plus lent que les interprètes pour exécuter des programmes pour la première fois.
Ils peuvent provoquer un plantage de l'ordinateur.
-Difficile de trouver des erreurs dans un programme compilé.
Il est nécessaire de recompiler longuement chaque fois qu'une erreur est découverte.

Différence entre les langages de haut niveau et les langages de bas niveau

Langage de haut niveau Langage de bas niveau


1 Écrit en déclarations en anglais Écrit en 1 et 0 (code machine) ou en
codes mnémoniques.
2 Plus facile à travailler avec Difficile à travailler avec
3 Plus facile à comprendre Difficile à comprendre
4 Sont orientés vers les problèmes et peuvent être utilisés sur des machines orientées.
tout ordinateur
5 Plus lent dans l'exécution car ils doivent être plus rapides dans l'exécution puisqu'ils sont en code machine
d'abord converti en code machine auparavant.
courir
6 Occuper un grand espace de stockage sur disque sur l'Occuper un petit espace de stockage sur disque sur l'ordinateur
ordinateur
7 Ils sont indépendants de la machine Ils dépendent de la machine

3. Langages de très haut niveau (VHLL) – 4GLs :


- Ceci ne spécifie que le résultat final souhaité et n'indique pas les étapes que l'ordinateur doit suivre.
prendre pour faire le calcul, par exemple SQL utilisé dans les bases de données relationnelles.
- Les 4GL sont flexibles et faciles à utiliser car aucune programmation n'est requise.

4. Langage naturel – Intelligence artificielle et systèmes experts :


Ce sont des programmes qui imitent le raisonnement humain et apprennent de l'expérience.

Générations de langages de programmation


1. Langages de première génération (1951-58) - Langage machine : Ceux-ci utilisaient une forme binaire pour coder
programmes. C'est la version en langage Machine. La programmation était fastidieuse à faire.
2. Langages de deuxième génération (1959-64) – Langage d'assemblage : Assembleurs, compilateurs et
l'interpréteur est devenu disponible pour représenter le code machine. Cette génération a vu l'utilisation de l'assembleur
Le langage. La programmation était plus simple et moins fastidieuse.
3. Troisième génération de langages (1965-70) - Langages de haut niveau : Cela a vu le développement de
Langages de haut niveau comme BASIC, COBOL, FORTRAN, etc.
4. Langages de quatrième génération (1971) – langages de très haut niveau (4GLs) : Cela a vu le
développement de langages non procéduraux comme SQL, PARADOX, etc.
5. Langages de Cinquième Génération (1981) - Langage Naturel, intelligence artificielle, systèmes experts comme
PROLOG, LISP.

Compilé par Kapondeni T. Page10de27


Caractéristiques des langages de programmation de haut niveau
1. Constructions de Programmation
Ce sont les bases à partir desquelles les langages de haut niveau sont construits. Les constructions de programmation
comprend :
(a) Structures de contrôle
(i) Constructif Si–Alors–Sinon
(ii) Déclaration de cas
(b) Structures de boucle
(i) Construct For–Next
(ii) Constructe Répéter–Jusqu'à
(iii) Tant que–Fin tant que
2. Opérateurs
Les opérateurs sont utilisés pour manipuler des données et ils peuvent être
(a) Opérateurs arithmétiques
e.g. b+c-d*e/f
(b) Opérateurs logiques
Et
(c) Opérateurs d'affectation
=
(d) Opérateurs de comparaison/relationnels
>, <, <=, >=, <>, Est
3. Identifiants
Un identifiant est une étiquette unique d'un élément de donnée d'un programme et se compose d'un ou
plus de caractères.
- Les identifiants comprennent les noms de variables, les noms de procédures, les constantes, etc. Les identifiants ne doivent pas être
mots réservés.
-Les identifiants peuvent être définis par l'utilisateur tant qu'ils ne sont pas des mots réservés.
4. Constantes
Une constante est un élément de données (variable) dont la valeur ne change pas pendant l'exécution du programme.
Sa valeur est fixe.
-Les constantes sont utilisées pour représenter des éléments de données avec des valeurs fixes, par exemple, la valeur de pi. Dans VB 6.0, un
la constante est déclarée comme indiqué ci-dessous :

Public Sub calculer_interet()


Const pi=3.14159
Dim rs Comme Nouveau Recordset
Dim rs_loanpay En tant que nouvel enregistrement

……………..
……………….
……………..
Fin de sous

Si la constante est une valeur de chaîne, elle doit être entourée de guillemets, par exemple
Const Nom = "Kapondeni"
Dans ce cas, la valeur de name ne changera jamais (lorsque Name est déclaré comme une constante)

5. Variables
Une variable est un nom donné à un emplacement de mémoire qui stocke une certaine valeur, qui peut changer.
(la valeur) pendant l'exécution du programme.
-Les variables peuvent être des identifiants de champ, par exemple, le nom de famille est un nom de variable valide.
-Les variables ne doivent pas être des mots réservés.
- Les variables doivent être uniques dans la procédure ou le programme (si toutes sont globales).

Compilé par Kapondeni T. Page 11 de 27


Les variables sont déclarées au début ou à un moment donné à l'intérieur du code du programme. Chaque
la variable doit être déclarée avant d'être utilisée, sinon une erreur est générée.
-Les noms de variables, comme tous les identifiants, commencent par un caractère alphabétique.
Ils peuvent être un caractère ou une chaîne de caractères.
-Les noms de variables peuvent être alphanumériques (combinaison de lettres et de chiffres).
-Ils doivent être un mot et doivent être liés aux données qui y sont stockées afin que le programmeur
ne peut pas être confondu, par exemple, le nom de famille doit être une variable qui stocke un nom de famille.
-Si deux mots sont utilisés comme variable, ils doivent être reliés par un soulignement ( _ ), sans
espaces entre les mots, par exemple. Nom_Étudiant, PASNom-Étudiant.
-Alternativement, on peut joindre les mots comme suit, NomDeFamilleÉtudiant.
- Les noms de variables ne doivent pas être trop longs, 8 caractères sont acceptables bien que VB supporte des noms plus longs.
noms de variables mais ne doivent pas dépasser 255 caractères.
-Les variables peuvent stocker des valeurs numériques, de caractères ou de chaînes et doivent être déclarées correctement.
Dans Visual Basic 6.0, les variables doivent être déclarées d'abord avant d'être utilisées. Le mot-clé Dim est
utilisé pour déclarer des variables, et chaque variable doit avoir un type de données, par exemple.

Dim nombre As Integer


Dim Nom1 Comme Chaîne
Dim x, Number_1, AmountOwed Comme Integer
- La portée des variables peut être globale ou locale.
- La portée d'une variable fait référence à l'étendue (dans le programme) à laquelle la variable est reconnue
(utilisé), surtout en relation avec d'autres modules et fonctions au sein du programme.
- Les constantes peuvent également être déclarées comme globales ou locales.

a. Variables globales
Ce sont des variables qui sont accessibles et peuvent être utilisées par n'importe quelle procédure ou fonction au sein de
même programme.
Ce sont des variables publiques
La valeur de la variable existe tout au long du programme.
Les variables globales sont déclarées en dehors de la procédure.
- Dans VB 6.0, les variables globales sont déclarées comme suit :
Public Sname As String
Le mot Public implique qu'il s'agit d'une variable globale.

b. Variables locales
Ce sont des variables qui sont définies dans une procédure et qui ne sont accessibles que dans le
procédure à laquelle ils sont déclarés.
Ils sont définis dans la procédure.
-Ce sont des variables privées
La valeur de la variable n'existe que dans la procédure où elle est définie.
Ils sont donc locaux à cette procédure dans laquelle ils sont déclarés et ne peuvent donc pas être
utilisé (non accessible) par d'autres procédures.
-Les variables locales sont déclarées comme suit :
Private Sname As String

Diagramme de syntaxe d'une variable :


Les diagrammes de syntaxe sont des représentations graphiques de la structure des variables valides.
Ils transmettent ce qui est légal pour les variables (ou identifiants) dans un certain langage de programmation comme montré.
ci-dessous

Compilé par Kapondeni T. Page 12 sur 27


- Le diagramme ci-dessus montre que chaque nom de variable commence par une lettre, suivi de n'importe lequel de
suivant (Lettre, chiffre ou _) à n'importe quelle position, ou un mélange des deux dans n'importe quel ordre, tant que le
le premier caractère est une lettre.
- En utilisant le diagramme ci-dessus, une variable comme 3_Name est invalide car elle commence par un chiffre.
- Les noms de variables doivent respecter les règles de la langue.
- le traducteur vérifie les règles par rapport aux noms de variables utilisés et signale toute erreur
- Le contenu des variables doit être d'un type spécifique sinon une erreur est créée par la tentative
utilisation de quoi que ce soit d'autre.

6. Mots réservés
-Les mots réservés (clés) sont des identifiants ayant une signification prédéfinie dans un langage de programmation spécifique.

langue
- Les mots réservés ne doivent pas être utilisés comme variables.
Chaque langage de programmation a ses propres mots réservés, qui peuvent différer des autres.
langues.
Le programme de traduction maintient un dictionnaire de mots réservés
si le mot réservé utilisé n'est pas dans ce dictionnaire, alors une erreur a été commise et un message
peut être donné qui suggère un proche de l'orthographe fournie

7. Expressions
- Une expression est une construction composée de variables et d'opérateurs qui constitue une unité complète.
d'exécution.
Exemple :
NombreA = a+b-c*d
- Ce qui précède est une déclaration. Cependant, a+b-c* est une expression trouvée dans une déclaration.
- Les expressions peuvent être arithmétiques (comme indiqué ci-dessus), booléennes ou des expressions de chaîne. Par exemple,
(a>b) et (a>=c)
- La priorité des opérateurs est très importante dans l'évaluation des expressions et il est donc important de
entourez les expressions de parenthèses lorsque cela est possible. La priorité des opérateurs est la suivante, en commençant par
du plus élevé au plus bas :
( ), Pas, ^, {*,/,}\,Mod, {+, -,}{=,<,>,<=, >= },…
NB : Les opérateurs en accolades indiquent qu'ils sont au même niveau.
- Les expressions arithmétiques sont évaluées en premier, suivies des comparaisons et enfin des logiques.
expressions.

8. Déclarations
- Une instruction est une seule instruction dans un programme qui peut être convertie en code machine et
exécuté.
- Une instruction peut ne faire qu'une seule ligne de code, mais dans certains cas, une instruction peut en comporter davantage.
qu'une ligne.
- Par exemple : Nom = "Marian" est une déclaration.
Exemple 1
NombreA = a + b
- c'est une instruction d'affectation, c'est-à-dire que la variable NumberA est assignée à la somme des valeurs de
variables a et b. donc si a=2 et b=3, NumberA se voit attribuer la valeur 5.
- Une affectation est une instruction dans un programme qui place une valeur dans une variable, par exemple total = a + b

Compilation par Kapondeni T. Page 13 de 27


- Ce qui précède n'est qu'une déclaration en une seule phrase.

Exemple 2
Si a>b Alors MsgBox "a est plus grand que b.", vbExclamation
- Ce qui précède est une déclaration en une ligne composée d'une instruction if.
Exemple 3
Si b < 0 Alors
MsgBox "b est inférieur à zéro. La commande ne peut pas être exécutée", vbExclamation
Sortie Sub
Fin Si
- Ceci est une déclaration (commençant au premier si et se terminant à Fin Si.
- Cet état se compose d'autres déclarations entre lui.

9. Structure de bloc
- Un bloc est un groupe de zéro ou plusieurs instructions entre des accolades équilibrées et peut être utilisé
n'importe où une seule déclaration est autorisée. Par exemple
si (condition) Alors (début bloc 1)
……………….(fin du bloc 1)
sinon(bloc 2)
……………….
Fin Si (fin du bloc 2)

10. Fonctions
Une fonction est un module autonome qui renvoie une valeur à la partie du programme qui
l'appelle chaque fois qu'il est appelé/exécuté.
Une fonction peut être simplement une expression qui renvoie une valeur lorsqu'elle est appelée.
-Une fonction effectue une tâche unique et spéciale, par exemple, générer un numéro d'étudiant.
-Parce qu'ils retournent une valeur, les fonctions sont des types de données, par exemple entier, réel, etc.
-Les fonctions peuvent être des fonctions intégrées ou des fonctions définies par l'utilisateur.
Les fonctions intégrées sont des procédures pré-définies d'un langage de programmation qui retournent une valeur.
[Link](Renvoie une valeur numérique d'une chaîne),MsgBox(Crée une zone de texte à l'écran),Abs
(renvoie une valeur absolue d'un nombre), etc.
Visual Basic dispose de fonctions de date intégrées, de fonctions de chaîne, de fonctions de conversion, etc.
Une fonction définie par l'utilisateur est une procédure (module) qui retourne une valeur chaque fois qu'elle est appelée.
la structure d'une fonction définie par l'utilisateur est la suivante :
Fonction publique count_rec(ByVal rs Comme Recordset) Comme Booléen
Si [Link] <= 0 Alors
MsgBox "Il n'y a aucun enregistrement dans la table.", vbExclamation
count_rec = True
Sinon
count_rec = False
Fin Si
Fin de la fonction
-Notez qu'une fonction commence par le mot Fonction et se termine par l'instruction Fin Fonction.
Cette fonction renvoie une valeur booléenne (soit vrai soit faux). Le nom de la fonction se trouve juste après le
fonction mot, c'est-à-dire count-rec dans le cas ci-dessus.

11. Procédures
Un module autonome qui ne renvoie pas de valeur.
- Les procédures commencent généralement par le mot clé Procedure et ensuite le nom de la procédure, par exemple
Procédure [Link] procédures sont définies par l'utilisateur.
Le nom de la procédure doit être lié à sa tâche
Chaque nom de procédure doit être unique au sein du même programme.
Une procédure peut être appelée depuis le programme principal ou par d'autres modules.
Compilé par Kapondeni T. Page 14 de 27
Une procédure est appelée en énonçant son nom
Les paramètres sont généralement passés lors de l'appel de procédures.
-Les paramètres/arguments sont des valeurs qui sont transmises d'une procédure à une autre et peuvent être
les valeurs réelles ou les noms de variables. Ce sont donc des valeurs données à une fonction par
déclarations provenant d'autres modules.
- Les paramètres peuvent être des paramètres formels ou réels
Paramètres réels : ce sont des arguments trouvés dans le module/déclaration appelant, pourraient être
variables ou données réelles comme 30, 40.
Les paramètres formels sont ces variables qui reçoivent des données du module ou de l'instruction appelante.

Lorsque le traitement de la procédure appelée est terminé, le traitement passe à la suivante indiquée après
l'instruction d'appel.
-Les paramètres peuvent être passés par valeur ou par référence

Passage de paramètres par valeur


-Le passage par valeur est le fait de rechercher la valeur réelle (ou la valeur d'une variable) (par exemple 20),
copié et passé à un autre module.
Dans ce cas, les variables dont les valeurs sont passées NE seront PAS modifiées même si les valeurs de
les variables dans la procédure ou la fonction appelante changent.
-Ainsi, seules les valeurs des variables sont transmises, pas la variable elle-même.
Une copie de la valeur de la variable est passée et non la variable elle-même.

Compilé par Kapondeni T. Page15de27


Passage de paramètres par référence
Le passage par référence consiste à faire passer l'adresse de la valeur, permettant ainsi qu'elle soit modifiée si
nécessaire.
-C'est à ce moment-là que l'appel de procédure passe la variable à une autre fonction, dont les processus peuvent
modifier la valeur de la variable dans la procédure d'appel.
Dans ce cas, la mémoire de la variable originale est adressée et peut donc être modifiée par le
fonction appelée. Par exemple.

-Si le programmeur ne spécifie pas la fonction ByValorByRef, Visual Basic suppose que c'est
Par référence par défaut.
12. Sémantique
La signification attachée aux déclarations et la façon dont elles sont utilisées dans une certaine langue.
13. Syntaxe
- Ce sont des règles et règlements grammaticaux régissant la construction de phrases et la mise en page de
différentes langages de programmation.
- Par exemple, Pascal utilise un point-virgule (;) à la fin de chaque instruction, il utilise également le réservé
(clé) motécrire pour afficher des éléments à l'écran, etc.
- Chaque langage de programmation a sa propre syntaxe.
- Un programme avec des erreurs de syntaxe ne s'exécute pas.

14. Littéraux
- Un littéral est une variable à laquelle une valeur fixe est attribuée dans le code du programme.
- Un littéral est la représentation du code source d'une valeur fixe.
- Les littéraux sont représentés directement dans votre code sans nécessiter de calcul, comme montré :

Dim résultat As Integer


Dim Nom Comme Chaîne
20
Kapondeni

15. Opérations d'entrée


Cela fait référence aux déclarations qui incitent l'utilisateur à entrer des données dans l'ordinateur. Par exemple.
ID = BoîteDeSaisie("Entrez les données du membre à rechercher")
Ce qui précède affiche une boîte de saisie avec le message entre parenthèses qui invite l'utilisateur à entrer des données qui
doit être recherché.
16. Opérations de sortie
Fait référence aux déclarations qui permettent d'afficher ou d'imprimer les résultats à l'écran ou à l'imprimante, par exemple.
[Link]
permet d'afficher le formulaire de paiement à l'écran.
Boîte de message ("Enregistrement non trouvé")
Affiche une boîte de message avec le message entre parenthèses.
17. Opérations de gestion de fichiers
Permet à l'utilisateur de manipuler des fichiers. Par exemple, en Visual Basic :

Compilé par Kapondeni T. Page 16 de 27


[Link]
Tant que ce n'est pas .EOF

TYPES DE DONNÉES
-Les types de données décrivent la nature des données traitées par les programmes.
Ceci est important car cela améliore la lisibilité et la maintenance du programme.
- Les types de données peuvent être simples (entiers, chaînes de caractères, etc.) ou complexes (tableaux, listes, enregistrements, etc.).
Les types de données sont déclarés au début ou à un certain moment dans le code du programme.
-Les types de données pour les variables doivent être correctement déclarés.

a. Types de données numériques


1. Entier
-Utilisé pour représenter des nombres entiers, positifs ou négatifs, et occuper 2 octets de mémoire.
Les valeurs décimales seront arrondies au nombre entier le plus proche.
-Les valeurs acceptées varient de -32 768 à +32 767. La valeur par défaut est 0.
Octet
Stocké dans une valeur de données non signée de 8 bits allant de 0 à 255.
Utilisé pour stocker des données binaires.
-La valeur par défaut est 0.
3. Réel
Un type de données utilisé pour représenter des valeurs (nombres) avec des valeurs décimales, par ex. 23,56 est un
nombre réel.
Peut être utilisé pour représenter des moyennes.
Certaines langues considèrent cela comme un type de données de type float.

4. Monnaie
-Occuper 8 octets avec 0 comme valeur par défaut.
-Utilisé pour gérer les valeurs monétaires et prendre en charge jusqu'à 4 chiffres à gauche et 15 chiffres à droite
à gauche de la virgule.
5. Date
Représentez les valeurs de date et d'heure et occupez 8 octets.
6. Double
Stocke un nombre à virgule flottante en double précision avec des décimales mais plus long que le simple.
- La valeur par défaut est 0 et occupe 8 octets
7. Célibataire
-Stocke un nombre à virgule flottante simple précision, avec des décimales.
- La valeur par défaut est 0 et occupe 4 octets.
8. Long
-Abréviation pour entier long et la valeur par défaut est 0.
Il occupe 4 octets de -2 147 483 648 à -2 147 483 647.

b. Types de données chaîne


Chaine
Une chaîne est un type de données qui stocke un ou plusieurs caractères, qui peuvent être alphabétiques ou alphanumériques.
Si une variable est déclarée comme une chaîne, elle ne doit pas être utilisée pour des calculs mathématiques quotidiens.
parce que les chaînes ne sont pas des nombres.
-Les chaînes sont déclarées comme suit :

Dim Nom Comme Chaîne


Si une valeur de variable chaîne est assignée dans le code du programme, elle doit être entourée de guillemets.
par exemple
Rassemblé par Kapondeni T. Page 17 sur 27
Tungamirai
Name
- Le deuxième exemple sera une chaîne nulle (non initialisée). Elle est différente de 0 ou d'un espace mais est
distinct par nature.
- Les chaînes peuvent être de longueur fixe ou de longueur variable

Longueur fixe : a un nombre maximum de caractères spécifié. Par exemple


Dim Sname as string * 20
- Le champ sera alloué 20 emplacements dans la mémoire de l'ordinateur.
- Si un nom de moins de 20 caractères est saisi, les espaces vides resteront inoccupés puisque
ils auraient déjà été assignés à Sname.
- Si trop long par rapport à l'espace alloué, les caractères supplémentaires sont coupés.

Longueur variable :
Ne précise pas le nombre de caractères, chaque élément de données occupe le nombre d'espaces qu'il
nécessite.
Ceci est déclaré comme suit
Dim Sname comme chaîne
2. Booléen
-Représente des instructions qui s'évaluent uniquement à vrai ou faux. La valeur par défaut est
False occupe 2 octets de stockage.
Principalement utilisé avec la construction If..... Then....... Else.
3. Caractère
Un type de données qui ne contient qu'un seul caractère alphabétique ou spécial comme %, $, a, etc.
peut être écrit sous forme de caractère dans la plupart des langages de programmation.

Données définies par l'utilisateur.


Ceci est défini par l'utilisateur en fonction de la méthode de solution, par exemple des classes lorsque l'utilisateur les définit.
cours privés.

Données énumérées :
Ce sont des types de données avec une liste d'éléments qui sont prédéfinis, par exemple les jours de la semaine, les mois de l'année,
etc.

Un mot informatique est un groupe de bits qui peut être géré ou transféré par le processeur comme un
unité unique (longueur du mot)

Facteurs à prendre en compte lors du choix d'un langage de programmation


Nature de la demande.
Disponibilité de compilateurs/interprètes appropriés.
Disponibilité des installations nécessaires dans le langage de programmation pour la mise en œuvre du système.
Disponibilité de matériel compatible.
Disponibilité de l'expertise des programmeurs.

CONCEPTION DE PROGRAMME DE HAUT EN BAS (Modularisation)


Cela fait référence à la division d'un programme en sous-tâches plus simples appelées modules, ce qui sera plus facile.
résoudre.
-Par exemple, un programme peut être divisé en modules pour Accepter un Nombre, Ajouter, Diviser, Soustraire et
Afficher les résultats.
Le programme principal aura alors des appels aux modules, qui peuvent également appeler d'autres modules.
- Les modules sont également appelés procédures, routines, sous-routines ou fonctions.
La division d'un problème en une série de modules autonomes s'appelle la modularisation.
(programmation modulaire).
Compilé par Kapondeni T. Page18de27
-Cependant, il existe en réalité une différence entre une procédure et une fonction.

Avantages de la modularisation (programmation modulaire)


-Minimise le codage puisque un module peut être appelé plusieurs fois à partir de différents modules en utilisant
Les paramètres peuvent être utilisés pour passer des données à l'intérieur du programme.
Le programmeur peut se concentrer sur une tâche plus simple à la fois.
-Les modules sont plus simples et plus faciles à comprendre et à résoudre.
Les modules sont plus faciles à tester et à déboguer, réduisant ainsi le temps de test.
La modification du programme est plus facile car les changements sont isolés avec des modules spécifiques.
De nombreux programmeurs sont employés, un sur chacun des modules.
Les programmeurs plus expérimentés peuvent se voir assigner des modules complexes.
Cela permet de gagner du temps de programmation en partageant les tâches.
Un grand projet sera plus facile à surveiller et à contrôler.
Il est plus facile de mettre à jour (modifier) des modules que l'ensemble du programme.
Moins de bogues puisque chaque ensemble de commandes de programmation est plus court
-Permet l'insertion de programmes de bibliothèque

Inconvénients de la modularisation
-La documentation sera longue et approfondie, elle pourra donc prendre du temps à produire.
Peut entraîner des problèmes de noms de variables puisque les modules sont développés séparément.
Cependant, il peut être difficile de relier les modules ensemble.

*NB : Programmes de bibliothèque : cela fait référence à une collection de programmes et sous-programmes standard pré-écrits.
qui sont stockées et disponibles pour une utilisation immédiate par d'autres modules du système.
Les programmes de bibliothèque sont des programmes requis par d'autres modules pendant l'exécution, par exemple, le dynamique.
Bibliothèques de liens (DLL) dans l'environnement Windows.
Les bibliothèques contiennent des tâches courantes comme enregistrer, supprimer, etc.
Les programmes de bibliothèque sont référencés par la plupart des modules dans les systèmes et ils fournissent des données à d'autres.
modules.
*NB : Raffinement par étapes : une technique utilisée dans le développement du fonctionnement interne d'un module.

Objectifs de la conception du programme

La conception de programmes doit produire un programme avec des coûts de maintenance et de débogage moindres par la suite.
Par conséquent, les objectifs sont de produire un programme avec les caractéristiques suivantes :
-Lisibilité : le programme doit être facile à lire et à comprendre pour les programmeurs
Fiabilité : le programme doit toujours exécuter ce pour quoi il a été conçu.
Maintenabilité : le programme doit être très facile à modifier ou à changer lorsque le besoin se fait sentir.
-Performance : le programme doit être efficace et rapide dans l'exécution de ce pour quoi il a été conç
à exécuter.
-Économie de stockage : le programme doit occuper le moins d'espace de stockage possible.

FORME DE BACKUS-NAUR ET DIAGRAMMES DE SYNTAXE


Ce sont des méthodes pour spécifier un ensemble de règles qui précisent précisément chaque partie de la langue.
La forme de Backus-Naur peut être utilisée pour définir/exprimer la structure des entiers, des variables, etc.
-Par exemple
Un entier est une séquence des chiffres 0, 1, 2, … , 9. Ainsi, les éléments suivants sont tous des entiers valides.
Compilé par Kapondeni T. Page19de27
0
2
415
3040513002976
0000000123
-Ainsi, un entier peut être un chiffre unique. Nous pouvons écrire cela sous forme de Backus Naur comme
<entier> ::= <chiffre>
Ceci se lit comme 'un entier est défini comme (::=) un chiffre'.
Mais nous devons maintenant définir un chiffre. Un chiffre est 0 ou 1 ou 2 ou ... ou 9 et nous écrivons cela comme
<digit> ::= 0|1|2|3|4|5|6|7|8|9
Les lignes verticales signifient OU
-Ainsi, notre définition complète d'un entier à un chiffre en forme de Backus-Naur est
<entier> ::= <chiffre>
0|1|2|3|4|5|6|7|8|9

Spécification des entiers de n'importe quelle longueur.


Prenons notre entier comme 589 et voyons comment nous pouvons le définir en forme de Backus-Naur.
Un entier indéfiniment long est défini comme
<entier> ::= <chiffre><entier>
Ceci est une définition récursive car un entier est défini en termes de lui-même. Appliquant cette définition plusieurs
times produit la séquence

Pour arrêter cela, nous utilisons le fait que, finalement, <integer> est un chiffre unique et écrivons
<entier> ::= <chiffre>|<chiffre><entier>
Nous avons maintenant la définition complète d'un entier non signé qui, en BNF, est
<entier non signé> ::= <chiffre>|<chiffre><entier non signé>
<digit> ::= 0|1|2|3|4|5|6|7|8|9

Ce qui précède peut être montré à l'aide d'un diagramme syntaxique comme :

Entiers signés en BNF


Les entiers signés incluent +78, -90, etc.
Ceci est tout simplement un entier non signé précédé d'un signe + ou –. Ainsi
+ <unsigned integer>| - <unsigned integer>

Ainsi, la réponse finale sera comme


Compilé par Kapondeni T. Page20de27
::= <entier non signé> | <entier signé>
<entier signé> ::= + <entier non signé> | - <entier non signé>
<entier non signé> ::= <chiffre>|<chiffre><entier non signé>
<digit> ::= 0|1|2|3|4|5|6|7|8|9

En utilisant des diagrammes de syntaxe, cela peut être illustré comme :

Variables en BNF
Les variables valides commencent par une lettre (majuscule ou minuscule) et sont suivies de n'importe quel caractère (qui doit être
une lettre, un chiffre ou un trait de soulignement) jusqu'à n'importe quelle longueur. Ceci peut être défini en BNF comme :

<variable> ::= <lettre>|<variable><caractère>


<caractère> ::= <lettre>|<chiffre>|<tiret_bas>
::= <majuscule>|<minuscule>
<MAJUSCULE> ::= A|B|C|D|E|F|G|H|I|J|K|ZL|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z
a|b|c|d|e|f|g|h|i|j|k|zl|m|n|o|p|q|r|s|t|u|v|w|x|y|z
0|1|2|3|4|5|6|7|8|9
<souligner> ::= _
Ce qui précède peut être illustré dans un diagramme de syntaxe comme :

Le processus de compilation
Le processus de compilation passe par plusieurs étapes, qui sont :
-Analyse lexicale
Analyse syntaxique
-Génération de code
-Optimisation du code

(a) Analyse lexicale


- La première étape de la compilation au cours de laquelle le code source est divisé en morceaux logiques plus petits
appelés tokens.
Rassemblé par Kapondeni T. Page21de27
- Ce processus est réalisé par un programme appelé analyseur lexical.
- Un jeton est la plus petite partie indépendante d'un programme qui a un certain sens, par exemple une variable.
- L'analyseur lexical effectue également les opérations suivantes :
Supprime les parties redondantes du code source, par exemple les espaces/les blancs
Supprime les commentaires du programme
Vérifié la validité des mots réservés dans le code du programme
Tokenise les mots réservés (remplacement des mots réservés comme If, While, etc. par des plus courts
jetons)
Tokenise les opérateurs
Vérifie la validité des symboles et des noms de variables
Crée la table des symboles

(b) Analyse syntaxique


- La deuxième étape qui consiste à déterminer si la chaîne de jetons d'entrée analysée à partir du lexical
la phase d'analyse forme des phrases valides et détermine si elles sont conformes à la grammaire de la langue.
- Certaines des activités impliquées sont :
Vérification de la grammaire des déclarations pour déterminer si elles sont conformes à la langue.
Émission de diagnostics d'erreurs (méthodes/suggestions pour résoudre les erreurs)
Vérification de l'existence des destinations de saut (présence des modules appelés)
Les constructions de contrôle vérifiées pour déterminer si elles sont valides
Vérification que les variables utilisées dans le programme ont été déclarées
Vérification de l'existence des modules de bibliothèque
Vérification si les expressions sont valides, par exemple si le nombre correct de parenthèses est utilisé.
Déterminer les priorités des opérateurs dans une expression
Génère un dictionnaire, qui est une liste de variables utilisées dans le programme et de leurs types de données.
Produit du code intermédiaire
Cette étape peut également être appelée analyse et est effectuée par un programme appelé analyseur.

(c) Génération de code


C'est une étape de compilation où le code spécifique à la machine cible est généré, c'est-à-dire le
code machine.
Il s'agit de la production d'un programme en code machine/code intermédiaire qui produira le
résultats visés par le code source.
Les éléments suivants sont également impliqués dans la génération de code :

Code intermédiaire produit qui peut ensuite être transformé en code exécutable/code machine
la production d'un programme en code machine
Adresse des variables calculées et stockées dans la table des symboles

(d) Optimisation du code


- À ce stade, le code machine est optimisé, ce qui implique d'utiliser des règles pour rendre le code aussi petit que possible.
et aussi efficace que possible en supprimant toute instruction dupliquée ou redondante qui améliore
vitesse d'exécution

En résumé, les étapes de la compilation sont illustrées comme suit :

Compilé par Kapondeni T. Page22de27


Code source

Analyseur lexical

Analyseur de syntaxe

Analyseur sémantique

Table des symboles Erreur


Gestionnaire Code intermédiaire Manipulateur
Générateur

Générateur de code

Optimiseur de code

Code Objet
Phases d'analyse
Se compose de l'analyseur lexical, de l'analyseur syntaxique et du générateur de code intermédiaire.

Analyse Lexicale
C'est ici que le scan du programme source est effectué. Chaque séquence de caractères qui a
un sens atomique est reconnu et représenté par un jeton.
Un jeton représente une classe de lettres valides, par exemple un programme va analyser des nombres.
variables et fonctions.

Analyse Syntaxique
C'est l'étape où les jetons sont regroupés en grandes structures, par exemple, l'affectation
déclarations.

Analyse sémantique
C'est ici qu'il y a une transition des jetons vers la génération de code et des erreurs complexes.
détecté.

Générateur de code intermédiaire


C'est ici que se fait la compilation à partir de la langue source vers un programme cible.

Phase de synthèse
Cette phase consiste en l'Optimiseur de Code et le Générateur de Code.

Génération de code

Compilé par Kapondeni T. Page 23 sur 27


Le code cible est généré à partir du code intermédiaire pour effectuer une planification statique et
allocation des registres.

Optimiseur de code
Il y a une réduction du nombre d'instructions afin de permettre au programme de s'exécuter plus rapidement.

Les rapports du compilateur avec les variables


Lors de l'analyse lexicale
- Les caractères dans le nom de la variable sont tokenisés
- Le nom de la variable est ajouté à la table des symboles...

- Type de donnée ajouté…


- le scope est ajouté/bloc(s) dans lequel la variable est valide
Lors de l'analyse syntaxique
- Les noms de variables qui ne correspondent pas aux règles sont signalés dans les diagnostics d'erreur.
- Les déclarations contenant des variables sont vérifiées pour la syntaxe
- La position dans le tableau est hachée à partir du nom
- Les déclarations de variables sont vérifiées / aussi l'utilisation des variables
Lors de la génération de code
- Adresse de la variable calculée
- ajouté à la table des symboles

Le compilateur traite les erreurs de syntaxe


- Le mot réservé est isolé
- si pas dans la liste des mots réservés, alors un message d'erreur est communiqué
- Si un mot réservé est identifié, alors la table de syntaxe est vérifiée pour la forme attendue de l'instruction.
- Si la forme de l'énoncé ne correspond pas, une erreur est émise.
- Noms de variables vérifiés par rapport aux règles pour les noms de variables
- Les déclarations de variables sont vérifiées pour déterminer si elles sont présentes.

Chargement des programmes et liaison des modules


Chargeurs
Un chargeur est un programme qui charge des programmes/modules compilés dans la mémoire de l'ordinateur. Certains
les fonctions des chargeurs sont :
- Charge les modules individuels dans la mémoire de l'ordinateur
- Le chargeur décide où les modules doivent être placés en mémoire
- Ajuste les adresses mémoire pour chaque module en fonction de leur emplacement.
- charge des routines de bibliothèque

- Copie le programme de l'emplacement de stockage dans la mémoire

Les chargeurs se présentent sous deux formes, les chargeurs absolus et les chargeurs de relocation.
(a) Chargeur absolu : désigne un programme qui charge des programmes dans une zone fixe de mémoire à chaque fois.
le temps qu'un programme est exécuté. Le programme chargé ne peut fonctionner que lorsqu'il est chargé dans ce seul
adresse en mémoire.
(b) Chargeur de relocations : Cela fait référence à un programme qui charge un programme n'importe où dans la mémoire
et le programme chargé fonctionne sans aucun problème. Ainsi, l'adresse d'un programme chargé est
recalculé chaque fois que le programme est chargé en mémoire.
Le déménagement peut également prendre deux formes :
Relocalisation statique : Une fois le programme chargé à une adresse mémoire, sa relocalisabilité est perdue.
c'est-à-dire qu'il ne peut pas être déplacé vers une autre adresse pendant l'exécution.
Relocalisation dynamique : le programme peut même être déplacé vers une autre adresse pendant l'exécution.

Lien

Rassemblé par Kapondeni T. Page 24 sur 27


Un fichier de liaison est un programme qui compile tous les modules chargés et crée ensuite des liaisons entre eux.
les fonctions des connecteurs sont :
- Le linkeur assemble les modules compilés correctement.
- Calcule les adresses des modules séparés
- Permet aux routines de bibliothèque d'être liées à plusieurs programmes
- Assure que l'instruction de saut d'un module à l'autre est correctement adressée
- Produit un fichier exécutable
- fait correspondre les références d'adresse entre les modules
Éditeurs
Ce sont des programmes qui sont utilisés pour saisir et modifier du code source. Ils sont également utilisés pour afficher et éditer.
texte avant la compilation.

QUESTIONS D'ÉVALUATION
1. Expliquer les termes
encapsulation des données
(ii) héritage
(iii) Polymorphisme
lorsqu'il est appliqué à la programmation dans un langage de programmation orienté objet. (4)
2. Faites la distinction entre les langages procéduraux et les langages déclaratifs. (4)
3. Expliquez le passage de paramètres par référence et par valeur. (4)
4. (a) Expliquez la différence entre les techniques de traduction de l'interprétation et de la compilation [2]
(b) Give two advantages of each of the two translation techniques. [4]
5. Une somme d'argent peut être définie comme
• Le symbole A$ suivi soit de
• Un entier positif ou
• Un entier positif, un point, et un nombre à deux chiffres ou
• Un point et un nombre à deux chiffres
Un entier positif a été défini comme <INTEGER>
Un chiffre est défini comme <DIGIT>::= 0/1/2/3/4/5/6/7/8/9.
a) Définissez, en utilisant la forme de Backus Naur, la variable <MONTANT D'ARGENT>
b) En utilisant les valeurs précédemment définies de INTEGER et DIGIT, dessinez un diagramme de syntaxe pour définir
MONTANT D'ARGENT.
6. Indiquez les trois étapes de la compilation et décrivez brièvement le but de chacune. [6]
7. Expliquez en détail, l'étape de l'analyse lexicale. [6]
8. Expliquer le rôle de
(i) connecteurs,
(ii) chargeurs
dans l'exécution des programmes [4]
9. Deux des étapes qu'un programme en langage de haut niveau subit lors de la compilation sont lexicales
analyse et analyse syntaxique.
Discutez de la façon dont les erreurs sont découvertes au cours de chacune de ces deux étapes. [5]
10. (a) (i) Décrivez ce que l'on entend par code source. [2]
(ii) Expliquer pourquoi le code source doit être traduit en code objet. [2]
(b) Indiquez ce que signifient les types d'erreurs de programmation suivants :
(i) erreur de syntaxe [1]
(ii) erreur arithmétique [1]
11. (a) Expliquez comment le programme de traduction prépare le code du programmeur en un programme que le
la machine peut fonctionner.
(b) (i) Expliquez ce que signifie une procédure. [2]
(ii) Décrivez comment les procédures et le constructeur de programmation « sélection » peuvent être utilisés pour coder un
système de menu simple pour un utilisateur. [3]
12. (a) Expliquer la différence entre l'interprétation et la compilation d'un programme écrit dans un langage de haut niveau.
niveau de langue. [2]
Compilation par Kapondeni T. Page25de27
(b) Expliquer ce qui se passe lors de l'étape d'analyse lexicale de la compilation. [5]
(c) Décrivez deux choses qui se produisent pendant la génération du code. [4]

13. (a) Les programmes peuvent être conçus sous forme modulaire.
Discutez des avantages et des inconvénients de concevoir des programmes sous forme modulaire. [5]
(b) Un programme doit être écrit pour mettre à jour les enregistrements dans un fichier séquentiel et ensuite produire un
copie de sauvegarde.
Décrivez, à l'aide d'un diagramme, comment ce problème peut être divisé en modules pour le préparer à
codage. [5]
14.(a) Expliquer pourquoi un programme, écrit dans un langage de haut niveau, doit être traduit avant d'être exécuté.
sur un ordinateur.
(b) Décrire la différence entre l'interprétation et la compilation d'un langage de haut niveau
programme. [4]
(c) Expliquer comment les erreurs dans le
(i) mots réservés,
(ii) variables
Utilisé dans les instructions de langage de haut niveau, il est reconnu par le programme de traduction.
15. Décrivez chacun des paradigmes de programmation suivants
(i) Orienté objet, [2]
(ii) Déclaratif. [2]
16. Un nom est passé en paramètre à une fonction. La fonction utilise une structure de boucle pour rechercher le
nom dans un tableau. Il renvoie les détails trouvés au programme appelant.
(a) Le nom à rechercher peut être passé soit
(i) par valeur, ou
(ii) par référence.
En utilisant cet exemple, expliquez ce que signifie qu'un paramètre soit passé par valeur et par
référence. [2]
(b) En utilisant des exemples de cette fonction, expliquez ce que signifie un
(i) variable locale,
(ii) variable globale. [4]
(c) Deux types de traducteurs sont les interprètes et les compilateurs.
Décrivez la différence entre un interpréteur et un compilateur et indiquez pourquoi les deux seraient
utilisé avec cette fonction. [4]
(d) Expliquer le but d'un chargeur dans l'exécution du programme final. [2]
17. (a) Expliquez les différences entre l'étape d'analyse lexicale et l'étape d'analyse syntaxique dans le
compilation d'un programme en langage de haut niveau. [6]
(b) Une phase de la compilation est la phase de génération de code.
Décrivez la phase de génération de code. [3]
(c) Expliquer le but d'un chargeur. [2]
(d) Un programme a été écrit en utilisant une technique descendante. Les modules individuels dans le programme
ont été totalement testés et il n'y a aucune erreur dans aucun d'entre eux.
Expliquez pourquoi le programme peut ne pas s'exécuter ou peut produire des résultats incorrects, malgré les tests réalisés.
été fait. [2]
(e) Lorsqu'un ordinateur exécute un programme, le programme peut ne pas s'exécuter correctement car il y a
erreurs dans le code.
Describe two types of error that may be present, giving an example of each. [6]
18. Expliquez pourquoi un interpréteur serait préféré à un compilateur en tant que traducteur lors de l'écriture d'un code élevé.
programme de langage de niveau.

19. Dans un langage de programmation orienté objet particulier, les classes suivantes sont définies

Compiler par Kapondeni T. Page26de27


En référence au diagramme, expliquez les termes :
(i) Encapsulation des données
(ii) Héritage [4]

Compilé par Kapondeni T. Page27de27

Vous aimerez peut-être aussi