Types de langages de programmation
Types de 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.
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.
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.
dépendant
Capacité à prendre en charge la programmation concurrente : les langages doivent permettre à deux ou plusieurs
actions à réaliser en même temps.
État
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); }
}
-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.
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
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
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.
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.
-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.
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.
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.
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.
Différence entre les langages de haut niveau et les langages de bas niveau
……………..
……………….
……………..
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).
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
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
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
-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é :
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.
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.
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 é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)
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.
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.
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 :
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 :
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
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
Analyseur lexical
Analyseur de syntaxe
Analyseur sémantique
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é.
Phase de synthèse
Cette phase consiste en l'Optimiseur de Code et le Générateur de Code.
Génération de code
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 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
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