LES LANGAGES DE PROGRAMMATION

Dimension: px
Commencer à balayer dès la page:

Download "LES LANGAGES DE PROGRAMMATION"

Transcription

1 LES LANGAGES DE PROGRAMMATION 27 LES LANGAGES DE PROGRAMMATION CHAPITRE 2 OBJECTIFS DÉFINIR ET PRÉCISER LE RÔLE DES LANGAGES DE PROGRAMMATION DANS L EXPLOITATION DES ORDI- NATEURS. CARACTÉRISER CES LANGAGES EN METTANT EN ÉVI- DENCE LEURS PROPRIÉTÉS LEXICALE, SYNTAXIQUE ET SÉMANTIQUE. CLASSIFIER LES LANGAGES DE PROGRAMMATION EN TENANT COMPTE DE LEUR PROXIMITÉ DU LANGAGE NATUREL ET DU TYPE DE PROGRAMMATION QU ILS PERMETTENT DE RÉALISER.

2 28 INTRODUCTION À LA PROGRAMMATION EN PASCAL/DELPHI

3 LES LANGAGES DE PROGRAMMATION 29 Dans le chapitre précédent, nous avons traité en profondeur de la notion de programme et mis en évidence l importance de l algorithme dans le processus de résolution de problème. Toutefois, si l on veut résoudre un problème donné à l aide de l ordinateur, cela nécessite, en plus de l algorithme, un langage de programmation permettant d automatiser les opérations. Ce chapitre est consacré à l étude de ces langages. Après avoir défini la notion de langage de programmation et précisé son rôle, nous passerons en revue les principales caractéristiques de ce dernier, ce qui nous amènera à une classification de ces langages. 2.1 DÉFINITION ET RÔLE DES LANGAGES On désigne par langage tout système de signes vocaux (parole) ou graphiques (écriture) permettant aux humains d exprimer leur pensée et de communiquer entre eux. Une telle définition fait davantage référence à la notion de langage naturel (ensemble fini de mots formés à partir d un alphabet, suivant une syntaxe stricte et riche en sémantique), dans la mesure où elle implique l homme plutôt que l ordinateur dans la manipulation des signes. Les langages de programmation, qui servent à commander les circuits des ordinateurs, s inspirent de la même réalité : ils permettent à l homme de communiquer avec la machine. En effet, on appelle langage de programmation, en informatique, un ensemble de signes (ou symboles) et de règles utilisés pour programmer les ordinateurs. La notion de règle est liée à la syntaxe, alors que les symboles constituent l alphabet du langage. L utilisateur qui veut transmettre ses ordres à l ordinateur le fait par l intermédiaire de langages de programmation. Ces derniers se situent en quelque sorte à mi-chemin entre le langage naturel et le langage machine. En effet, ils sont suffisamment proches des langages naturels pour que les programmes puissent être facilement écrits, compris et modifiés. De plus, ils sont définis avec rigueur, de sorte que les programmes qui les utilisent peuvent être traduits dans le langage machine de n importe quel ordinateur; il en sera question plus loin. En d autres termes, un langage de programmation assure une

4 30 INTRODUCTION À LA PROGRAMMATION EN PASCAL/DELPHI correspondance entre les opérations énoncées dans les algorithmes et les instructions du programme qui codent ces opérations. L ensemble des mots formés à partir de l alphabet constitue le vocabulaire du langage de programmation. 2.2 LES CARACTÉRISTIQUES DES LANGAGES DE PROGRAMMATION Les langages de programmation partagent avec les langages naturels un certain nombre de caractéristiques qui sont de trois ordres : lexicale, syntaxique et sémantique Les caractéristiques lexicales Un langage de programmation comprend généralement un certain nombre de symboles constituant son alphabet. Dans le cas d un langage comme PASCAL, l alphabet comprend les lettres minuscules, les lettres majuscules, les chiffres, le caractère espace ou «blanc» et divers symboles incluant les signes de ponctuation, les opérateurs et les séparateurs. Comme nous l avons vu au chapitre précédent, on distingue les opérateurs arithmétiques ( +,, *, / ), les opérateurs relationnels ou de comparaison ( <, <=, >, >=, = ) et les opérateurs logiques (NOT, AND, OR). Les symboles ( ), [ ] et { } constituent, quant à eux, des séparateurs, au même titre que la virgule, le point-virgule, le point et les deux-points. En plus de son alphabet, un langage de programmation comprend un certain nombre de règles de nature lexicale. Celles-ci spécifient le mécanisme de formation des mots du langage en question. Ainsi, le mot «aberrration», même s il n est formé que de lettres appartenant à l alphabet français, n est pas un mot de la langue française. En effet, cette langue n admet pas qu une même consonne se répète trois fois de suite. Dans tout langage de programmation, on retrouve deux catégories de mots : les mots réservés et les identificateurs. Les mots réservés (ou mots clés), comme leur nom l indique, sont définis par le langage et toute tentative de redéfinition de la part de l utilisateur donne lieu à des erreurs dites de compilation, c est-à-dire des erreurs générées au cours de la traduction du programme source en programme objet. À titre

5 LES LANGAGES DE PROGRAMMATION 31 d exemple, on peut citer, en PASCAL, le mot BEGIN qui sert à indiquer le début d un bloc d instructions et END qui en indique la fin. Quant aux identificateurs, ce sont des mots choisis par le programmeur pour représenter un objet du programme, conformément aux règles lexicales du langage. Par exemple, en PASCAL, un identificateur doit nécessairement commencer par une lettre. Ainsi, «+TARD» ne serait pas un identificateur valide, puisqu il débute par le symbole «+» Les caractéristiques syntaxiques Un langage de programmation est aussi caractérisé par sa syntaxe. En effet, même si tous les mots utilisés dans un programme sont individuellement et lexicalement valides, les instructions ou phrases qui en découlent ne le sont pas nécessairement. Une instruction d un langage donné est valide ou correcte lorsqu elle est conforme aux règles grammaticales ou syntaxiques qui définissent ce langage. Il en est ainsi d ailleurs dans les langages naturels : une phrase est correcte lorsqu elle respecte la grammaire du langage. Par exemple, la phrase «L aberration est.» est syntaxiquement incorrecte, car incomplète. La question de conformité grammaticale est intimement liée à la non-ambiguïté des phrases du langage et au respect des règles de dérivation utilisées dans la définition de la grammaire. Par règle de dérivation, on entend un formalisme selon lequel on peut combiner des mots ou symboles pour dériver des instructions ou phrases. Tout programme doit respecter la syntaxe du langage dans lequel il est écrit. On comprendra dès lors que l oubli d un simple mot ou même d un caractère dans une instruction donne lieu à des erreurs de compilation. Ce qui contribue à rendre fastidieuse la tâche de mise au point d un programme Les caractéristiques sémantiques Un langage de programmation sert essentiellement à commander les circuits électroniques qui composent un ordinateur, afin d obtenir la réponse à un problème donné. Ce dernier est préalablement résolu à travers un algorithme indiquant la séquence des

6 32 INTRODUCTION À LA PROGRAMMATION EN PASCAL/DELPHI opérations à effectuer. Le programme qui en résulte correspond donc à une suite d instructions dont le sens doit rester équivalent à l ensemble des étapes de l algorithme codé. D où la nécessité pour un langage de programmation de recourir à des instructions suffisamment significatives en regard des opérations à effectuer. Ainsi, en PASCAL, l instruction de lecture est READ, celle d écriture, WRITE. Notons que les termes anglais READ et WRITE ont pour traduction française LIRE et ÉCRIRE respectivement. Idéalement, un langage de programmation devrait être le plus proche possible du langage naturel. Cependant, il n en est pas toujours ainsi dans la réalité; ceci nous conduit à classifier les langages de programmation selon leur proximité du langage naturel. 2.3 LA CLASSIFICATION DES LANGAGES DE PROGRAMMATION En référence à leur proximité du langage naturel, les langages de programmation sont répartis en deux catégories : les langages de bas niveau et les langages de haut niveau. Il importe de caractériser chacune de ces catégories, pour ensuite traiter des nouveaux développements dans ce domaine Les langages de bas niveau Les langages de bas niveau sont plus proches de la machine que de l homme. Ils regroupent les langages machines et les langages d assemblage ou assembleurs. Le langage machine À l origine, l écriture d un programme se faisait en langage machine, à partir d un alphabet binaire, d où l appellation équivalente de langage de première génération. Ainsi, le codage de n importe quel algorithme simple se révélait une tâche fastidieuse au cours de laquelle, ne serait-ce que par distraction, il était facile de se tromper en plaçant dans la chaîne de bits d une instruction, par exemple, un zéro (0) à la place d un un (1). La figure 2.1 présente un exemple typique d un segment de programme écrit en langage machine pour calculer la somme de deux nombres.

7 LES LANGAGES DE PROGRAMMATION FIGURE 2.1 PROGRAMME D ADDITION EN LANGAGE MACHINE. Pour des raisons de lisibilité, on peut être amené à changer la base de numération. Ainsi, la figure 2.2 reproduit le même segment de programme, cette fois-ci dans le système hexadécimal (base 16) FIGURE 2.2 CODAGE EN SYSTÈME HEXADÉCIMAL. Il existe autant de langages machines que de marques d ordinateurs, selon le type de processeur dont ceux-ci peuvent être munis, ce qui ne facilite pas les choses. En effet, cela exige du programmeur qu il connaisse, pour chaque processeur, tous les codes binaires représentant les instructions et qu il sache exactement à quelle adresse de mémoire, exprimée en binaire, se trouvaient les données. C est, de toute évidence, un énorme travail de codage qui incombe à chaque fois au programmeur. Les langages machines sont donc considérés comme des langages de programmation de première génération. Par ailleurs, la plupart des utilisateurs considèrent l ordinateur comme un outil destiné à faciliter la résolution de leurs problèmes. La programmation en langage machine les oblige non seulement à connaître le fonctionnement de l outil dans les moindres détails, mais aussi les amène souvent à consacrer plus de temps à la conception de leurs programmes qu à la détermination de l algorithme de résolution. Le langage machine apparaît donc, de tous les langages de programmation, comme celui qui est le plus éloigné des problèmes à résoudre et le moins expressif.

8 34 INTRODUCTION À LA PROGRAMMATION EN PASCAL/DELPHI Le langage d assemblage Pour pallier les inconvénients manifestes du langage machine, on a eu recours au langage d assemblage. Le langage d assemblage est une forme symbolique du langage machine : alors que ce dernier est essentiellement numérique, le langage d assemblage, quant à lui, fait appel à des noms symboliques de type plutôt alphabétique pour désigner les codes d opération et les opérandes en mémoire. Aussi l appelle-t-on langage de deuxième génération. La figure 2.3 illustre un segment de programme écrit en langage d assemblage pour additionner deux nombres. LDA X (Charger le nombre X dans la cellule A) ADD Y (Ajouter le nombre Y au contenu de cette cellule) STA Z (Sauvegarder le résultat dans la cellule Z) FIGURE 2.3 PROGRAMME D ADDITION EN LANGAGE D ASSEMBLAGE. Comme tout langage de programmation, les langages d assemblage possèdent une syntaxe qui doit être respectée lors du codage de l algorithme. Ils constituent la seconde génération des langages de programmation Les langages de haut niveau Les multiples inconvénients des langages de bas niveau ont amené les spécialistes de l informatique à définir une autre catégorie de langages plus proches du langage humain : ce sont les langages de haut niveau ou de troisième génération. Ils sont appelés ainsi en raison de leur définition théoriquement indépendante de l ordinateur sur lesquels ils sont implantés. Dans cette catégorie, on retrouve les langages évolués destinés à des applications variées et les langages spécialisés qui, comme leur nom l indique, ne se prêtent qu à certains types d application. Parmi les langages évolués les plus utilisés actuellement, on peut citer : FORTRAN, BASIC, COBOL, PASCAL et C. Pour ce qui est des langages spécialisés, mentionnons SIMULA et GPSS. Dans cette section, nous allons passer en revue ces différents langages, ainsi que les notions de génération de langages de programmation et de machine-langage.

9 LES LANGAGES DE PROGRAMMATION 35 Le langage FORTRAN Le langage FORTRAN (FORmula TRANslation) a vu le jour en Premier langage de haut niveau, il a été spécialement conçu pour les applications scientifiques et d ingénierie. Actuellement, il existe plusieurs versions de ce langage, la plus récente étant le FORTRAN 77. En outre, il peut être utilisé par une variété de systèmes informatiques. FORTRAN répond bien aux exigences d un langage évolué. En effet, il permet de coder de manière plus naturelle les opérations qui doivent être exécutées par l ordinateur. À titre d exemple, l addition de deux nombres peut être réalisée par l instruction FORTRAN suivante : SOMME = X + Y Reçu avec méfiance par la communauté informatique, ce langage avait rendu moins laborieuse la tâche de mise au point des programmes. Aussi, revient-il à FORTRAN le mérite d avoir été le premier langage utilisé sur plusieurs ordinateurs de fabricants différents : c est donc le premier langage indépendant de la machine. FORTRAN reste néanmoins un langage fort peu recommandé pour les ordinateurs personnels, car trop encombrant. Le langage COBOL Le langage COBOL (COmmon Business-Oriented Language) est apparu en 1959, en réponse à des besoins de traitement de données commerciales. C est donc essentiellement un langage adapté aux applications de gestion. Il a été conçu pour que son utilisation soit indépendante du type d ordinateur. COBOL possède deux caractéristiques fondamentales. D abord, il offre à ses utilisateurs la possibilité d écrire des programmes en employant des expressions très proches des langages naturels. Par exemple, l addition de deux nombres en COBOL pourrait correspondre à l instruction suivante : ADD X TO Y GIVEN Z

10 36 INTRODUCTION À LA PROGRAMMATION EN PASCAL/DELPHI Ensuite, il accorde à la description des données une place aussi grande que celle qui est réservée aux instructions exécutables du programme. Enfin, si COBOL accuse un certain retard quant à la concision du langage, il se révèle par contre nettement en avance pour ce qui est de la prise en compte des données. Cette attention portée aux données présageait déjà des préoccupations modernes : définir le mieux possible ce sur quoi va porter le traitement algorithmique. Tout comme le FORTRAN, COBOL s accommode mal des ordinateurs personnels, en raison principalement de la taille de son compilateur qui doit résider en mémoire principale lors de son utilisation. Le langage BASIC BASIC (Beginners All-purpose Symbolic Instruction Code) a été introduit en C est un langage de haut niveau qui convient aussi bien aux applications de gestion qu à celles d ingénierie ou de type scientifique. Même si à l origine il était conçu particulièrement pour les systèmes à temps partagé, il est aujourd hui très populaire sur les ordinateurs personnels, fonctionnant essentiellement en monoprogrammation. Sur le plan syntaxique, il demeure assez proche du FORTRAN et procède du même souci de concision dans le codage des opérations. Par exemple, l addition de deux nombres en BASIC donnerait lieu à l instruction suivante : 250 Z = X + Y dans laquelle 250 n est autre que le numéro de ligne où se trouve l instruction. BASIC est un langage très populaire auprès des programmeurs débutants. Son utilisation s est de beaucoup accrue avec l avènement des ordinateurs personnels sur lesquels il en existe toujours une version. Le langage PASCAL Le langage PASCAL, qui tient son nom de l écrivain et philosophe français Blaise Pascal, a fait son apparition en C est un langage évolué, conçu par N. Wirth, dont

11 LES LANGAGES DE PROGRAMMATION 37 les domaines d application sont la gestion, la science, l ingénierie et l éducation. Il s est d abord développé dans la communauté scientifique, particulièrement dans les universités. Actuellement, il est l un des langages les plus utilisés en éducation et particulièrement sur les ordinateurs personnels. Le PASCAL est un langage facile à apprendre et qui se prête bien à l enseignement. De plus, il permet d écrire des programmes structurés et faciles à lire. La manipulation des données et des fichiers s y réalisent aisément. Contrairement aux langages évolués déjà vus, une instruction en PASCAL a un format très souple : il n y a donc pas de zones prédéterminées ni de numéros de colonne pour la placer. Enfin, il convient de noter que, par sa structure et sa philosophie de conception, PASCAL demeure un ancêtre de bien des langages de programmation moderne, dont ADA et MODULA. Le langage C Le langage C (après B) est un langage de programmation à but général, qui a fait son apparition en Ses concepteurs n ont pas voulu, à proprement parler, en faire un langage de très haut niveau, encore moins un langage spécifique à un domaine d application particulier. Toutefois, son absence de restrictions alliée à sa généralité lui donne toutes les propriétés d un puissant langage de haut niveau. C est donc un langage qui est recommandé à la fois pour les applications scientifiques, d ingénierie et de développement de logiciel. Aussi, est-il souvent utilisé pour la programmation de systèmes d exploitation, de systèmes de base de données et de traitement de texte. Le langage C est un langage moderne, qui se prête merveilleusement à la programmation modulaire. C est la raison pour laquelle les programmes écrits dans ce langage sont faciles à maintenir et transportables. Ainsi, deux programmes écrits en C, peu importent les données soumises, fourniront des résultats identiques sur deux machines différentes. Des versions sont disponibles pour des ordinateurs de toute taille. Même si C est un langage évolué suffisamment général, certaines de ces instructions demeurent proches de la machine. Dans ce sens, il apparaît comme un compromis entre les langages d assemblage et les langages de haut niveau.

12 38 INTRODUCTION À LA PROGRAMMATION EN PASCAL/DELPHI Le langage GPSS Le GPSS (General Purpose Simulation System) est le premier langage mis au point pour simuler par ordinateur des événements tels que les arrivées de bateaux dans les ports, le contrôle de la circulation dans les villes, dans les aéroports, les hôpitaux, etc. Il fut commercialisé par IBM en 1961 et reste encore très utilisé aujourd hui, comme langage spécialisé de simulation. La modélisation de phénomènes d attente, faisant appel à des notions de probabilité et de statistiques, se fait très bien avec le langage GPSS. En effet, ce dernier contient des instructions à la fois puissantes et simples pour indiquer l intervalle de temps séparant la génération de deux transactions (GENERATE) ou la moyenne et l écart du temps écoulé entre deux services (ADVANCE). Le langage SIMULA Le langage SIMULA apparut en C est un langage spécialisé, principalement utilisé pour programmer des applications de type simulation. Plus puissant et plus riche que le GPSS, il prend comme base de départ le langage ALGOL 60, et sa caractéristique principale est la structure de blocs (présente aussi en PASCAL) ou de classes qui en est la généralisation. Un bloc ou classe en SIMULA a le format suivant : BEGIN Déclaration Instruction END; SIMULA, en tant que langage spécialisé, est aujourd hui encore assez utilisé. La richesse de sa structure en fait un langage très approprié pour la programmation et le traitement de files d attente, lors de la simulation d événements de toutes sortes. Les langages de quatrième génération De nos jours, le domaine des langages de programmation est très actif. En effet, on observe à travers le monde une intense activité de recherche et de conception de

13 LES LANGAGES DE PROGRAMMATION 39 nouveaux langages, devant répondre à des besoins aussi bien généraux que spécifiques. Qu il s agisse de langages évolués à buts généraux ou de langages spécialisés, ils sont tous considérés comme des langages de haut niveau, faisant partie d une même génération de langages de programmation : la troisième, après les langages machines et les langages d assemblage. Ils se caractérisent tous par le fait qu ils sont conceptuellement indépendants des ordinateurs sur lesquels ils sont implantés et relativement proches du langage humain. D où la nécessité de recourir à un traducteur (compilateur ou interpréteur) pour la conversion des énoncés de programme en instructions du langage machine. On a observé au cours de la décennie 80 l émergence de langages de programmation dits de quatrième génération. Ces langages ont pour caractéristique principale d être directement associés à leur domaine d application. Ainsi, un programmeur qui doit développer un logiciel destiné à des transactions bancaires aurait besoin idéalement d un jeu d instructions sémantiquement représentatives des fonctions de base du domaine. On peut penser à des instructions telles que OPEN pour ouvrir un compte, DEPOSIT pour effectuer un dépôt, WITHDRAW pour effectuer un retrait, CLOSE pour fermer un compte. Il va de soi que les instructions des langages de quatrième génération sont de type impératif (quoi faire), plutôt qu algorithmique (comment faire). Les langages de manipulation de données comme SQL (Structured Query Language), les environnements statistiques SPSS (Statistical Package for the Social Sciences) et SAS (Statistical Analysis System), ainsi que les générateurs de programmes en sont des exemples. Ces langages sont généralement plus conviviaux et plus faciles à utiliser que les autres. Toutefois, ils n ont pas réussi à déloger les langages de troisième génération dont la prédominance est nette en tant qu outil généralisé de résolution de problème Les machines-langages Il existe actuellement une certaine tendance à construire des machines-langages. On désigne par machine-langage un ordinateur ayant pour langage de base un langage donné, autre que le langage machine. Les machines-lisp et les machines-prolog en sont des exemples. Avec une machine-langage, la traduction préalable à l exécution devient une fonction matérielle, plutôt que logicielle. Un tel ordinateur n a donc pas besoin de traducteur

14 40 INTRODUCTION À LA PROGRAMMATION EN PASCAL/DELPHI pour convertir les programmes écrits dans son langage de base (programme source) en programmes en langage machine (programme objet). Ceci permet de gagner en temps d exécution, mais aussi de perdre en flexibilité, puisqu on ne peut guère utiliser d autres langages sur la machine en question. C est avec l essor de l intelligence artificielle que sont apparues de telles machines. Elles étaient conçues de manière à satisfaire de nouvelles contraintes de rapidité basées, non plus sur le nombre d instructions par seconde (IPS), mais plutôt sur le nombre d inférences logiques par seconde (LIPS). Tout compte fait, l atteinte de tels objectifs semble de plus en plus liée à la définition de nouvelles architectures d ordinateur, rompant fondamentalement avec celle de von Neumann. L avenir de l intelligence artificielle en général et celle du traitement automatique des connaissances en particulier en dépendent. 2.4 LES TYPES DE PROGRAMMATION En plus de leur proximité du langage naturel, une autre façon de classifier les langages consiste à les regrouper selon le type de programmation qu ils permettent de réaliser. Ce qui nous amène à distinguer la programmation procédurale, la programmation fonctionnelle, la programmation logique et la programmation par objets La programmation procédurale La programmation procédurale, comme son nom l indique, est étroitement liée à la notion de procédure. On appelle procédure toute séquence d instructions, formant un tout cohérent auquel on donne un nom, et dont l exécution peut être demandée de plusieurs endroits d un programme appelant. Ce dernier communique en général avec la procédure par des paramètres, et son exécution est suspendue tant que celle de la procédure n est pas terminée. Dans ce contexte, on distingue deux sortes de procédures : les procédures sous-programme dont l appel est considéré comme une instruction du langage de programmation;

15 LES LANGAGES DE PROGRAMMATION 41 les procédures fonction, dont l appel ne fait que retourner une valeur éventuellement attribuable à une variable. Nonobstant cette distinction, les notions de procédure et de fonction renvoient au concept de module qui a été étudié au chapitre précédent et qui sert de base à la programmation structurée et descendante. Et le terme programmation procédurale désigne la technique de programmation consistant à indiquer à l ordinateur la séquence d instructions ou d ordres à exécuter en vue de résoudre un problème donné. Ainsi, un programme écrit dans un langage procédural ou impératif transmet une liste d instructions à une machine qui doit les exécuter dans un ordre bien défini pour produire le résultat cherché. Les langages les plus populaires actuellement dans l industrie sont de type procédural. On peut citer, entre autres, FORTRAN, COBOL, BASIC, PASCAL et C. En programmation procédurale, certaines structures de données comme les listes, les arbres et les graphes sont exprimées dans une structure prédéfinie appelée enregistrement ou article. Aussi, doit-on spécifier avec une telle structure comment ajouter et retrancher des éléments. C est donc un inconvénient qui justifie le recours à la programmation fonctionnelle La programmation fonctionnelle Le concept de programmation fonctionnelle repose sur la notion mathématique de fonction, d où la nécessité de définir cette dernière. Considérons l expression : (x + 1) Chaque fois qu on remplace x par un nombre entier et qu on évalue l expression, on obtient un nombre unique. Cette expression peut être assimilée à la machine de la figure 2.4 qui, pour tout élément x soumis en entrée, en produit le successeur. x SUCC (x + 1) FIGURE 2.4 MACHINE À SUCCESSEURS.

16 42 INTRODUCTION À LA PROGRAMMATION EN PASCAL/DELPHI On peut constater que x et son successeur sont tous deux des entiers naturels. Dans le langage mathématique, on parlerait d une fonction Succ de l ensemble des entiers naturels vers lui-même, notée : Succ: N N x (x + 1) où x est la variable et (x + 1) la valeur de la fonction. Dans les langages de programmation, on emploie plutôt le terme paramètre en lieu et place de variable qui a une acception particulière. De façon plus concise, on note : Succ(x) = (x + 1) Plus formellement, on peut définir une fonction F par la notation suivante : F: A B x F(x) Ce qui se lit : F est une fonction définie dans A à valeur dans B, qui à tout x pris dans A fait correspondre un et un seul F(x) pris dans B. A et B sont respectivement les domaines de départ et d arrivée de la fonction. Intuitivement, une fonction est une manière d associer de façon unique des éléments d un ensemble (de départ) à des éléments d un autre ensemble (d arrivée). On peut également définir la composition de fonctions, vulgairement appelée une fonction de fonction. En fait, c est une fonction dont la variable est elle-même une fonction. Par exemple, le successeur du successeur de x, noté : Succ(Succ(x)) Il existe une fonction particulière, appelée fonction identité et notée I, qui possède la propriété de laisser inchangée la variable qui lui sert d argument. On peut le définir de la manière suivante : I(x) = x Il reste maintenant à introduire la notion de fonctions réciproques ou inverses. En effet, on dit que deux fonctions F et F sont inverses l une de l autre, si et seulement si : F(F (x)) = F (F(x)) = I(x)

17 LES LANGAGES DE PROGRAMMATION 43 À titre d exemple, la fonction prédécesseur, notée Pred, est l inverse de la fonction successeur Succ. Car : Pred(Succ(x)) = Succ(Pred(x)) = x La programmation fonctionnelle consiste à utiliser des langages dont la structure et la syntaxe reposent sur les concepts mathématiques de fonction et de composition de fonctions. Les langages LOGO et LISP en sont des exemples. Dans ce type de programmation, au lieu de décrire les procédures à suivre pour résoudre un problème (comment faire), on spécifie plutôt, au moyen de fonctions, les mécanismes à mettre en œuvre (quoi faire) pour y parvenir. Par exemple, pour construire une liste en LISP, on emploie la fonction CONS dont les paramètres peuvent être soit des éléments simples appelés atomes, soit des sous-listes : Toujours en LISP, on a : CONS((A, B), C) = (A, B, C) CAR(A, B, C) = A CDR(A, B, C) = (B, C) CAR(CDR(A, B, C) = CAR(B, C) = B Les programmes fonctionnels sont en général plus courts, mais plus abstraits que leurs équivalents procéduraux. De plus, ils se prêtent mieux à une analyse et à une manipulation formelles, ce qui en font des programmes relativement faciles à maintenir. Quant aux langages fonctionnels, ils sont dotés d une grande capacité de traitement symbolique. D où leur adéquation à résoudre les problèmes d intelligence artificielle où la manipulation porte sur des données symboliques plutôt que numériques La programmation logique Toujours à la recherche de techniques informatiques plus rigoureuses et plus puissantes pour manipuler des connaissances, l intelligence artificielle en est venue à utiliser la logique comme langage de programmation, ce qui a conduit à un nouveau type relativement simplifié de programmation, baptisé à juste titre programmation logique. Le langage PROLOG, conçu par A. Colmerauer au début des années soixante-dix, en demeure le plus authentique représentant.

18 44 INTRODUCTION À LA PROGRAMMATION EN PASCAL/DELPHI La programmation logique s est développée à partir des clauses de Horn. Ce sont des formules de la forme : (implique) (A 1 & A 2 &... & A n ) B où les A i et B sont des termes, c est-à-dire soit des constantes ou des variables, soit des expressions p(t 1,..., t n ) dans lesquelles p désigne un prédicat et les t i sont eux-mêmes des termes. Un très grand nombre de connaissances peuvent être décrites de cette manière. Par exemple, la formule qui définit la transitivité des liens de parenté (les parents de nos parents sont nos grands-parents) est une clause de Horn : parent(x, y) & parent(y, z) grands-parents(x, z) Dans cette formule, parent(x, y) signifie que x est le parent de y. En outre, même une proposition élémentaire, un fait, peut se présenter comme une clause de Horn dont la partie condition est remplacée par la valeur logique VRAI : VRAI B Voici des données exprimant des relations entre plusieurs individus d une même famille : VRAI VRAI VRAI VRAI mère(laurie, Stéphane) frère(stéphane, Sabine) père(samuel, Stéphane) mère(laurie, Sabine) La programmation logique se fonde sur le principe que programmer, c est prouver. Elle utilise un mode déclaratif, dans lequel le problème à résoudre est décrit de façon suffisamment précise, mais sans donner explicitement la manière de le résoudre. L interprète du langage se charge alors de trouver l ensemble des solutions qui satisfont cette description. Par exemple, si l on désire connaître les parents de Sabine, il suffit de poser la question : parents(x, Sabine)

19 LES LANGAGES DE PROGRAMMATION 45 et l on obtiendra l ensemble des solutions, c est-à-dire l ensemble des x qui correspondent à ce but, dans les connaissances exprimées sous forme de clauses de Horn : x = Laurie x = Samuel Imaginons que l on veuille obtenir l ensemble des couples (x, y) tels que x est mère de y. Il suffit de poser la question : et le système affichera : mère(x, y) x = Laurie, y = Stéphane x = Laurie, y = Sabine Au début des années 80, les Japonais ont fait part au monde entier de leur ambitieux projet de mise au point d ordinateurs de la cinquième génération, orientés vers les applications d intelligence artificielle. Le langage de base retenu pour de telles machines a été PROLOG. Depuis, on observa un regain d intérêt grandissant pour ce langage. On en a pour preuve la multiplicité des équipes de recherche qui s y consacrent et la prolifération des versions de ce langage qui, somme toute, se prêtent bien à l exécution rapide d inférences logiques La programmation par objets La programmation par objets, comme son nom l indique, repose sur la notion d objet. On retrouve dans la littérature plusieurs termes qui s apparentent à ce concept. En effet, dans les travaux sur la mémoire en psychologie cognitive, on parle souvent de schéma. Dans le domaine du traitement des langages naturels, on emploie tour à tour les termes frame, script et prototype, les deux premiers n ayant pas d équivalents français. De nos jours, le parti semble être pris pour utiliser le terme objet dont la connotation s avère bien la plus générale. On désigne par objet une structure de connaissances constituée d un certain nombre d aspects ou d attributs. Ces derniers ne sont autres que les noms des propriétés qui caractérisent l objet. Par exemple, un objet Employé peut admettre pour attributs Nom,

20 46 INTRODUCTION À LA PROGRAMMATION EN PASCAL/DELPHI Sexe, Âge, Adresse, Profession et Numéro. De plus, à chaque aspect on peut associer des facettes telles que valeurs-possibles qui définit le domaine des valeurs que peut prendre cet aspect, ou valeurs-défaut qui spécifie la valeur par défaut de celui-ci. Ainsi, on peut attribuer à Âge la valeur par défaut 45. Les langages orientés objets sont devenus depuis quelques années un outil de base de la représentation des connaissances en intelligence artificielle. Ils possèdent deux propriétés fondamentales. D abord, ils rendent possible la description d objets hiérarchisés, avec transmission de propriétés en provenance des parents. D autre part, ils permettent dans une certaine mesure de tirer parti des avantages de la programmation procédurale, par le biais des attachements procéduraux, appelés démons, intégrés aux objets. Par exemple, un Employé cadre, ayant Employé pour parent dans une hiérarchie, peut être décrit par les attributs suivants : Nom, Sexe, Adresse, Âge, Fonction. Chacun de ces attributs peut avoir une valeur et une valeur par défaut. La valeur de l attribut Âge peut être prise égale à 45, par transmission de la valeur par défaut de son parent Employé. On peut également avoir une facette appelée Salaire, qui est en fait un démon permettant de calculer le salaire de cet employé cadre. SMALLTALK, considéré comme un dérivé du langage SIMULA, est le premier véritable langage orienté objet qui a été mis au point. Dans ce langage, tout est objet et tout objet se définit à la fois par son état (les attributs statiques) et par les opérations qu on lui applique (les attributs dynamiques). Les attributs statiques correspondent en réalité à de simples champs (d un enregistrement). SMALLTALK intègre les concepts de méthode (démon) et de communication par échange de messages. On y retrouve également les concepts d instance (fils) et de classe (parent) qui caractérise une hiérarchie. Une instance appartient à une classe dont elle hérite des propriétés et des opérations définies pour cette classe. SMALLTALK est actuellement disponible sur des machines de plus en plus nombreuses. La vogue des langages orientés objets dépasse le simple phénomène SMALLTALK. De très nombreux langages faisant explicitement référence aux mêmes concepts sont disponibles ou apparaissent actuellement. On peut citer, entre autres, LOOPS, C ++, VISUAL BASIC, PASCAL OBJET et FLAVORS. Ces langages ont des champs d application très divers, mais ils ressemblent tous, sous certains aspects, à SMALLTALK.

Évaluation et implémentation des langages

Évaluation et implémentation des langages Évaluation et implémentation des langages Les langages de programmation et le processus de programmation Critères de conception et d évaluation des langages de programmation Les fondations de l implémentation

Plus en détail

LES TYPES DE DONNÉES DU LANGAGE PASCAL

LES TYPES DE DONNÉES DU LANGAGE PASCAL LES TYPES DE DONNÉES DU LANGAGE PASCAL 75 LES TYPES DE DONNÉES DU LANGAGE PASCAL CHAPITRE 4 OBJECTIFS PRÉSENTER LES NOTIONS D ÉTIQUETTE, DE CONS- TANTE ET DE IABLE DANS LE CONTEXTE DU LAN- GAGE PASCAL.

Plus en détail

Cours 1 : La compilation

Cours 1 : La compilation /38 Interprétation des programmes Cours 1 : La compilation Yann Régis-Gianas yrg@pps.univ-paris-diderot.fr PPS - Université Denis Diderot Paris 7 2/38 Qu est-ce que la compilation? Vous avez tous déjà

Plus en détail

Préparation à l examen EFA en Macro

Préparation à l examen EFA en Macro Préparation à l examen EFA en Macro Exercice sur les macros en Word / Excel Les questions suivantes doivent constituer un bref rafraîchissement et vous aider à situer le niveau de vos connaissances : Question

Plus en détail

Arithmétique binaire. Chapitre. 5.1 Notions. 5.1.1 Bit. 5.1.2 Mot

Arithmétique binaire. Chapitre. 5.1 Notions. 5.1.1 Bit. 5.1.2 Mot Chapitre 5 Arithmétique binaire L es codes sont manipulés au quotidien sans qu on s en rende compte, et leur compréhension est quasi instinctive. Le seul fait de lire fait appel au codage alphabétique,

Plus en détail

Initiation à la Programmation en Logique avec SISCtus Prolog

Initiation à la Programmation en Logique avec SISCtus Prolog Initiation à la Programmation en Logique avec SISCtus Prolog Identificateurs Ils sont représentés par une suite de caractères alphanumériques commençant par une lettre minuscule (les lettres accentuées

Plus en détail

Machines virtuelles Cours 1 : Introduction

Machines virtuelles Cours 1 : Introduction Machines virtuelles Cours 1 : Introduction Pierre Letouzey 1 pierre.letouzey@inria.fr PPS - Université Denis Diderot Paris 7 janvier 2012 1. Merci à Y. Régis-Gianas pour les transparents Qu est-ce qu une

Plus en détail

Éléments de programmation et introduction à Java

Éléments de programmation et introduction à Java Éléments de programmation et introduction à Java Jean-Baptiste Vioix (jean-baptiste.vioix@iut-dijon.u-bourgogne.fr) IUT de Dijon-Auxerre - LE2I http://jb.vioix.free.fr 1-20 Les différents langages informatiques

Plus en détail

Algorithme. Table des matières

Algorithme. Table des matières 1 Algorithme Table des matières 1 Codage 2 1.1 Système binaire.............................. 2 1.2 La numérotation de position en base décimale............ 2 1.3 La numérotation de position en base binaire..............

Plus en détail

Représentation des Nombres

Représentation des Nombres Chapitre 5 Représentation des Nombres 5. Representation des entiers 5.. Principe des représentations en base b Base L entier écrit 344 correspond a 3 mille + 4 cent + dix + 4. Plus généralement a n a n...

Plus en détail

Information utiles. cinzia.digiusto@gmail.com. webpage : Google+ : http://www.ibisc.univ-evry.fr/ digiusto/

Information utiles. cinzia.digiusto@gmail.com. webpage : Google+ : http://www.ibisc.univ-evry.fr/ digiusto/ Systèmes de gestion de bases de données Introduction Université d Evry Val d Essonne, IBISC utiles email : cinzia.digiusto@gmail.com webpage : http://www.ibisc.univ-evry.fr/ digiusto/ Google+ : https://plus.google.com/u/0/b/103572780965897723237/

Plus en détail

Le génie logiciel. maintenance de logiciels.

Le génie logiciel. maintenance de logiciels. Le génie logiciel Définition de l IEEE (IEEE 1990): L application d une approche systématique, disciplinée et quantifiable pour le développement, l opération et la maintenance de logiciels. Introduction

Plus en détail

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation Base de données S. Lèbre slebre@unistra.fr Université de Strasbourg, département d informatique. Présentation du module Contenu général Notion de bases de données Fondements / Conception Utilisation :

Plus en détail

Cours Informatique 1. Monsieur SADOUNI Salheddine

Cours Informatique 1. Monsieur SADOUNI Salheddine Cours Informatique 1 Chapitre 2 les Systèmes Informatique Monsieur SADOUNI Salheddine Un Système Informatique lesystème Informatique est composé de deux parties : -le Matériel : constitué de l unité centrale

Plus en détail

La mémoire. Un ordinateur. L'octet. Le bit

La mémoire. Un ordinateur. L'octet. Le bit Introduction à l informatique et à la programmation Un ordinateur Un ordinateur est une machine à calculer composée de : un processeur (ou unité centrale) qui effectue les calculs une mémoire qui conserve

Plus en détail

Cours d Algorithmique et de Langage C 2005 - v 3.0

Cours d Algorithmique et de Langage C 2005 - v 3.0 Cours d Algorithmique et de Langage C 2005 - v 3.0 Bob CORDEAU cordeau@onera.fr Mesures Physiques IUT d Orsay 15 mai 2006 Avant-propos Avant-propos Ce cours en libre accès repose sur trois partis pris

Plus en détail

programmation S initier à la la Avec des exemples en C, C++, C#, Java et PHP Avec des exemples en C, C++, C#, Java et PHP Claude Delannoy

programmation S initier à la la Avec des exemples en C, C++, C#, Java et PHP Avec des exemples en C, C++, C#, Java et PHP Claude Delannoy Claude Delannoy S initier à la la programmation Avec des exemples en Avec des exemples en C, C++, C#, Java et PHP C, C++, C#, Java et PHP S initier à la programmation Avec des exemples en C, C++, C#, Java

Plus en détail

UE Programmation Impérative Licence 2ème Année 2014 2015

UE Programmation Impérative Licence 2ème Année 2014 2015 UE Programmation Impérative Licence 2 ème Année 2014 2015 Informations pratiques Équipe Pédagogique Florence Cloppet Neilze Dorta Nicolas Loménie prenom.nom@mi.parisdescartes.fr 2 Programmation Impérative

Plus en détail

Bases de programmation. Cours 5. Structurer les données

Bases de programmation. Cours 5. Structurer les données Bases de programmation. Cours 5. Structurer les données Pierre Boudes 1 er décembre 2014 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License. Types char et

Plus en détail

Cours Bases de données

Cours Bases de données Informations sur le cours Cours Bases de données 9 (10) séances de 3h Polycopié (Cours + TD/TP) 3 année (MISI) Antoine Cornuéjols www.lri.fr/~antoine antoine.cornuejols@agroparistech.fr Transparents Disponibles

Plus en détail

Créer le schéma relationnel d une base de données ACCESS

Créer le schéma relationnel d une base de données ACCESS Utilisation du SGBD ACCESS Polycopié réalisé par Chihab Hanachi et Jean-Marc Thévenin Créer le schéma relationnel d une base de données ACCESS GENERALITES SUR ACCESS... 1 A PROPOS DE L UTILISATION D ACCESS...

Plus en détail

Programmation C. Apprendre à développer des programmes simples dans le langage C

Programmation C. Apprendre à développer des programmes simples dans le langage C Programmation C Apprendre à développer des programmes simples dans le langage C Notes de cours sont disponibles sur http://astro.u-strasbg.fr/scyon/stusm (attention les majuscules sont importantes) Modalités

Plus en détail

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP COURS PROGRAMMATION INITIATION AU LANGAGE C SUR MICROCONTROLEUR PIC page 1 / 7 INITIATION AU LANGAGE C SUR PIC DE MICROSHIP I. Historique du langage C 1972 : naissance du C dans les laboratoires BELL par

Plus en détail

Transmission d informations sur le réseau électrique

Transmission d informations sur le réseau électrique Transmission d informations sur le réseau électrique Introduction Remarques Toutes les questions en italique devront être préparées par écrit avant la séance du TP. Les préparations seront ramassées en

Plus en détail

Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski cegielski@u-pec.fr

Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski cegielski@u-pec.fr Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski cegielski@u-pec.fr Mars 2002 Pour Irène et Marie Legal Notice Copyright c 2002 Patrick Cégielski Université

Plus en détail

1 Introduction et installation

1 Introduction et installation TP d introduction aux bases de données 1 TP d introduction aux bases de données Le but de ce TP est d apprendre à manipuler des bases de données. Dans le cadre du programme d informatique pour tous, on

Plus en détail

Chapitre I Notions de base et outils de travail

Chapitre I Notions de base et outils de travail Chapitre I Notions de base et outils de travail Objectifs Connaître les principes fondateurs et l historique du langage Java S informer des principales caractéristiques du langage Java Connaître l environnement

Plus en détail

Présentation du PL/SQL

Présentation du PL/SQL I Présentation du PL/ Copyright Oracle Corporation, 1998. All rights reserved. Objectifs du Cours A la fin de ce chapitre, vous saurez : Décrire l intéret du PL/ Décrire l utilisation du PL/ pour le développeur

Plus en détail

FOIRE AUX QUESTIONS PAIEMENT PAR INTERNET. Nom de fichier : Monetico_Paiement_Foire_aux_Questions_v1.7 Numéro de version : 1.7 Date : 2014-05-29

FOIRE AUX QUESTIONS PAIEMENT PAR INTERNET. Nom de fichier : Monetico_Paiement_Foire_aux_Questions_v1.7 Numéro de version : 1.7 Date : 2014-05-29 FOIRE AUX QUESTIONS PAIEMENT PAR INTERNET Nom de fichier : Monetico_Paiement_Foire_aux_Questions_v1.7 Numéro de version : 1.7 Date : 2014-05-29 FOIRE AUX QUESTIONS Confidentiel Titre du document : Monetico

Plus en détail

Chapitre 1 : Introduction aux bases de données

Chapitre 1 : Introduction aux bases de données Chapitre 1 : Introduction aux bases de données Les Bases de Données occupent aujourd'hui une place de plus en plus importante dans les systèmes informatiques. Les Systèmes de Gestion de Bases de Données

Plus en détail

Chapitre 1 I:\ Soyez courageux!

Chapitre 1 I:\ Soyez courageux! Chapitre 1 I:\ Soyez courageux! Pour ne rien vous cacher, le langage d'assembleur (souvent désigné sous le terme "Assembleur", bien que ce soit un abus de langage, puisque "Assembleur" désigne le logiciel

Plus en détail

Chapitre 2. Eléments pour comprendre un énoncé

Chapitre 2. Eléments pour comprendre un énoncé Chapitre 2 Eléments pour comprendre un énoncé Ce chapitre est consacré à la compréhension d un énoncé. Pour démontrer un énoncé donné, il faut se reporter au chapitre suivant. Les tables de vérité données

Plus en détail

Les Langages Informatiques

Les Langages Informatiques Les Langages Informatiques Les évolutions Michel Riguidel (riguidel@enst.fr) Table des Matières Table des Matières 2 Segmentation Informatique 3 Autrefois 3 Maintenant 3 Informatique 3 Informatique, Ordinateur,

Plus en détail

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux. UEO11 COURS/TD 1 Contenu du semestre Cours et TDs sont intégrés L objectif de ce cours équivalent a 6h de cours, 10h de TD et 8h de TP est le suivant : - initiation à l algorithmique - notions de bases

Plus en détail

Logiciel de Base. I. Représentation des nombres

Logiciel de Base. I. Représentation des nombres Logiciel de Base (A1-06/07) Léon Mugwaneza ESIL/Dépt. Informatique (bureau A118) mugwaneza@univmed.fr I. Représentation des nombres Codage et représentation de l'information Information externe formats

Plus en détail

IV- Comment fonctionne un ordinateur?

IV- Comment fonctionne un ordinateur? 1 IV- Comment fonctionne un ordinateur? L ordinateur est une alliance du hardware (le matériel) et du software (les logiciels). Jusqu à présent, nous avons surtout vu l aspect «matériel», avec les interactions

Plus en détail

Codage d information. Codage d information : -Définition-

Codage d information. Codage d information : -Définition- Introduction Plan Systèmes de numération et Représentation des nombres Systèmes de numération Système de numération décimale Représentation dans une base b Représentation binaire, Octale et Hexadécimale

Plus en détail

Rappels sur les suites - Algorithme

Rappels sur les suites - Algorithme DERNIÈRE IMPRESSION LE 14 septembre 2015 à 12:36 Rappels sur les suites - Algorithme Table des matières 1 Suite : généralités 2 1.1 Déition................................. 2 1.2 Exemples de suites............................

Plus en détail

Université de Bangui. Modélisons en UML

Université de Bangui. Modélisons en UML Université de Bangui CRM Modélisons en UML Ce cours a été possible grâce à l initiative d Apollinaire MOLAYE qui m a contacté pour vous faire bénéficier de mes connaissances en nouvelles technologies et

Plus en détail

Compilation (INF 564)

Compilation (INF 564) Présentation du cours Le processeur MIPS Programmation du MIPS 1 Compilation (INF 564) Introduction & architecture MIPS François Pottier 10 décembre 2014 Présentation du cours Le processeur MIPS Programmation

Plus en détail

Chapitre VI- La validation de la composition.

Chapitre VI- La validation de la composition. Chapitre VI- La validation de la composition. Objectifs du chapitre : Expliquer les conséquences de l utilisation de règles de typage souples dans SEP. Présenter le mécanisme de validation des connexions

Plus en détail

GUIDE D UTILISATION DE LA BASE DE DONNEES SUR LES PROJETS EXISTANTS ET PREVUS

GUIDE D UTILISATION DE LA BASE DE DONNEES SUR LES PROJETS EXISTANTS ET PREVUS RÉPUBLIQUE DU RWANDA MINISTÈRE DE L AGRICULTURE ET DE L ÉLEVAGE PO Box 621- Kigali; Tél/Fax: 584644-585008 PLAN STRATEGIQUE DE TRANSFORMATION DE L AGRICULTURE AU RWANDA GUIDE D UTILISATION DE LA BASE DE

Plus en détail

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES Dossier G11 - Interroger une base de données La base de données Facturation contient tout un ensemble d'informations concernant la facturation de la SAFPB (société anonyme de fabrication de produits de

Plus en détail

Traduction des Langages : Le Compilateur Micro Java

Traduction des Langages : Le Compilateur Micro Java BARABZAN Jean-René OUAHAB Karim TUCITO David 2A IMA Traduction des Langages : Le Compilateur Micro Java µ Page 1 Introduction Le but de ce projet est d écrire en JAVA un compilateur Micro-Java générant

Plus en détail

GPA770 Microélectronique appliquée Exercices série A

GPA770 Microélectronique appliquée Exercices série A GPA770 Microélectronique appliquée Exercices série A 1. Effectuez les calculs suivants sur des nombres binaires en complément à avec une représentation de 8 bits. Est-ce qu il y a débordement en complément

Plus en détail

ASR1 TD7 : Un microprocesseur RISC 16 bits

ASR1 TD7 : Un microprocesseur RISC 16 bits {Â Ö Ñ º ØÖ Ý,È ØÖ ºÄÓ Ù,Æ ÓÐ ºÎ ÝÖ Ø¹ ÖÚ ÐÐÓÒ} Ò ¹ÐÝÓÒº Ö ØØÔ»»Ô Ö Óº Ò ¹ÐÝÓÒº Ö» Ö Ñ º ØÖ Ý»¼ Ö½» ASR1 TD7 : Un microprocesseur RISC 16 bits 13, 20 et 27 novembre 2006 Présentation générale On choisit

Plus en détail

WINDOWS SHAREPOINT SERVICES 2007

WINDOWS SHAREPOINT SERVICES 2007 WINDOWS SHAREPOINT SERVICES 2007 I. TABLE DES MATIÈRES II. Présentation des «content types» (Type de contenu)... 2 III. La pratique... 4 A. Description du cas... 4 B. Création des colonnes... 6 C. Création

Plus en détail

Introduction aux Bases de Données Relationnelles Conclusion - 1

Introduction aux Bases de Données Relationnelles Conclusion - 1 Pratique d un : MySQL Objectifs des bases de données Où en sommes nous? Finalement, qu est-ce qu un? Modèle relationnel Algèbre relationnelle Conclusion SQL Conception et rétro-conception Protection de

Plus en détail

Sciences de Gestion Spécialité : SYSTÈMES D INFORMATION DE GESTION

Sciences de Gestion Spécialité : SYSTÈMES D INFORMATION DE GESTION Sciences de Gestion Spécialité : SYSTÈMES D INFORMATION DE GESTION Classe de terminale de la série Sciences et Technologie du Management et de la Gestion Préambule Présentation Les technologies de l information

Plus en détail

Logiciel Libre Cours 3 Fondements: Génie Logiciel

Logiciel Libre Cours 3 Fondements: Génie Logiciel Logiciel Libre Cours 3 Fondements: Génie Logiciel Stefano Zacchiroli zack@pps.univ-paris-diderot.fr Laboratoire PPS, Université Paris Diderot 2013 2014 URL http://upsilon.cc/zack/teaching/1314/freesoftware/

Plus en détail

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB www.enseirb.fr/~legal Olivier Augereau Formation UML

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB www.enseirb.fr/~legal Olivier Augereau Formation UML basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB www.enseirb.fr/~legal Olivier Augereau Formation UML http://olivier-augereau.com Sommaire Introduction I) Les bases II) Les diagrammes

Plus en détail

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application Université de Provence Licence Math-Info Première Année V. Phan Luong Algorithmique et Programmation en Python Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application 1 Ordinateur Un

Plus en détail

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits Architecture des ordinateurs TD1 - Portes logiques et premiers circuits 1 Rappel : un peu de logique Exercice 1.1 Remplir la table de vérité suivante : a b a + b ab a + b ab a b 0 0 0 1 1 0 1 1 Exercice

Plus en détail

Université Paris-Dauphine DUMI2E 1ère année, 2009-2010. Applications

Université Paris-Dauphine DUMI2E 1ère année, 2009-2010. Applications Université Paris-Dauphine DUMI2E 1ère année, 2009-2010 Applications 1 Introduction Une fonction f (plus précisément, une fonction réelle d une variable réelle) est une règle qui associe à tout réel x au

Plus en détail

MIS 102 Initiation à l Informatique

MIS 102 Initiation à l Informatique MIS 102 Initiation à l Informatique Responsables et cours : Cyril Gavoille Catherine Pannier Matthias Robine Marc Zeitoun Planning : 6 séances de cours 5 séances de TD (2h40) 4 séances de TP (2h40) + environ

Plus en détail

LES DECIMALES DE π BERNARD EGGER

LES DECIMALES DE π BERNARD EGGER LES DECIMALES DE π BERNARD EGGER La génération de suites de nombres pseudo aléatoires est un enjeu essentiel pour la simulation. Si comme le dit B Ycard dans le cours écrit pour le logiciel SEL, «Paradoxalement,

Plus en détail

Analyse,, Conception des Systèmes Informatiques

Analyse,, Conception des Systèmes Informatiques Analyse,, Conception des Systèmes Informatiques Méthode Analyse Conception Introduction à UML Génie logiciel Définition «Ensemble de méthodes, techniques et outils pour la production et la maintenance

Plus en détail

Cours 1 : Qu est-ce que la programmation?

Cours 1 : Qu est-ce que la programmation? 1/65 Introduction à la programmation Cours 1 : Qu est-ce que la programmation? Yann Régis-Gianas yrg@pps.univ-paris-diderot.fr Université Paris Diderot Paris 7 2/65 1. Sortez un appareil qui peut se rendre

Plus en détail

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN Les contenues de ce document sont la propriété exclusive de la société REVER. Ils ne sont transmis qu à titre d information et ne peuvent en aucun cas

Plus en détail

Chapitre 10 Arithmétique réelle

Chapitre 10 Arithmétique réelle Chapitre 10 Arithmétique réelle Jean Privat Université du Québec à Montréal INF2170 Organisation des ordinateurs et assembleur Automne 2013 Jean Privat (UQAM) 10 Arithmétique réelle INF2170 Automne 2013

Plus en détail

Python - introduction à la programmation et calcul scientifique

Python - introduction à la programmation et calcul scientifique Université de Strasbourg Environnements Informatique Python - introduction à la programmation et calcul scientifique Feuille de TP 1 Avant de commencer Le but de ce TP est de vous montrer les bases de

Plus en détail

Intelligence Artificielle et Systèmes Multi-Agents. Badr Benmammar bbm@badr-benmammar.com

Intelligence Artificielle et Systèmes Multi-Agents. Badr Benmammar bbm@badr-benmammar.com Intelligence Artificielle et Systèmes Multi-Agents Badr Benmammar bbm@badr-benmammar.com Plan La première partie : L intelligence artificielle (IA) Définition de l intelligence artificielle (IA) Domaines

Plus en détail

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions Cours d introduction à l informatique Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions Qu est-ce qu un Une recette de cuisine algorithme? Protocole expérimental

Plus en détail

M1805 - Études et développement informatique

M1805 - Études et développement informatique Appellations Analyste cogniticien / cogniticienne informatique Analyste concepteur / conceptrice informatique Concepteur / Conceptrice analyste informatique Concepteur / Conceptrice d'application informatique

Plus en détail

Introduction aux Bases de Données

Introduction aux Bases de Données Introduction aux Bases de Données I. Bases de données I. Bases de données Les besoins Qu est ce qu un SGBD, une BD Architecture d un SGBD Cycle de vie Plan du cours Exemples classiques d'applications BD

Plus en détail

IFT2880 Organisation des ordinateurs et systèmes

IFT2880 Organisation des ordinateurs et systèmes Représentation des nombres flottants Notation exponentielle Représentations équivalentes dans la base 10 de 1,234 1 2 3, 4 0 0. 0 x 1 0-2 1 2, 3 4 0. 0 x 1 0-1 1, 2 3 4. 0 x 1 0 1 2 3. 4 x 1 0 1 2. 3 4

Plus en détail

Base de données relationnelle et requêtes SQL

Base de données relationnelle et requêtes SQL Base de données relationnelle et requêtes SQL 1e partie Anne-Marie Cubat Une question pour commencer : que voyez-vous? Cela reste flou Les plans de «Prison Break»? Non, cherchons ailleurs! Et de plus près,

Plus en détail

Cours Base de données relationnelles. M. Boughanem, IUP STRI

Cours Base de données relationnelles. M. Boughanem, IUP STRI Cours Base de données relationnelles 1 Plan 1. Notions de base 2. Modèle relationnel 3. SQL 2 Notions de base (1) Définition intuitive : une base de données est un ensemble d informations, (fichiers),

Plus en détail

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java Langages objets Introduction M2 Pro CCI, Informatique Emmanuel Waller, LRI, Orsay présentation du module logistique 12 blocs de 4h + 1 bloc 2h = 50h 1h15 cours, 45mn exercices table, 2h TD machine page

Plus en détail

Chap 4: Analyse syntaxique. Prof. M.D. RAHMANI Compilation SMI- S5 2013/14 1

Chap 4: Analyse syntaxique. Prof. M.D. RAHMANI Compilation SMI- S5 2013/14 1 Chap 4: Analyse syntaxique 1 III- L'analyse syntaxique: 1- Le rôle d'un analyseur syntaxique 2- Grammaires non contextuelles 3- Ecriture d'une grammaire 4- Les méthodes d'analyse 5- L'analyse LL(1) 6-

Plus en détail

clef primaire ; clef étrangère ; projection ; restriction ; jointure ; SQL ; SELECT ; FROM ; WHERE

clef primaire ; clef étrangère ; projection ; restriction ; jointure ; SQL ; SELECT ; FROM ; WHERE Cas Neptune hôtel Base de données et langage SQL Propriété Intitulé long Formation concernée Matière Notions Transversalité Présentation Description Neptune Hôtel. L interrogation d une base de données

Plus en détail

CESI Bases de données

CESI Bases de données CESI Bases de données Introduction septembre 2006 Bertrand LIAUDET EPF - BASE DE DONNÉES - septembre 2005 - page 1 PRÉSENTATION GÉNÉRALE 1. Objectifs généraux L objectif de ce document est de faire comprendre

Plus en détail

Sélection d un moteur de recherche pour intranet : Les sept points à prendre en compte

Sélection d un moteur de recherche pour intranet : Les sept points à prendre en compte Sélection d un moteur de recherche pour intranet : Les sept points à prendre en compte 1Les bases : vos objectifs 2 Sélection d un moteur de recherche pour intranet : Les sept points à prendre en compte

Plus en détail

Processus d Informatisation

Processus d Informatisation Processus d Informatisation Cheminement de la naissance d un projet jusqu à son terme, deux grandes étapes : Recherche ou étude de faisabilité (en amont) L utilisateur a une idée (plus ou moins) floue

Plus en détail

IFT3030 Base de données. Chapitre 2 Architecture d une base de données

IFT3030 Base de données. Chapitre 2 Architecture d une base de données IFT3030 Base de données Chapitre 2 Architecture d une base de données Plan du cours Introduction Architecture Modèles de données Modèle relationnel Algèbre relationnelle SQL Conception Fonctions avancées

Plus en détail

Travaux pratiques. Compression en codage de Huffman. 1.3. Organisation d un projet de programmation

Travaux pratiques. Compression en codage de Huffman. 1.3. Organisation d un projet de programmation Université de Savoie Module ETRS711 Travaux pratiques Compression en codage de Huffman 1. Organisation du projet 1.1. Objectifs Le but de ce projet est d'écrire un programme permettant de compresser des

Plus en détail

Manuel d utilisation 26 juin 2011. 1 Tâche à effectuer : écrire un algorithme 2

Manuel d utilisation 26 juin 2011. 1 Tâche à effectuer : écrire un algorithme 2 éducalgo Manuel d utilisation 26 juin 2011 Table des matières 1 Tâche à effectuer : écrire un algorithme 2 2 Comment écrire un algorithme? 3 2.1 Avec quoi écrit-on? Avec les boutons d écriture........

Plus en détail

Architecture de l ordinateur

Architecture de l ordinateur Architecture de l ordinateur Emmanuel Lazard Université Paris-Dauphine mars 2011 Computers are my forte! BRAZIL (Terry Gilliam, 1985) Ce document a initialement été publié sous forme de livre : Emmanuel

Plus en détail

V- Manipulations de nombres en binaire

V- Manipulations de nombres en binaire 1 V- Manipulations de nombres en binaire L ordinateur est constitué de milliards de transistors qui travaillent comme des interrupteurs électriques, soit ouverts soit fermés. Soit la ligne est activée,

Plus en détail

Langage SQL (1) 4 septembre 2007. IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

Langage SQL (1) 4 septembre 2007. IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes Langage SQL (1) Sébastien Limet Denys Duchier IUT Orléans 4 septembre 2007 Notions de base qu est-ce qu une base de données? SGBD différents type de bases de données quelques systèmes existants Définition

Plus en détail

//////////////////////////////////////////////////////////////////// Administration bases de données

//////////////////////////////////////////////////////////////////// Administration bases de données ////////////////////// Administration bases de données / INTRODUCTION Système d informations Un système d'information (SI) est un ensemble organisé de ressources (matériels, logiciels, personnel, données

Plus en détail

CRÉER UN COURS EN LIGNE

CRÉER UN COURS EN LIGNE Anne DELABY CRÉER UN COURS EN LIGNE Deuxième édition, 2006, 2008 ISBN : 978-2-212-54153-3 2 Que recouvre le concept d interactivité? Dans une perspective de cours en ligne, une activité interactive est

Plus en détail

M1805 - Études et développement informatique

M1805 - Études et développement informatique Appellations (Métiers courants) Analyste décisionnel - Business Intelligence Analyste organique informatique Analyste-programmeur / Analyste-programmeuse informatique Chef de projet étude et développement

Plus en détail

1 Introduction au codage

1 Introduction au codage CélestineOscarDésiréAnatoleGastonEugène 1 Introduction au codage 1.1 Les ensembles L ensemble de tout les ensembles est Dieu lui-même. Kantor Ensemble des parties d un ensemble désigne l ensemble des sous-ensembles

Plus en détail

Cours de Programmation 2

Cours de Programmation 2 Cours de Programmation 2 Programmation à moyenne et large échelle 1. Programmation modulaire 2. Programmation orientée objet 3. Programmation concurrente, distribuée 4. Programmation monadique 5. Les programmes

Plus en détail

Les portes logiques. Voici les symboles des trois fonctions de base. Portes AND. Portes OR. Porte NOT

Les portes logiques. Voici les symboles des trois fonctions de base. Portes AND. Portes OR. Porte NOT Les portes logiques Nous avons jusqu ici utilisé des boutons poussoirs et une lampe pour illustrer le fonctionnement des opérateurs logiques. En électronique digitale, les opérations logiques sont effectuées

Plus en détail

Présentation du module Base de données spatio-temporelles

Présentation du module Base de données spatio-temporelles Présentation du module Base de données spatio-temporelles S. Lèbre slebre@unistra.fr Université de Strasbourg, département d informatique. Partie 1 : Notion de bases de données (12,5h ) Enjeux et principes

Plus en détail

SQL Server Installation Center et SQL Server Management Studio

SQL Server Installation Center et SQL Server Management Studio SQL Server Installation Center et SQL Server Management Studio Version 1.0 Grégory CASANOVA 2 SQL Server Installation Center et SQL Server Management Studio [03/07/09] Sommaire 1 Installation de SQL Server

Plus en détail

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT Ces exercices portent sur les items 2, 3 et 5 du programme d informatique des classes préparatoires,

Plus en détail

Licence ST Université Claude Bernard Lyon I LIF1 : Algorithmique et Programmation C Bases du langage C 1 Conclusion de la dernière fois Introduction de l algorithmique générale pour permettre de traiter

Plus en détail

Projet Matlab : un logiciel de cryptage

Projet Matlab : un logiciel de cryptage Projet Matlab : un logiciel de cryptage La stéganographie (du grec steganos : couvert et graphein : écriture) consiste à dissimuler une information au sein d'une autre à caractère anodin, de sorte que

Plus en détail

Définition 0,752 = 0,7 + 0,05 + 0,002 SYSTÈMES DE NUMÉRATION POSITIONNELS = 7 10 1 + 5 10 2 + 2 10 3

Définition 0,752 = 0,7 + 0,05 + 0,002 SYSTÈMES DE NUMÉRATION POSITIONNELS = 7 10 1 + 5 10 2 + 2 10 3 8 Systèmes de numération INTRODUCTION SYSTÈMES DE NUMÉRATION POSITIONNELS Dans un système positionnel, le nombre de symboles est fixe On représente par un symbole chaque chiffre inférieur à la base, incluant

Plus en détail

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile Dans ce TP, vous apprendrez à définir le type abstrait Pile, à le programmer en Java à l aide d une interface

Plus en détail

Exemple accessible via une interface Web. Bases de données et systèmes de gestion de bases de données. Généralités. Définitions

Exemple accessible via une interface Web. Bases de données et systèmes de gestion de bases de données. Généralités. Définitions Exemple accessible via une interface Web Une base de données consultable en ligne : Bases de données et systèmes de gestion de bases de données The Trans-atlantic slave trade database: http://www.slavevoyages.org/tast/index.faces

Plus en détail

MODE OPERATOIRE OPENOFFICE BASE

MODE OPERATOIRE OPENOFFICE BASE MODE OPERATOIRE OPENOFFICE BASE Openoffice Base est un SGBDR : Système de Gestion de Base de Données Relationnelle. L un des principaux atouts de ce logiciel est de pouvoir gérer de façon efficace et rapide

Plus en détail

DU BINAIRE AU MICROPROCESSEUR - D ANGELIS CIRCUITS CONFIGURABLES NOTION DE PROGRAMMATION

DU BINAIRE AU MICROPROCESSEUR - D ANGELIS CIRCUITS CONFIGURABLES NOTION DE PROGRAMMATION 145 NOTION DE PROGRAMMATION 1/ Complétons notre microprocesseur Nous avons, dans les leçons précédentes décrit un microprocesseur théorique, cependant il s inspire du 6800, premier microprocesseur conçu

Plus en détail

Dossier I Découverte de Base d Open Office

Dossier I Découverte de Base d Open Office ETUDE D UN SYSTEME DE GESTION DE BASE DE DONNEES RELATIONNELLES Définition : Un SGBD est un logiciel de gestion des données fournissant des méthodes d accès aux informations. Un SGBDR permet de décrire

Plus en détail

GOL502 Industries de services

GOL502 Industries de services GOL502 Industries de services Conception d un service Partie IIb Version 2013 Introduction Conception d un service partie IIb Nous verrons dans ce chapitre Modélisation d un service; Langage de modélisation

Plus en détail

ALGORITHMIQUE ET PROGRAMMATION En C

ALGORITHMIQUE ET PROGRAMMATION En C Objectifs ALGORITHMIQUE ET PROGRAMMATION Une façon de raisonner Automatiser la résolution de problèmes Maîtriser les concepts de l algorithmique Pas faire des spécialistes d un langage Pierre TELLIER 2

Plus en détail

IBM SPSS Direct Marketing

IBM SPSS Direct Marketing IBM SPSS Statistics 19 IBM SPSS Direct Marketing Comprenez vos clients et renforcez vos campagnes marketing Points clés Avec IBM SPSS Direct Marketing, vous pouvez : Comprendre vos clients de manière plus

Plus en détail