Toute machine capable de manipuler des informations binaires peut être qualifiée d'ordinateur.
Le type d'ordinateur le plus présent sur le marché est le PC (Ordinateur personnel), toutefois il existe d'autres types d'ordinateurs (n'étant pas des PC).
Pour effectuer une tâche, quelle qu’elle soit, un ordinateur a besoin d’un programme informatique.
Or, pour fonctionner, un programme informatique doit indiquer à l’ordinateur ce qu’il doit faire avec précision étape par étape.
L’ordinateur exécute ensuite le programme, en suivant chaque étape de façon automatique pour atteindre l’objectif.
Or, il faut aussi dire à l’ordinateur comment faire ce qu’il doit faire. C’est le rôle de l’algorithme informatique.
Un algorithme est composé de trois (3) parties principales :
L’entête : Cette partie sert à donner un nom à l’algorithme. Elle est précédée par le mot algorithme, ce nom n’influe en rien le bon déroulement de l’algorithme. En général, il faut donner des noms qui permettent au lecteur d’avoir une idée de ce que fera l’algorithme qu’il lira.
La partie déclarative : Dans cette partie, on déclare les différents objets que l’algorithme utilise (constantes, variables, etc.)
Le corps de l’algorithme : Il est composé d’une séquence d'actions faisant appel à des opérations de base de l'ordinateur. Il est délimité par les mots DÉBUT et FIN.
Compilateur :
Traduit une fois pour toutes, les programmes dans leur ensemble :tout le programme est fourni au compilateur pour la traduction et son résultat sera un nouveau fichier autonome, c'est-à-dire qui n'aura plus besoin d’un programme autre que lui pour s'exécuter; on dit d'ailleurs que ce fichier est exécutable peut être soumis au processeur pour traitement.
Un langage de programmation pour lequel un compilateur est disponible est appelé un langage compilé.
L’algorithmique est la science des algorithmes. Elle s’intéresse à l’art de construire des algorithmes ainsi qu’à déterminer leur validité, leur robustesse, leur réutilisabilité, leur complexité ou leur efficacité.
L’algorithmique permet ainsi de passer d’un problème à résoudre à un algorithme qui décrit la démarche de résolution du problème.
Par conséquent, la programmation consiste à traduire un algorithme dans un langage « compréhensible » par l’ordinateur afin qu’il puisse être exécuté automatiquement.
Ce fichier objet n’est pas exécutable tel quel car il lui manque les instructions exécutables des fonctions standards appelées dans le fichier source (printf, scanf, …) et éventuellement d’autres fichiers objets
In computing, a compiler is a computer program that translates computer code written in one programming language into another language. The name "compiler" is primarily used for programs that translate source code from a high-level programming language to a lower level language to create an executable program.
Toute machine capable de manipuler des informations binaires peut être qualifiée d'ordinateur.
Le type d'ordinateur le plus présent sur le marché est le PC (Ordinateur personnel), toutefois il existe d'autres types d'ordinateurs (n'étant pas des PC).
Pour effectuer une tâche, quelle qu’elle soit, un ordinateur a besoin d’un programme informatique.
Or, pour fonctionner, un programme informatique doit indiquer à l’ordinateur ce qu’il doit faire avec précision étape par étape.
L’ordinateur exécute ensuite le programme, en suivant chaque étape de façon automatique pour atteindre l’objectif.
Or, il faut aussi dire à l’ordinateur comment faire ce qu’il doit faire. C’est le rôle de l’algorithme informatique.
Un algorithme est composé de trois (3) parties principales :
L’entête : Cette partie sert à donner un nom à l’algorithme. Elle est précédée par le mot algorithme, ce nom n’influe en rien le bon déroulement de l’algorithme. En général, il faut donner des noms qui permettent au lecteur d’avoir une idée de ce que fera l’algorithme qu’il lira.
La partie déclarative : Dans cette partie, on déclare les différents objets que l’algorithme utilise (constantes, variables, etc.)
Le corps de l’algorithme : Il est composé d’une séquence d'actions faisant appel à des opérations de base de l'ordinateur. Il est délimité par les mots DÉBUT et FIN.
Compilateur :
Traduit une fois pour toutes, les programmes dans leur ensemble :tout le programme est fourni au compilateur pour la traduction et son résultat sera un nouveau fichier autonome, c'est-à-dire qui n'aura plus besoin d’un programme autre que lui pour s'exécuter; on dit d'ailleurs que ce fichier est exécutable peut être soumis au processeur pour traitement.
Un langage de programmation pour lequel un compilateur est disponible est appelé un langage compilé.
L’algorithmique est la science des algorithmes. Elle s’intéresse à l’art de construire des algorithmes ainsi qu’à déterminer leur validité, leur robustesse, leur réutilisabilité, leur complexité ou leur efficacité.
L’algorithmique permet ainsi de passer d’un problème à résoudre à un algorithme qui décrit la démarche de résolution du problème.
Par conséquent, la programmation consiste à traduire un algorithme dans un langage « compréhensible » par l’ordinateur afin qu’il puisse être exécuté automatiquement.
Ce fichier objet n’est pas exécutable tel quel car il lui manque les instructions exécutables des fonctions standards appelées dans le fichier source (printf, scanf, …) et éventuellement d’autres fichiers objets
In computing, a compiler is a computer program that translates computer code written in one programming language into another language. The name "compiler" is primarily used for programs that translate source code from a high-level programming language to a lower level language to create an executable program.
Notions de base :
- programme
- programmation
- langages de programmation
Une petite introduction au langage C++ :
- Historique
- Place de C++ par rapport aux autres langages de programmation
Mettre en place les différents outils nécessaires pour pouvoir programmer en C++ :
- éditeur de texte
- compilateur
- débugger
les programmes « 3 in 1 » ou IDE - Environnement de Développement Intégré
Création et discussion de notre premier programme C++
Ce fascicule de TP est destiné aux étudiants. Il est conforme au programme de première année Licence Appliquée : Technologies des communications..
Cet ouvrage est construit essentiellement autour de l’activité de l’étudiant. Son intention est de favoriser, chez l’étudiant, la maîtrise de la notion de résolution de problème à travers une démarche algorithmique suivi d’une traduction au langage C. Il comporte 8 TPs qui couvrent le programme de module Atelier Informatique I.
ASP.NET est un ensemble de technologies de programmation Web créé par Microsoft. Ce langage est utilisé pour créer des sites Webs dynamiques, des applications web ou des web services XML.
Le développement Web avec ASP.NET est plus facile: les applications Web sont développées comme des applications Windows en utilisant le modèle ASP.net ==> il s'agit d'une insertion du code (codebehind) C# ou VB.net dans des pages HTML (ajouter du JavaScript) est envoyé au client. On dit On dit que le C# et/ou VB.NET sont utilisés pour modifier le HTML
L'objectif de cette introduction est de :
- Comprendre le fonctionnement du Framework .Net
- Comprendre les principes de base de ASP.NET
- Faire la différence entre Page web Classiques et pages ASPX crées avec ASP.NET
Un cours d'initiation en Visual Basic.
Merci de me faire part de vos remarques et suggestions pour le parfaire et le perfectionner via mon email:
pr.azizdarouichi@gmail.com
Notions de base :
- programme
- programmation
- langages de programmation
Une petite introduction au langage C++ :
- Historique
- Place de C++ par rapport aux autres langages de programmation
Mettre en place les différents outils nécessaires pour pouvoir programmer en C++ :
- éditeur de texte
- compilateur
- débugger
les programmes « 3 in 1 » ou IDE - Environnement de Développement Intégré
Création et discussion de notre premier programme C++
Ce fascicule de TP est destiné aux étudiants. Il est conforme au programme de première année Licence Appliquée : Technologies des communications..
Cet ouvrage est construit essentiellement autour de l’activité de l’étudiant. Son intention est de favoriser, chez l’étudiant, la maîtrise de la notion de résolution de problème à travers une démarche algorithmique suivi d’une traduction au langage C. Il comporte 8 TPs qui couvrent le programme de module Atelier Informatique I.
ASP.NET est un ensemble de technologies de programmation Web créé par Microsoft. Ce langage est utilisé pour créer des sites Webs dynamiques, des applications web ou des web services XML.
Le développement Web avec ASP.NET est plus facile: les applications Web sont développées comme des applications Windows en utilisant le modèle ASP.net ==> il s'agit d'une insertion du code (codebehind) C# ou VB.net dans des pages HTML (ajouter du JavaScript) est envoyé au client. On dit On dit que le C# et/ou VB.NET sont utilisés pour modifier le HTML
L'objectif de cette introduction est de :
- Comprendre le fonctionnement du Framework .Net
- Comprendre les principes de base de ASP.NET
- Faire la différence entre Page web Classiques et pages ASPX crées avec ASP.NET
Un cours d'initiation en Visual Basic.
Merci de me faire part de vos remarques et suggestions pour le parfaire et le perfectionner via mon email:
pr.azizdarouichi@gmail.com
COURS C++ [Enregistrement automatique]Complet (1).pptx
Chapitre 0_ Introduction à la compilation.pdf
1. Ecole Normale Supérieure Kouba Module : Compilation
Département Informatique Année : 2023/2024
Introduction à la compilation
I. Introduction
Au début de l'informatique les programmes étaient écrit en langage machine c.-à-d. en une
suite de chiffre 0 et 1. Cette méthode n'était pas pratique car la mise au point et l'écriture de
programmes était assez complexe. Les programmes étaient en suite écrits en langage
assembleur ce qui consiste en l'utilisation de mnémonique (nom d'instruction) ceci était
proche de la machine mais il fallait connaitre la structure interne de celle-ci (par exemple : les
registres, les modes d'adressage, ...).
Les points précédents ont conduit ou développement des langages appelé Langages
Evolués tel que C, C++, Pascal, Java, Fortran, qui sont proches du langage naturelle et sont
alors indépendants de la structure interne de la machine. Le problème qui se pose alors est le
suivant :
Un langage évolué est-il directement compris par la machine ?
La réponse et les détails de cette question font l'objet de notre module. C.-à-d.,
Comment implémenter un langage évolué sur machine ? L'idée consiste à transformer un
programme écrit en langage évolué en un programme ou un code directement exécutable par
la machine.
Le processus de transformation est appelé Compilation.
II. Compilateur et translateur
Compilation : elle consiste donc de traduire un programme source écrit en langage
évolue en code directement exécutable par la machine. Il existe d’autres transformations telles
que la Traduction et l'Interprétation.
Traduction : elle consiste à traduire un programme écrit en langage L1 en un
programme écrit en langage L2. Le programme était dans L1 est appelé Programme Source et
celui écrit en L2 est le Programme Objet.
Si le langage L2 est le langage Assembleur on dira que c'est un Compilateur.
Si les deux langages L1 et L2 sont tous les deux des langages évolues on parlera de
prés processeurs ou de prés compilateur.
Interprétation : consiste à traduire et à exécuter un programme écrit en langage
Source instruction par instruction.
La différence entre le compilateur et l'interpréteur se situe dans le faite que
l'interpréteur exécute directement la source et ne produit pas de programme objet.
Programme écrit en
langage évolué
Processus de
transformation
Code Objet
2. Ecole Normale Supérieure Kouba Module : Compilation
Département Informatique Année : 2023/2024
Remarque :
À priori le langage dans lequel écrire un compilateur est indépendant des langages source et
cible du compilateur.
On peut choisir un langage de bas niveau pour des raisons d'efficacité, ou bien un langage de
haut niveau afin de mieux contrôler la complexité du développement.
Un compilateur C1 de Source dans Cible écrit dans un langage L peut lui même être compilé
par un compilateur de L dans M. on obtient alors toujours un compilateur de Source dans
Cible mais écrit dans le langage M.
III. Structure logique d’un compilateur
Le processus de compilation est assez complexe. Les différentes phases sont
représentées dans le schéma ci-dessous :
Remarque :
Les compilateurs dans lesquels les étapes sont faites séparément sont appelés « les
compilateurs multipasses ». Ceux dans lesquels les étapes sont en une phase sont appelés « les
compilateurs monopasses ».
Phrases ou instructions
Instructions élémentaires
Ou Code élémentaire
Programme source
Analyse lexicale
Table des
symboles
Analyse syntaxique
Analyse sémantique et génération
du code intermédiaire
Optimisation du code
Génération du code
Code objet
Programme source
Analyse lexicale
Traitement des
erreurs
Entités lexicales
Instructions élémentaires
Ou Code élémentaire
Phrases ou instructions
Traitement des
erreurs
Analyse syntaxique
Analyse sémantique et génération
du code intermédiaire
Optimisation du code
Génération du code
Code objet
Programme source
Analyse lexicale
Table des
symboles
3. Ecole Normale Supérieure Kouba Module : Compilation
Département Informatique Année : 2023/2024
IV. Les différentes phases d’un compilateur
1. Analyse lexicale ou lexicographie
Le rôle de cette analyse est de déterminer les mots appartenant au langage à compiler et de
construire la table appelée table des symboles ou dictionnaire.
2. Analyse Syntaxique
Le rôle de l’analyseur syntaxique est de vérifier si la structure ou encore la syntaxe de la
phase de la succession des mots obtenus de l’analyse lexicale est correcte (conforme à la
grammaire du langage source).
3. Analyse Sémantique et Génération de code Intermédiaires
L’analyse sémantique permet de vérifier si la chaine correcte syntaxique est aussi correcte de
point de vue Sens. Cette phase permet de générer à partir d’une entité syntaxique un code
simplifié de bas niveau.
4. Optimisation de code
Cette phase vise à optimiser le code de point de vue place mémoire et rapidité d’exécution.
C’est une étape optionnelle dans le compilateur.
5. Génération de code
Cette phase est la dernière étape de la compilation. Elle permet de traduire le programme en
code directement exécutable par la machine.
Elle nécessite la connaissance de la forme du code objet à générer ainsi que l’architecture de
la machine sur laquelle va s’exécuter le programme, c.-à-d. le jeu d’instruction, registre, mode
d’adressage...
6. Table des symboles ou Dictionnaire
C’est une table contenant les informations concernant les entités du programme à compiler,
elle est construite dans l’analyse lexicale et est mise à jour au fur et à mesure dans les autres
étapes de la compilation.
Mots clés Caractères spéciaux
Identificateurs Constants
Dans la table des symboles, les identificateurs et les constants ne se répètent pas.
7. Traitement des erreurs
Des erreurs peuvent survenir dans n’importe quelle étape de la compilation. Un détecteur
d’erreurs et un traitement d’erreurs peuvent être inclus dans la compilation.
Programme Source Scanner Entités Lexicales