Concepts Fondamentaux : POO, Architecture PC et Langage C
Classé dans Informatique
Écrit le en
français avec une taille de 10,16 KB
Programmation Orientée Objet (POO)
La POO est un ensemble de structures de données complexes et de programmes qui font partie d'une organisation. Un objet de données n'est pas simple, mais contient en son sein un certain nombre de composants structurés.
La Classe
Les classes sont des déclarations d'objets, et peuvent également être définies comme des abstractions d'objets. La définition d'un objet est la classe. Une classe est une construction statique qui décrit un comportement commun et des attributs. Sa formalisation se fait à travers une structure de données, incluant les données et les fonctions, appelées méthodes. Les méthodes définissent les comportements. Chaque classe possède deux méthodes spéciales :
Constructeur
Il est appelé lorsque la classe prend sa place en mémoire, c'est-à-dire lorsqu'elle est instanciée. Il est responsable de l'initialisation des valeurs, et peut souvent appeler les constructeurs d'autres classes.
Destructeur
Il est appelé à la fin de la vie de l'instance de la classe pour libérer les ressources.
L'Objet et l'Instanciation
Les objets sont des instances de n'importe quelle classe. Lorsque nous créons une copie, nous spécifions la classe à partir de laquelle la créer. Cette action de créer un objet à partir d'une classe est appelée instanciation.
Propriétés des Objets
- Identité : Permet de différencier une instance d'une autre.
- Comportement : Permet d'effectuer des tâches spécifiques, communes à tous les objets de la même classe.
- Statut (État) : Déterminé par des informations stockées, qui peuvent être fixes ou variables.
Principes de la POO
Abstraction des Données
Elle permet de ne pas se soucier des détails non essentiels, disponibles dans la plupart des langages de programmation (par exemple, la structure des données, les types de données, les procédures et les fonctions). C'est la capacité d'un objet à exercer ses fonctions indépendamment du contexte dans lequel il est utilisé.
Encapsulation
C'est la caractéristique qui représente la capacité de l'objet à répondre à une demande grâce à ses méthodes, sans exposer les mécanismes internes utilisés pour fournir ces résultats.
Attributs et Méthodes Statiques
Certains attributs, communs à toutes les instances d'une classe, sont définis comme statiques. Les méthodes statiques définies dans une classe peuvent être invoquées sans instanciation de la classe. Elles n'accèdent qu'aux données statiques. L'appel de méthodes statiques est généralement pratique, en particulier pour les tâches d'initialisation de classe.
Héritage
L'héritage permet à une classe d'hériter des variables et des méthodes d'une autre classe (la classe dont on hérite est appelée superclasse ou classe parent). Une sous-classe possède ses propres attributs et méthodes, en plus des méthodes et attributs hérités de la superclasse. Cela crée une hiérarchie d'héritage.
Polymorphisme
Le polymorphisme indique la possibilité de définir plusieurs opérations avec le même nom, en les différenciant uniquement par les paramètres d'entrée (surcharge). Selon l'objet introduit comme paramètre d'entrée, les opérations appropriées sont sélectionnées et exécutées. Le terme polymorphisme définit également la capacité de créer plusieurs objets utilisant le même type de base pour réaliser différents concepts d'objets (sous-typage).
Classes Abstraites
Les méthodes abstraites sont déclarées mais non implémentées. Si une classe contient une méthode abstraite, elle doit être déclarée comme abstraite et, en tant que telle, elle ne peut pas être instanciée. Les classes abstraites sont utilisées pour définir des concepts incomplets qui doivent être complétés dans les sous-classes héritant de la classe abstraite.
Architecture d'un Ordinateur (PC)
Hardware
Le Hardware désigne les composants matériels de l'ordinateur, dont la fonctionnalité ne peut pas être facilement modifiée. Un ordinateur se compose de 4 unités de base :
Unité d'Entrée
L'ordinateur a besoin de recevoir des données et des instructions pour résoudre n'importe quel problème. L'unité d'entrée est constituée d'un ou de plusieurs dispositifs (périphériques).
Unité Centrale de Traitement (CPU)
Dispositif majeur du traitement électronique des données. Le processeur interprète les instructions d'un programme et les exécute une par une. Il se compose de trois unités principales :
- Unité de Contrôle : Contrôle et gère le transfert des données et des instructions entre les différentes unités.
- Unité Arithmétique et Logique (UAL/ALU) : Effectue les opérations arithmétiques (+, -, *, /), logiques (ET, OU, NON) et relationnelles (>, <, =).
- Registres : Utilisés pour stocker temporairement les instructions et les données en cours d'utilisation.
Unité de Mémoire
Utilisée pour stocker les programmes et les données.
Unité de Sortie
Utilisée pour imprimer et afficher les résultats stockés dans l'unité de mémoire.
Représentation Interne des Données et Logiciels
Bits et Octets
Les données sur un PC sont représentées en utilisant uniquement les symboles 0 et 1, appelés bits. Un ensemble de 8 bits est un octet.
Logiciel (Software)
Les programmes dirigent le fonctionnement du matériel pour la solution d'un problème, et leurs fonctionnalités sont facilement modifiables.
Système d'Exploitation (SE)
Le Système d'Exploitation est un ensemble de programmes chargé d'administrer toutes les ressources d'un ordinateur et de fournir une interface entre le matériel et les programmes. Une partie importante de ses tâches concerne l'organisation et l'administration du stockage de masse. À cette fin, le SE utilise deux concepts fondamentaux :
- Répertoires (Dossiers) : Ce sont des entités logiques qui permettent une organisation structurée et hiérarchisée de l'information. Ils ne sont pas des conteneurs d'informations en soi, mais sont utilisés uniquement à des fins d'organisation.
- Fichiers : Ce sont des entités logiques contenant l'information. La nature de l'information contenue dans un fichier peut être très diverse.
Applications
Ce sont des programmes ou des ensembles de programmes qui effectuent des tâches spécifiques : bases de données, calculs scientifiques, traitement de texte, etc.
Développement des Systèmes et Langages
Les langages de programmation sont des ensembles de programmes destinés à la production d'applications. Ils peuvent être classés de plusieurs façons :
1. Classification selon le Niveau d'Abstraction
- Langage de Bas Niveau d'Abstraction : Langages où le programmeur doit spécifier les tâches à effectuer par l'ordinateur, dans une perspective très proche du matériel.
- Langage de Haut Niveau d'Abstraction : Le programmeur manipule des entités abstraites, sans s'impliquer dans leurs détails d'implémentation interne.
2. Classification selon la Méthodologie
- Langages Impératifs : Le programmeur doit spécifier en détail le déroulement du programme (comment faire).
- Langages Déclaratifs : Le programmeur se concentre sur la définition du problème (quoi faire), laissant la solution aux mécanismes du langage lui-même.
- Langages Orientés Objet : Le programmeur définit l'état interne des entités caractérisées et un ensemble de mécanismes capables de le modifier. Cela facilite l'abstraction des entités physiques et offre une approche plus directe à la modélisation d'un programme.
- Langages Mixtes : Ceux qui permettent au programmeur de mélanger différentes méthodologies de programmation.
3. Classification selon le Mode d'Exécution
- Interprétés : Il y a un processus supplémentaire (l'interpréteur) qui traduit l'énoncé du programme en langage machine pendant l'exécution elle-même.
- Compilés : Le processus de traduction en code machine est effectué avant l'exécution. Cela augmente considérablement l'efficacité au détriment de la perte de flexibilité lors du développement.
- Environnements de Programmation : Ce sont des environnements riches pour le programmeur, facilitant les tâches de développement, de débogage et de test d'un programme.
Le Langage C
Inconvénients
- Manque d'instructions d'Entrée/Sortie (E/S) et d'instructions pour la manipulation de chaînes. Ce travail est délégué aux routines de la bibliothèque standard, avec la perte de portabilité qui en résulte.
- La liberté excessive dans l'écriture des programmes peut conduire à des erreurs de programmation qui, bien que syntaxiquement correctes, ne sont pas évidentes à première vue.
- La priorité des opérateurs rend parfois les expressions complexes (de petits "puzzles").
Caractéristiques
- Programmation structurée.
- Économie d'expression.
- Codage simultané de haut et bas niveau.
- Remplace avantageusement la programmation en assembleur.
- Utilisation naturelle des fonctions primitives du système.
- Production d'un code objet hautement optimisé.
- N'est pas adapté à un domaine particulier (langage généraliste).