Programmation impérative Un article de Wikipédia, l'encyclopédie libre. 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 — ou logique —, et de la programmation fonctionnelle. Langages impératifs et processeurs[modifier | modifier le code] La quasi-totalité des processeurs qui équipent les ordinateurs est de nature impérative : ils sont faits pour exécuter du code écrit sous forme d'opcodes (pour operation codes), qui sont des instructions élémentaires exécutables par le processeur. Instructions impératives principales[modifier | modifier le code] La plupart des langages de haut niveau comporte quatre types d'instructions principales : l'assignation ;le branchement conditionnel ;le branchement sans condition ;le bouclage. Les instructions d'assignation, en général, effectuent une opération sur l'information en mémoire et y enregistrent le résultat pour un usage ultérieur. A-0[modifier | modifier le code]
Algorithme Un article de Wikipédia, l'encyclopédie libre. Un algorithme est une suite finie et non ambiguë d’opérations ou d'instructions permettant de résoudre un problème. Le mot algorithme vient du nom latinisé du mathématicien perse Al-Khawarizmi, écrivant en langue arabe, surnommé « le père de l'algèbre »[1]. Le domaine qui étudie les algorithmes est appelé l'algorithmique. Définition générale[modifier | modifier le code] Quelques définitions connexes[modifier | modifier le code] Donald Knuth (1938‒), également professeur à l'université Stanford lista les cinq propriétés suivantes comme étant les prérequis d'un algorithme : la finitude : « Un algorithme doit toujours se terminer après un nombre fini d’étapes. »définition précise : « Chaque étape d'un algorithme doit être définie précisément, les actions à transposer doivent être spécifiées rigoureusement et sans ambiguïté pour chaque cas. »entrées : « ... des quantités qui lui sont données avant qu'un algorithme ne commence. On peut distinguer :
Programmation fonctionnelle Un article de Wikipédia, l'encyclopédie libre. Machine à états et effets secondaires[modifier | modifier le code] Programmation impérative et effets de bord[modifier | modifier le code] La programmation impérative s'appuie sur le modèle des machines à états (cf. aussi machine de Turing et Architecture de von Neumann), avec une mémoire centrale et des instructions qui modifient son état grâce à des affectations successives. On peut représenter un tel programme par une machine à états qui représente les états successifs de la mémoire. Cela nécessite pour le programmeur de connaître à tout instant un modèle exact de l'état de la mémoire que le programme modifie. Programmation fonctionnelle[modifier | modifier le code] La programmation fonctionnelle s'affranchit de façon radicale des effets secondaires (ou effets de bord) en interdisant toute opération d'affectation. Transparence référentielle[modifier | modifier le code] Des fonctions passées en paramètre[modifier | modifier le code]
Système embarqué Un article de Wikipédia, l'encyclopédie libre. Un système embarqué (ou système enfoui) est défini comme un système électronique et informatique autonome, souvent temps réel, spécialisé dans une tâche bien précise. Le terme désigne aussi bien le matériel informatique que le logiciel utilisé. Histoire[modifier | modifier le code] Le premier système moderne embarqué reconnaissable a été le Apollo Guidance Computer en 1967, le système de guidage de la mission lunaire Apollo, développé par Charles Stark Draper du Massachusetts Institute of Technology. Contraintes[modifier | modifier le code] Les systèmes embarqués exécutent des tâches prédéfinies et ont un cahier des charges contraignant à remplir, qui peut être d'ordre : De coût. Architecture[modifier | modifier le code] Caractéristiques[modifier | modifier le code] Plutôt que des systèmes universels effectuant plusieurs tâches, les systèmes embarqués sont étudiés pour effectuer des tâches précises. Fiabilité[modifier | modifier le code]
ML (langage) Un article de Wikipédia, l'encyclopédie libre. ML (contraction de Meta Language) est un langage de programmation généraliste fonctionnel. ML fut initialement développé par Robin Milner et d'autres personnes dans les années 1980 à l'Université d'Édimbourg, pour le système de preuves formelles LCF. R. ML a été standardisé en 1983, puis révisé en 1997 ; le langage résultant s'appelle Standard ML (SML), et a été notamment implémenté dans Standard ML of New Jersey (SML/NJ). Le typage de ML a été étendu avec du polymorphisme de première classe présent dans le système F de Jean-Yves Girard grâce à la thèse de Didier Le Botlan et à Didier Rémy au début des années 2000[1]. Les fonctionnalités de ML incluent : D'autres avantages du ML sont : Les points forts de ML le rendent particulièrement apte à l'écriture de langages, de compilateurs et de systèmes de preuve formelle. Les principales implémentations sont le Standard ML et OCaml. Standard ML : Portail de la programmation informatique
Compatible PC Un article de Wikipédia, l'encyclopédie libre. Pour les articles homonymes, voir PC. Un compatible PC est un ordinateur compatible avec l'IBM PC apparu en 1981. En 2012, presque tous les ordinateurs personnels sont des compatibles PC. Origines[modifier | modifier le code] L'appellation PC est utilisée même en France, pays où pourtant le PC d’IBM avait été lancé sous le nom d'Ordinateur personnel et non pas de Personal Computer (presque deux ans après sa sortie mondiale de 1981, en raison du volume de traduction à effectuer, puis des corrections nombreuses à y apporter). Historique[modifier | modifier le code] À l’origine, PC était le nom donné par IBM aux premiers micro-ordinateurs qu’elle commercialisa dès 1981 : en 1981 : l’IBM PC/G animé par le processeur Intel 8088 (variante meilleur marché du 8086) fréquence d'horloge 4,7 MHz. À l’origine, le système d'exploitation livré avec ces premières machines était soit : Aujourd’hui[modifier | modifier le code] Logiciel[modifier | modifier le code]
Caml Un article de Wikipédia, l'encyclopédie libre. Caml (prononcé camel, signifie Categorical Abstract Machine Language) est un langage de programmation généraliste conçu pour la sécurité et la fiabilité des programmes. Il se prête à des styles de programmation fonctionnelle, impérative et orientée objet. C'est de plus un langage fortement typé. Le style fonctionnel rapproche le langage Caml de l’écriture mathématique, notamment grâce à la récursivité et au filtrage par motif (pattern matching). Consortium[modifier | modifier le code] La conception et le développement du langage Caml ainsi que son environnement sont fédérés par un consortium dirigé par l'INRIA. Les extensions Caml[modifier | modifier le code] Il existe un grand nombre d'extension du Caml, permettant au langage de recouvrir le plus de concepts possibles. (en) PolyAML : A Polymorphic Aspect-oriented Functional Programming Language. Voir aussi[modifier | modifier le code] Articles connexes[modifier | modifier le code] Haskell
Douglas Engelbart Un article de Wikipédia, l'encyclopédie libre. Douglas Engelbart Douglas Engelbart en 2008. Études[modifier | modifier le code] En qualité de diplômé de Berkeley, il a participé à la construction du projet d'Ordinateur Digital de Californie, le CALDIC. Carrière[modifier | modifier le code] Engelbart dépose un brevet pour sa souris en 1967, qu'il reçoit en 1970. Quelques années plus tard, le SRI accorde une licence pour cette souris à Apple, pour une somme avoisinant les 40 000 $[4]. Comme ses recherches sur la collaboration en ligne et les interfaces homme-machine ont été financées par l'ARPA, l'ARC est chargé de créer ARPANET, un des précurseur d'Internet. L'ARC devient ainsi le premier serveur DNS, en plus d'être le gestionnaire des connexions de l'ARPANET. Engelbart passe dans une relative obscurité après 1976, en raison de problèmes divers et de malentendus. Il est progressivement mis à l'écart, voyant ses demandes d'investissement refusées, avant de démissionner en 1986.
OCaml Un article de Wikipédia, l'encyclopédie libre. OCaml est le successeur de Caml Light, auquel il a ajouté entre autres une couche de programmation objet. L'acronyme CAML provient de Categorical Abstract Machine Language, un modèle de machine abstraite qui n'est cependant plus utilisé dans les versions récentes de OCaml. Principes[modifier | modifier le code] Il intègre ces différents concepts dans un système de types hérité de ML, caractérisé par un typage statique, fort et inféré. Le système de types permet une manipulation aisée de structures de données complexes : on peut aisément représenter des types algébriques, c'est-à-dire des types hiérarchisés et potentiellement récursifs (listes, arbres…), et les manipuler aisément à l'aide du filtrage par motif. Histoire[modifier | modifier le code] En 1995, Xavier Leroy publie une version de Caml nommée Caml Special Light, qui introduit un compilateur de code natif, et un système de modules inspiré des modules de Standard ML.
OpenStack Un article de Wikipédia, l'encyclopédie libre. OpenStack est un ensemble de logiciels open source permettant de déployer des infrastructures de cloud computing (infrastructure en tant que service). La technologie possède une architecture modulaire composée de plusieurs projets corrélés (Nova, Swift, Glance...) qui permettent de contrôler les différentes ressources des machines virtuelles telles que la puissance de calcul, le stockage ou encore le réseau inhérents au centre de données sollicité. C'est un logiciel libre distribué selon les termes de la licence Apache. Historique[modifier | modifier le code] 2010 : lancement[modifier | modifier le code] Versions[modifier | modifier le code] Composants[modifier | modifier le code] Architecture conceptuelle des services OpenStack OpenStack possède une architecture modulaire qui comprend de nombreux composants[21] : Voici la liste des composants dits intégrés à OpenStack. Calcul : Nova[modifier | modifier le code] TripleO : OpenStack on OpenStack.
Pi-calcul Un article de Wikipédia, l'encyclopédie libre. Le Pi-calcul (ou π-calcul) est un langage de programmation théorique inventé par Robin Milner. Ce langage occupe dans le domaine de l'informatique parallèle et distribuée un rôle similaire à celui du λ-calcul dans l'informatique classique. La problématique[modifier | modifier le code] En tant que langage de programmation théorique (ou langage formel), le π-calcul ne vise pas à permettre de construire des programmes exécutables. L'objectif du π-calcul est de permettre d'étudier les concepts importants en programmation parallèle et distribuée, afin : Afin de construire un programme exécutable, il est nécessaire de passer par un langage de programmation concret dérivé (ou inspiré) du π-calcul, tel que JoCaml, Acute ou Nomadic Pict. Définition informelle[modifier | modifier le code] Les entités du π-calcul[modifier | modifier le code] Les constructions du π-calcul[modifier | modifier le code] Processus terminé[modifier | modifier le code] . . , composé
Linux Un article de Wikipédia, l'encyclopédie libre. Linux est le nom couramment donné à tout système d'exploitation libre fonctionnant avec le noyau Linux. C'est une implémentation libre du système UNIX respectant les spécifications POSIX. Ce système est né de la rencontre entre le mouvement du logiciel libre et le modèle de développement collaboratif et décentralisé via Internet. Son nom vient du créateur du noyau Linux, Linus Torvalds. La Free Software Foundation préfère utiliser le nom GNU/Linux, ce qui a conduit à une certaine controverse. Le système avec toutes ses applications est distribué sous la forme de distributions Linux comme Slackware, Debian ou Red Hat Enterprise Linux. Histoire[modifier | modifier le code] Naissance du noyau Linux[modifier | modifier le code] En 1991, les compatibles PC dominent le marché des ordinateurs personnels et fonctionnent généralement avec les systèmes d'exploitation MS-DOS, Windows ou OS/2. Diffusion du système[modifier | modifier le code]