En informatique, le concept d'abstraction identifie et regroupe des caractéristiques et traitements communs applicables à des entités ou concepts variés ; une représentation abstraite commune de tels objets permet d'en simplifier et d'en unifier la manipulation.
thumb|upright=1.4|Différentes couches de logiciel, partant d'en bas, le matériel est programmé en langage binaire, via un firmware, qui permet une abstraction pour le noyau, puis lui même pour le système d'exploitation, qui a son tour permet une abstraction pour les applications. Les différentes couches ont une abstraction de plus en plus importante, et chaque couche ne doit réussir à communiquer qu'avec celle d'en dessous ou celle d'au dessus, permettant une mutualisation des couches intermédiaires : par exemple le système d'exploitation est commun aux deux applications.
thumb|Exemple de couche unifiée (la couche SDL) pour programmer les applications via une interface unique vers SDL, quels que soient le système d'exploitation et le matériel réellement utilisés.
Un langage informatique est déjà une abstraction en lui-même, puisqu'il fait correspondre à un langage ésotérique (le langage machine s'écrit en binaire, c'est-à-dire composé uniquement de zéros et de uns) un autre langage mieux adapté à la compréhension humaine.
Une des abstractions est la généralisation du code pour le détacher au maximum du contexte. L’un des outils les plus connus de l’abstraction informatique est la variable, notamment la variable d'environnement.
Par exemple, sous Windows XP, le chemin du système est généralement C:\WINDOWS\system32. Mais il ne s’agit que d’un cas particulier, ce pourrait très bien être D:\OS_XP. En revanche, la variable d’environnement pour les fichiers système est %WINDIR% (ou %SYSTEMROOT%). Cette variable d’environnement est une valeur abstraite dont C:\WINDOWS\system32 est une application possible.
Beaucoup d’erreurs de programmes viennent du fait que les dits programmes utilisent des valeurs concrètes au lieu de valeurs abstraites (comme les variables d’environnement).
Cette page est générée automatiquement et peut contenir des informations qui ne sont pas correctes, complètes, à jour ou pertinentes par rapport à votre recherche. Il en va de même pour toutes les autres pages de ce site. Veillez à vérifier les informations auprès des sources officielles de l'EPFL.
La programmation orientée objet (POO), ou programmation par objet, est un paradigme de programmation informatique. Elle consiste en la définition et l'interaction de briques logicielles appelées objets ; un objet représente un concept, une idée ou toute entité du monde physique, comme une voiture, une personne ou encore une page d'un livre. Il possède une structure interne et un comportement, et il sait interagir avec ses pairs.
En informatique, la programmation impérative est un paradigme de programmation qui décrit les opérations en séquences d'instructions exécutées par l'ordinateur pour modifier l'état du programme. Ce type de programmation est le plus répandu parmi l'ensemble des langages de programmation existants, et se différencie de la programmation déclarative (dont la programmation logique ou encore la programmation fonctionnelle sont des sous-ensembles).
C++ est un langage de programmation compilé permettant la programmation sous de multiples paradigmes, dont la programmation procédurale, la programmation orientée objet et la programmation générique. Ses bonnes performances, et sa compatibilité avec le C en font un des langages de programmation les plus utilisés dans les applications où la performance est critique. Créé initialement par Bjarne Stroustrup dans les années 1980, le langage C++ est aujourd'hui normalisé par l'ISO.
Ce cours aborde les concepts fondamentaux de la programmation et de la programmation orientée objet (langage JAVA). Il permet également de se familisarier avec un environnement de développement inform
Ce cours approfondit les connaissances en programmation présentées dans le cours ICC du 1er semestre. L'accent est
mis sur l'approche «orientée objet» (en C++), la conception et la spécification de pr
This advanced graduate course teaches the key design principles underlying successful computer and communication systems, and shows how to solve real problems with ideas, techniques, and algorithms fr
Couvre l'abstraction de données en nombres rationnels, y compris la vue du client, l'auto-référence, les conditions préalables, les assertions, les constructeurs et les marqueurs de fin.
Couvre la décomposition modulaire dans les projets logiciels, en mettant l'accent sur la réduction des dépendances et les avantages de la programmation modulaire.
(merge of parprog1, scala-reactive, scala-spark-big-data)
In this course you will discover the elements of the functional programming style and learn how to apply them usefully in your daily programming tasks. You will also develop a solid foundation for rea
This advanced undergraduate programming course covers the principles of functional programming using Scala, including the use of functions as values, recursion, immutability, pattern matching, higher-
Unités associées (8)
A metaprogrammer should be able to reason about the semantics of the generated code.Multi-stage programming introduced an elegant and powerful solution to this problem.It follows a semantically driven approach to code generation, where semantics are fully ...
EPFL2023
The essay focuses on the early work of Aldo Rossi, for the most part produced in collaboration with Gianugo Polesello, Luca Meda and Giorgio Grassi. In the early 1960s Rossi attempted to define a design method in which the juxtaposition of a limited set of ...
2023
,
Formally verifying the correctness of software network functions (NFs) is necessary for network reliability, yet existing techniques require full source code and mandate the use of specific data structures. We describe an automated technique to verify NF b ...