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).

À propos de ce résultat
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.
Cours associés (13)
CS-107: Introduction to programming
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
CS-112(g): Object oriented programming
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
CS-522: Principles of computer systems
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
Afficher plus
Publications associées (161)

Scalable Metaprogramming in Scala 3

Nicolas Alexander Stucki

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

Metal Circus: Abstraction and Method in Aldo Rossi’s Early Work

Pier Vittorio Aureli

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

Automated Verification of Network Function Binaries

George Candea, Solal Vincenzo Pirelli

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 ...
USENIX Association2022
Afficher plus
Concepts associés (30)
Programmation orientée objet
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.
Programmation impérative
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++
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.
Afficher plus
MOOCs associés (18)
Parallelism and Concurrency
(merge of parprog1, scala-reactive, scala-spark-big-data)
Functional Programming
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
Functional Programming Principles in Scala [retired]
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-
Afficher plus

Graph Chatbot

Chattez avec Graph Search

Posez n’importe quelle question sur les cours, conférences, exercices, recherches, actualités, etc. de l’EPFL ou essayez les exemples de questions ci-dessous.

AVERTISSEMENT : Le chatbot Graph n'est pas programmé pour fournir des réponses explicites ou catégoriques à vos questions. Il transforme plutôt vos questions en demandes API qui sont distribuées aux différents services informatiques officiellement administrés par l'EPFL. Son but est uniquement de collecter et de recommander des références pertinentes à des contenus que vous pouvez explorer pour vous aider à répondre à vos questions.