Home About us Products Services Contact us Bookmark
:: wikimiki.org ::
Codage (programmation)

Codage (programmation)

Cet article traite de l'acte de programmer, pour les autres sens voir codage. Le codage d'applications informatiques se fait suivant des normes très précises qui sont d'autant plus importantes que le langage de programmation ou les outils utilisés permettent des dérives. On peut classer les normes en plusieurs sous-catégories :
- Règles de nommage : définissent comment donner un nom explicite et facile à retenir pour les éléments du langage utilisé.
- Présentation et formatage des sources : comment produire un code source formaté de manière lisible.
- Documentation du source : comment documenter les sources (par exemple par des commentaires ou des outils d'extraction de documentation logicielle)
- Normes syntaxiques : comment éviter les structures syntaxiques complexes qui réduisent la facilité de compréhension du code, et accroissent les risques de dysfonctionnement. À ces normes s'ajoutent les standards industriels (pour le(s) langage(s) utilisé(s)).

Exemples de standards industriels


- HTML 4.01 (http://www.w3.org)
- La norme C++ ISO.
- Ada 95. Catégorie:Programmation informatique

Codage

Cet article concerne le codage de données en général. Pour ce qui est de l'acte de programmer, se référer à codage (programmation). De façon générale un codage permet de passer d'une représentation des données vers une autre. Parmi les différents codages utilisés, on trouve :
- Le codage de Huffman, qui permet de faire de la compression de données (essentiellement sur du texte).
- Le codage de caractères pour représenter les textes dans diverses langues.
- La transformation d'une source vidéo ou sonore en un format informatique déterminé. Coder en MP3, en AVI, etc. Dans ce cas, le codage n'est plus une opération mathématique bijective (réversible) et l'expression encodage numérique est préférée. Le codage fait appel à des codec (CODeur/DECodeur) s'appuyant sur des algorithmes afin de compresser une source pleine en une forme plus légère, mais toujours exploitable lors du décodage, par ces mêmes codecs.

Informatique

ko:컴퓨터 과학 ja:情報工学 simple:Computer science th:วิทยาการคอมพิวเตอร์ zh-cn:计算机科学 zh-tw:計算機科學 oc:informatica] Etymologiquement, Le terme informatique désigne l'automatisation du traitement de l'information par une machine (virtuelle ou physique). Dans son acception courante, l'informatique désigne de façon vague l'ensemble des sciences et techniques en rapport de près ou de loin avec l'information et l'ordinateur. Par exemple, l'informatique désigne aussi bien le matériel informatique que la conception et l'administration de la partie immatérielle d'un ordinateur : les logiciels. La traduction anglaise étymologique serait informatics, mais l' usage tant en français qu'en anglais fait qu'une meilleure traduction serait probablement computer science, bien que ce terme fasse peut-être référence de façon plus explicite à ce que l'on pourrait appeler informatique fondamentale ou informatique scientifique. En anglais les termes distincts suivants sont utilisés :
- L'informatique fondamentale (Computer Science), ce qui ressort de l' épistémologie procédurale, soit notamment de l'étude des algorithmes, et donc indirectement des logiciels et des ordinateurs.
- L'ingénierie informatique (Computer Engineering), ce qui ressort de la fabrication et de l'utilisation du matériel informatique.
- L'ingénierie logicielle (Software Engineering), ce qui ressort de la modélisation et du développement des logiciels; ceci comprend le traitement des données (Data Processing), ce qui est du domaine de la mise en pratique des traitements de données.
- L'évolution des techniques et des technologies reliées à l'informatique (Information Technology). Des professions aussi diverses que concepteur, développeur, responsable d'exploitation, ingénieur système, technicien de maintenance, matérielle ou logicielle, chercheur en informatique ou directeur d'un centre de calcul, relèvent du domaine de l'informatique. Néanmoins, le terme informaticien désigne le plus souvent ceux qui conçoivent, déploient et mettent en œuvre des solutions.

Étymologie

Le terme informatique a été créé en mars 1962 par Philippe Dreyfus à partir des mots «information» et «automatique». Il donna ce nom à l'entreprise qu'il venait de fonder, la Société d'Informatique Appliquée, sans breveter le mot informatique. En France, l'usage officiel du mot a été consacré par Charles de Gaulle qui, en Conseil des ministres, a tranché entre «informatique» et «ordinatique», et le mot fut choisi par l'Académie française en 1967 pour désigner cette nouvelle discipline. En juillet 1968, le ministre fédéral de la Recherche scientifique d'Allemagne, Gerhard Stoltenberg, prononça le mot informatik lors d'un discours officiel au sujet de la nécessité d'enseigner cette nouvelle discipline dans les universités de son pays, et c'est ce mot qui servit aussitôt à nommer certains cours dans les universités allemandes. Le mot informatica fit alors son apparition en Italie et en Espagne, de même quinformatics au Royaume-Uni. Pendant le même mois de mars 1962 Walter F. Bauer inaugura la société américaine Informatics Inc., qui elle breveta son nom et poursuivit toutes les universités qui utilisèrent ce nom pour décrire la nouvelle discipline, les forçant à se rabattre sur computer science, bien que les diplômés qu'elles formaient étaient pour la plupart des praticiens de l'informatique plutôt que des scientifiques au sens propre. L'Association for Computing Machinery, la plus grande association d'informaticiens au monde, approcha même Informatics Inc. afin de pouvoir utiliser le mot informatics pour remplacer l'expression computer machinery, mais l'entreprise déclina l'offre. La société Informatics Inc. cessa ses activités en 1985, achetée par Sterling Software.

Histoire

Voir l'article détaillé : Histoire de l'informatique

Les origines

Depuis des millénaires, l'Homme a créé et utilisé des outils l'aidant à calculer (abaque, boulier, etc.). Les premières machines mécaniques apparaissent entre le XVIIe et le . La première machine à calculer mécanique réalisant les quatre opérations aurait été celle de Wilhelm Schickard au , mise au point notamment pour aider Kepler à établir les tables rudolphines d'astronomie. En 1642, Blaise Pascal réalisa également une machine à calculer mécanique qui fut pour sa part commercialisée et dont neuf exemplaires existent dans des musées comme celui des Arts et métiers et dans des collections privées (IBM). La découverte tardive du mécanisme d'Antikhitère montre que les Grecs de l'Antiquité eux-mêmes avaient commencé à réaliser des mécanismes de calcul en dépit de leur réputation de mépris général pour la technique (démentie d'ailleurs par les travaux d'Archimède). Cependant, il faudra attendre la définition du concept de programmation (illustrée en premier par Joseph Marie Jacquard avec ses métiers à tisser à cartes perforées, suivi de Boole et Ada Lovelace pour ce qui est d'une théorie de la programmation des opérations mathématiques) pour disposer d'une base permettant d'enchaîner des opérations élémentaires de manière automatique.

L'informatique moderne

L'ère des ordinateurs modernes commença avec les développements de l'électronique pendant la Seconde Guerre mondiale, ouvrant la porte à la réalisation concrète de machines opérationnelles. Au même moment, le mathématicien Alan Turing théorise le premier ce qu'est un ordinateur, avec son concept de machine universelle de Turing. L'informatique est donc un domaine fraichement développé, même s'il trouve ses origines dans l'antiquité (avec la cryptographie) ou dans la machine à calculer de Blaise Pascal, au . Ce n'est qu'à la fin de la Seconde Guerre mondiale qu'elle a été reconnue comme une discipline à part entière et a développé des méthodes, puis une méthodologie qui lui étaient propres. Son image a été quelque temps
surfaite : parce que les premiers à programmer des ordinateurs avaient été des ingénieurs rompus à la technique des équations différentielles (les premiers ordinateurs, scientifiques, étaient beaucoup utilisés à cette fin), des programmeurs sans formation particulière, parfois d'ailleurs issus de la mécanographie, cherchaient volontiers à bénéficier eux aussi de ce label de rocket scientist afin de justifier des salaires rendus confortables par :
- le prix élevé des ordinateurs de l'époque (se chiffrant en ce qui serait des dizaines de millions d'euros aujourd'hui compte-tenu de l'inflation, il reléguait au second plan les considérations de parcimonie sur les salaires) ;
- l'aspect présenté comme
peu accessible de leur discipline et un mythe de difficulté mathématique entretenu autour. En fait, les premiers ordinateurs ne se programmaient pas de façon très différente de celle des calculatrices programmables utilisées aujourd'hui dans les lycées et collèges, et maîtrisées par des élèves de quatorze ans mais le domaine était nouveau et l'algorithmique nécéssite un certain degré de concentration associé, peut-être à tort, à la réflexion pure. L'émergence d'un aspect réellement scientifique dans la programmation elle-même (et non dans les seules applications scientifiques que l'on programme) ne se manifeste qu'avec la série The Art of Computer Programming de Donald Knuth, professeur à l'Université de Stanford, à la fin des années 1960, travail monumental encore inachevé en 2004. Les travaux d'Edsger Dijkstra, Niklaus Wirth et Christopher Strachey procèdent d'une approche également très systématique et elle aussi quantifiée. On demandait à Donald Knuth dans les années 1980 s'il valait mieux selon lui rattacher l'informatique (computer science) au génie électrique — ce qui est souvent le cas dans les universités américaines — ou à un département de mathématiques. Il répondit : «Je la classerais volontiers entre la plomberie et le dépannage automobile» pour souligner le côté encore artisanal de cette jeune science. Toutefois, la forte scientificité des trois premiers volumes de son encyclopédie suggère qu'il s'agit là plutôt d'une boutade de sa part. Au demeurant, la maîtrise de langages comme Haskell ou même APL demande un niveau d'abstraction tout de même plus proche de celui des mathématiques que des deux disciplines citées. La miniaturisation des composants et la réduction des coûts de production, associées à un besoin de plus en plus pressant de traitement des informations de toutes sortes (scientifiques, financières, commerciales...) a entraîné une diffusion de l'informatique dans toutes les couches de l'économie comme de la vie de tous les jours.

Approche fonctionnelle

Comme énoncé ci-dessus, l'informatique est le traitement automatisé de données par un appareil électronique : l'ordinateur ; les germanophones parlent de
elektronisch Daten Verarbeitung / EDV (« traitement électronique de données »), les anglophones dinformation technology / IT (« technologies de l'information »), c'est-à-dire :
- données ou informations : in fine, l'ordinateur manipule des nombres (d'où le terme anglais computer, littéralement « calculateur »), mais ces nombres peuvent représenter divers types d'informations :
  - des... nombres bien évidemment, dans le cas de calculs scientifiques (flottants) ou comptables (décimal, ou binaire entier)... ;
  - un texte, des lettres (caractères), que l'on peut mettre en forme avec un traitement de texte, imprimer, envoyer par courrier électronique... ;
  - du dessin vectoriel (CAO, logiciels d'illustration, et de typographie) ;
  - des images statiques (photographies) ou animées (vidéo), des hologrammes ;
  - des sons, enregistrés (technique du direct to disk) ou bien fabriqués par l'ordinateur (synthétiseur), que ce soient des bruitages, de la musique (cf. musique et informatique) ou de la parole ; :la conversion de ces informations en suite de nombres pose le problème du format des données, du codage et des formats normalisés (par exemple, représentations des nombres entiers ou à virgule flottante, format ASCII, Unicode, TeX ou RTF et polices PostScript ou TrueType pour les textes, formats bitmap, TIFF, JPEG, PNG, etc. pour les images fixes, formats QuickTime, MPEG pour les vidéos, interface MIDI pour la musique...).
- automatisé : l'utilisateur n'intervient pas, ou peu, dans le traitement des données ; le traitement est défini dans un programme qui se déroule tout seul, l'utilisateur se contente de fournir des paramètres de traitement ; le programme automatique se déroule selon un algorithme, l'établissement de ce programme est le domaine de la programmation.
- traitement : ces données sont :
  - créées :
    - nombres : acquisition automatique de données d'une expérience avec un ordinateur ;
    - texte : taper un texte au clavier ;
    - images : dessins réalisés à la souris ou sur une tablette graphique, synthèse d'image (pour présenter un projet – objet fictif en cours de conception –, imagerie médicale, dessin artistique – infographie –, film d'animation ou pixilation) ou numérisation d'une image existante (scanner, appareil photographique numérique) ou d'images animées (caméra numérique, webcam) ;
    - sons enregistrés (microphone) ou recréés à partir d'une partition virtuelle (synthétiseur) ou d'un texte (synthèse vocale).
  - analysées :
    - nombres : l'analyse des nombres relève du domaine concerné (mathématiques, physique, économie...) ;
    - texte : rechercher les occurrences de mots dans un texte pour en tirer des statistiques, aide à la correction orthographique et/ou grammaticale, et, plus généralement, traitement automatique des langues (TAL) ;
    - images : on peut vouloir identifier un objet (reconnaissance de forme, reconnaissance des caractères ou OCR), ou bien déterminer la surface couverte par une couleur (par exemple pour quantifier une surface recouverte) ;
    - sons : analyse spectrale, reconnaissance vocale.
  - modifiées :
    - nombres : calculs ;
    - texte : modification d'un texte existant, traduction automatique dans une autre langue (ou langage de programmation) ;
    - images : modification du contraste, de la luminosité, des couleurs, effets spéciaux ;
    - sons : application d'effets (réverbération, distorsion, ajustement de la hauteur) ; ::comme il existe, selon les programmes et les besoins, une grande variété de codages possibles pour représenter chaque type d'information, beaucoup de traitements consistent à convertir les données d'un format vers un autre...
  - archivées puis restituées :
    - les moyens et techniques d'archivage varient en fonction de la durée de conservation souhaitée et des quantités de données en jeu : mémoires électroniques, bandes magnétiques, disques magnétiques ou optiques ;
    - les moyens de restitution dépendent de la nature des données : écrans ou imprimantes pour le texte et les images, haut-parleurs ou instruments MIDI pour les sons...

Approche organisationnelle

L'informatique pour l'organisation est un élément d'un système de traitement d'information (les entrées peuvent être des formulaires papier par exemple) et d'automatisation. Depuis Henry Ford, l'automatisation des tâches ayant été identifiée comme un avantage concurrentiel, la question est : que peut-on automatiser ? Autant il est relativement facile d'automatiser des tâches manuelles, autant il est difficile d'automatiser le travail intellectuel et parfois créatif. L'approche de l'informatique dans une organisation commence donc par l'élucidation des processus, c'est-à-dire modéliser le métier. Après validation, la MOA (Maîtrise d'Ouvrage) fournit les spécifications fonctionnelles de (l'ouvrage) qui vont servir de référence dans la conception pour la MOE (Maîtrise d'œuvre). Cette conception sera alors effectuée dans le respect d'un Cycle de développement qui définit les rôles et responsabilités de chaque acteur. Ainsi, les échanges entre MOA et MOE ne se résument pas à la maîtrise des chantiers (tenue des délais et des coûts, et validation des livrables), la MOA et la MOE sont garantes (éventuellement responsables sur un plan juridique) de la cohérence des systèmes d'information, et de l'adéquation des solutions informatiques avec les problèmes utilisateurs finaux initialement constatés.

Matériel

Article détaillé : Matériel informatique On utilise également le terme anglais hardware (littéralement « quincaillerie ») pour désigner le matériel informatique. Il s'agit de tous les composants que l'on peut trouver dans : 1. Les ordinateurs et leurs périphériques : un ordinateur est un ensemble de circuits électroniques permettant de manipuler des données sous forme binaire, représentées par des variations de signal électrique. Il existe différents types d'ordinateurs : ordinateur 5150 datant de 1981, Système d'exploitation IBM-DOS 2.0]]
- Les micro-ordinateurs. De bureau ou portables. Ils sont composés d'une unité centrale : un boîtier contenant la carte mère, l'alimentation, des unités de stockage. On y ajoute une console : un écran et un clavier. Divers périphériques peuvent leur être ajoutés, une souris, une imprimante, un scanner..ect; scanner
- Les stations de travail. Des micro-ordinateurs particulièrement puissants et chers, utilisés uniquement pour des besoins professionnels pointus (conception assistée par ordinateur). Ce terme était particulièrement en vogue dans les années 1980-1990. Depuis les années 2000, il n'est guère possible de concevoir une station de travail plus puissante qu'un micro-ordinateur haut de gamme ;
- Les mainframes. Une armoire abrite l'unité centrale et l'alimentation, une ou plusieurs autres les périphériques de stockage (disque dur, sauvegarde) tandis que les moyens de communication et réseau (routeur, hubs, modem) sont dans la même pièce, mais dans des racks séparés. Une console d'administration (écran, clavier, imprimante) est généralement située dans ce même local ; administration]
- Les PDA (Personal Digital Assistant, encore appelés organiseurs). Ce sont des ordinateurs de poche proposant des fonctionnalités liées à l'organisation personnelle (agenda, calendrier, carnet d'adresse, etc.). Ils peuvent être reliés à Internet par différents moyens (réseau Wifi, Bluetooth, etc.).
- Et bien d'autres appareils. Dans le domaine de l'informatique embarquée : téléphone, électroménager, automobile, armements militaires, etc. Les cartes à puces, ou l'informatique industrielle.

Logiciel

Le logiciel désigne la partie à première vue immatérielle de l'informatique, l'organisation et le traitement de l'information : les programmes. On s'est en effet vite rendu compte que des machines techniquement très avancées pour leur époque, comme la Bull Gamma 60, restaient invendables tant qu'on n'avait pas de programmes à livrer pour les rendre immédiatement opérationnelles. IBM lança entre 1968 et 1973 une sorte d'ancêtre du logiciel libre avec son ordinateur 1130, politique qui assura à celui-ci par effet boule de neige un succès immédiat et planétaire, mais les conclusions d'un procès antitrust lui interdirent de distribuer bénévolement du logiciel. Le monde des mainframes classe les logiciels en catégories suivantes :
- systèmes d'exploitation ;
- bases de données, comme DB2, Ingres ou Oracle ;
- programmes de communication, comme NCP ou RSCS ;
- moniteurs de télétraitement ;
- systèmes transactionnels, comme CICS ;
- systèmes de temps partagé, utilisés pour le calcul ou le développement ;
- compilateurs traduisant les langages en instructions machine et appels système ;
- tout le reste entrait en une catégorie nommée Logiciels applicatifs. Plus simplement on distingue généralement trois types de logiciels (par ordre de proximité du matériel) :
- le firmware
- le système d'exploitation
- les logiciels et applications utilisateur (en anglais software) On classe aussi les logiciels en libre et propriétaire, bien que les deux soient parfois panachés à des degrés divers. Certains ont une fonction bureautique ou multimédia comme par exemple les jeux vidéo. Certains logiciels ont acquis des noms connus de tous. Le noyau du système d'exploitation crée le lien entre le matériel et le logiciel. Un logiciel, quand il est fourni sous sa forme binaire, serait utilisable uniquement avec un système d'exploitation donné (car il en utilise les services), et ne fonctionnerait que sur un matériel spécifique (car il en utilise le code d'instructions). Une conception plus récente, depuis le milieu de années 1980, consiste à distribuer les logiciels tous binaires confondus, et à les munir d'un système de licences par jetons ou tokens permettant l'usage de N copies simultanées du logiciel sur le réseau, tous matériels confondus. Cette approche est majoritaire dans le monde UNIX. À l'initiative de Richard Stallman et du GNU, à partir de 1985, une mouvance de programmeurs refuse cette logique propriétaire et ceux-ci se muent en concepteurs inventifs pour se lancer dans le développement d'outils et de bibliothèques système libres compatibles avec le système UNIX. C'est pourtant le projet indépendant Linux, initié par Linus Torvalds, basé sur les travaux et les outils du GNU, qui aboutira dans la création d'un système d'exploitation complet et libre. Une bonne partie des logiciels actuels fonctionnent dans un environnement graphique pour interagir avec l'utilisateur. La diversité des systèmes informatiques a fait apparaître une technique visant à combiner le meilleur de chacun de ces univers : l'émulateur. Il s'agit d'un logiciel permettant de simuler le comportement d'un autre système dans celui que l'on utilise,
- soit pour qu'une machine semble être une autre (voir IBM 1130),
- soit pour simuler le comportement d'un système d'exploitation (par exemple DOS ou Windows sous Linux). Le terme anglais est software, à l'origine un jeu de mot entre hardware (« quincaillerie », pour désigner le matériel) et l'opposition soft/hard (mou/dur), opposition entre le matériel (le dur) et l'immatériel (le mou). Les traductions françaises matériel et logiciel rendent parfaitement cette opposition et cette complémentarité. Le logiciel réalise normalement une fonction attendue de ses utilisateurs. Néanmoins, des effets secondaires (parfois nommés par contresens de traduction effets de bord) existent. Parfois même, certains logiciels sont destinés à nuire, comme les virus informatiques, nommés en anglais, par analogie avec software : malware (qu'on pourrait traduire par le néologisme nuisiciel, ou logiciel malveillant).

La création des logiciels

Un projet informatique s'inscrit dans un cycle de développement qui définit les grandes étapes de la réalisation (planification), de la manière dont on passe d'une étape à l'autre (modèle incrémental, en V, en spirale, etc.). Pour les petits projets (ou les petites équipes de développement), cette réflexion est souvent négligée (on se répartit les modules et chacun développe dans son coin). Ceci est une cause fréquente d'erreurs (bogues) et de non-conformité (le produit final n'est pas conforme aux attentes de l'utilisateur). Mais même les énormes projets, avec beaucoup de moyens, sont victimes de cette négligence ; ainsi, l'échec du premier vol d'Ariane 5 fut dû à un problème de logiciel, etc. Un projet peut alors intégrer une approche de la qualité et de la sûreté de fonctionnement des systèmes informatiques afin de contrôler autant que possible le produit final. Un projet comprend les étapes suivantes :
- l'établissement d'un cahier des charges qui définit les spécifications auxquelles devra répondre le logiciel ;
- la définition de l'environnement d'exécution  (architecture informatique) :
  - type(s) d'ordinateur sur lequel le logiciel doit fonctionner (station de calcul, ordinateur de bureau, ordinateur portable, assistant personnel, téléphone portable, guichet automatique de banque, ordinateur embarqué dans un véhicule ;
  - type et version du(des) système(s) d'exploitation sous-jacent ;
  - périphériques nécessaires à l'enregistrement des données et à la restitution des résultats (capacité de stockage, mémoire vive, possibilités graphiques...) ;
  - nature des connexions réseau entre les composants (niveau de confidentialité et de fiabilité, performances, protocoles de communication...) ;
- la conception de l'application et de ses constituants, et notamment de l'interactivité entre les modules développés : structure des données partagées, traitement des erreurs générées par un autre module... : c'est le domaine du génie logiciel ;
- la mise en place d'une stratégie de développement :
  - répartition des tâches entre les développeurs ou les équipes de développement, qui vont assurer le codage et les tests ;
- le plan de test du logiciel, pour s'assurer qu'il remplit bien la mission pour laquelle il a été écrit, dans toutes les conditions d'utilisation qu'il pourra normalement rencontrer, mais aussi dans des cas limites. Après chacune de ces phases, on peut avoir une étape de recette, où le client va valider les choix et les propositions du maître d'œuvre. La phase de programmation consiste à décrire le comportement du logiciel à l'aide d'un langage de programmation. Un compilateur sert alors à transformer ce code écrit dans un langage informatique compréhensible par un humain en un code compréhensible par la machine, le résultat est un exécutable. On peut également, pour certains langages de programmation, utiliser un interpréteur qui exécute un code au fur et à mesure de sa lecture, sans nécessairement créer d'exécutable. Enfin, un intermédiaire consiste à compiler le code écrit vers du bytecode. Il s'agit également d'un format binaire, compréhensible seulement par une machine, mais il est destiné à être exécuté sur une machine virtuelle, un programme qui émule les principales composantes d'une machine réelle. Le principal avantage par rapport au code machine est une portabilité théoriquement accrue (il « suffit » d'implanter la machine virtuelle pour une architecture donnée pour que tous les programmes en bytecode puissent y être exécutés), portabilité qui a fait, après sa lenteur, la réputation de Java. Il convient de noter que ces trois modes d'exécution ne sont nullement incompatibles. Par exemple, OCaml dispose à la fois d'un interpréteur, d'un compilateur vers du bytecode, et d'un compilateur vers du code natif pour une grande variété de processeurs. Une fois écrit (et compilé si nécessaire), le code devient un logiciel. Pour des projets de grande amplitude, nécessitant la collaboration de beaucoup de programmeurs, voire de plusieurs équipes, on a souvent recours à une méthodologie commune (par exemple MERISE) pour la conception et à un atelier de génie logiciel (AGL) pour la réalisation. Au cours de la programmation et avant la livraison du produit final, le programme est testé afin de vérifier qu'il fonctionne bien (y compris dans des cas d'utilisation en mode dégradé) et qu'il est conforme aux attentes de l'utilisateur final. Les tests intermédiaires permettent de s'assurer que chaque module de code réalise correctement une fonction : ce sont les tests unitaires. Les tests finals qui vérifient le bon enchaînement des modules et des traitements sont des tests d'intégration. Pour certaines applications demandant un haut niveau de sûreté de fonctionnement, les tests sont précédés d'une étape de vérification, où des logiciels spécialisés effectuent (généralement sur le code source, mais parfois aussi sur le code compilé) un certain nombre d'analyses pour vérifier partiellement le bon fonctionnement du programme. Il n'est toutefois pas possible (et des théorèmes mathématiques montrent pourquoi), de garantir la parfaite correction de tout logiciel par ce moyen et la phase de test reste donc nécessaire. Elle se complète aussi, lorsqu'il s'agit d'une évolution d'une application existante, de nombreux tests automatisés de non-régression. Statistiques : la création d'un logiciel est une tâche ardue ; environ 31 % des projets informatiques sont abandonnés avant d'être terminés, plus de 50 % des projets coûtent le double du coût initialement estimé et seulement 15 % des projets finissent dans les temps et selon le budget défini. Les besoins de seule maintenance de l'existant peuvent prendre jusqu'à 50 % des effectifs d'une équipe chargée d'un logiciel (or, c'est là une fonction pénible, ingrate, peu valorisante et qui rebute et démotive les bons programmeurs).

Traitement de l'information

L'information, pour être traitée, doit être :
- représentée par un codage :
  - on utilise un système de numération binaire, où l'élément unitaire informationnel est le bit (contraction de l'anglais binary digit : chiffre binaire). Les bits sont généralement regroupés par huit, pour constituer des octets (ou bytes). Un octet peut être représenté par la séquence des bits qui le constituent (par exemple : 00101110) ou par une paire de valeurs hexadécimales (pour le même exemple : 2E), plus compact. Le choix du binaire ne résulte pas de la mystique, mais tout simplement d'utiliser de simples circuits de commutation, qui ont de très larges tolérances et par conséquent de faibles coûts ;
  - on représente la structuration de l'information pour permettre des échanges entre composants logiciels et entre composants matériels. Pour cela, on définit des langages et des formalismes de représentation.
- stockée dans des systèmes permanents (mémoires dites de masse) ou non (mémoires dites volatiles).

Échanges de données : protocoles et normes

Les protocoles définissent une manière de procéder, notamment pour codifier la façon dont deux entités communiquent (modules ou couches logicielles, périphériques, etc.). On parle notamment de protocole de communication lorsqu'on veut définir des mécanismes de contrôle sur la manière dont l'échange d'information est réalisé. Un protocole peut ainsi définir :
- un langage de description d'instructions et de données graphiques (exemple : AGP) ;
- un standard de commandes et de flux d'information pour une mémoire de masse (exemples : SCSI, FireWire, IDE, Serial ATA) ;
- des échanges entre le processeur et des cartes d'extension (exemples : PCI, PCI Express, ISA) ;
- des modalités de transfert d'information entre périphériques (exemple : USB) ou sur un réseau TCP/IP, Internet, ATM, X.25) ;
- des commandes entre un client et un serveur (exemples : POP3, IMAP, HTTP, FTP …) ;
- des échanges de données informatisés spécifiques (exemples : EDI, EAI, X.400, X.500). Certains protocoles sont définis par des normes pour permettre l'interopérabilité des matériels ou de logiciels les mettant en œuvre. D'autres normes définissent, toujours dans le domaine de l'échanges de données :
- des langages de représentation d'information sans pour autant définir la manière dont cette information peut être échangée (exemples : ASN.1, XML) ;
- des architectures de réseaux (exemples : Modèle OSI, Wifi, Ethernet, Token-Ring).

Stockage des données

En matière de stockage d'information, on distingue le dispositif permettant de l'enregistrer physiquement (périphériques et composants) de la manière dont on structure et représente l'information pour faciliter son traitement.

Mémoire de masse

:Fichier de cartes perforées :Bande magnétique :Disque amovible magnétique (Disquette) :Disque magnéto-optique :Disque dur (disque magnétique embarquant le mécanisme, l'électronique et les têtes de lecture) :Disque optique amovible (CD-ROM, CD-R, CD-RW mais aussi DVD-ROM, DVD-R, DVD-RW, DVD+R, DVD+R DL, DVD+RW, DVD-RAM, GD-ROM, HD-DVD, Blu-ray) :Mémoire électronique non volatile (Mémoire flash, clé USB)

Mémoire volatile

:RAM

Organisation des données en vue du stockage

:Formats (extensions) de fichiers :Système de fichiers :Base de données :Annuaire

Approches scientifiques

:L'informatique n'est pas plus la science de l'ordinateur que l'astronomie n'est celle du télescope. :: -- Edsger Dijkstra
En dehors des aspects industriels et technologiques décrits jusqu'ici, l'informatique est une discipline scientifique à part entière. :Algorithmique :Algèbre de Boole :Calculabilité :Géométrie algorithmique :Lambda-calcul :Logique :Model checking :Théorie de l'information :Théorie des graphes :Théorie de la complexité :Théorie de la calculabilité :Théorie des automates finis

Applications

:Bio-informatique :Calcul parallèle :Cryptographie :Exploration de données (data mining) :Informatique grand système (mainframe) :Informatique de gestion :Informatique industrielle :Informatique décisionnelle :Imagerie Informatique :Intelligence artificielle :Interface homme-machine :Micro-informatique :Traitement du signal :Hypermédias :Informatique musicale

Annexes


- Informathèque
- Abréviations en informatique
- Dictionnaire informatique
- Informatique alternative
- Liste des articles d'informatique
- Personnes célèbres en informatique
- Revues informatiques sur papier
- Sécurité informatique
- Sites d'informations sur internet
- Terminologie de la distribution informatique
- Réseaux de neurones
- Musique et informatique
- Ordinateur quantique
- Hello_world
- Visual Information Exploration
-


Langage de programmation

ko:프로그래밍 ja:プログラミング La programmation dans le domaine informatique est l'ensemble des activités qui permettent l'écriture des programmes informatiques. C'est une étape importante de la conception de logiciel (voire de matériel, cf. VHDL).

Pratiques


- Algorithmique
- Codage
- Contrôle de version
- Optimisation du code
- Programmation système
- Refactoring
- Test unitaisre

Techniques de programmation


- Programmation impérative
  - Programmation orientée objet
  - Programmation par contrat
- Programmation déclarative
  - Programmation fonctionnelle
  - Programmation logique
  - Programmation par contraintes
- Programmation orientée composant
- Programmation orientée aspect
- Programmation concurrente

Langages de programmation

Les langages de programmation permettent de définir les ensembles d'instructions effectuées par l'ordinateur lors de l'exécution d'un programme. Il existe des milliers de langages de programmation, la plupart d'entre eux étant réservés à des domaines spécialisés. Ils font l'objet de recherches constantes dans les universités et dans l'industrie. Les langages de programmation peuvent être classifiés de nombreuses manières : généraliste/spécialisé, haut niveau/bas niveau, interprété/compilé, avec ou sans gestion de mémoire automatisée, système de gestion d'exceptions, typage fort/typage faible, typage statique/typage dynamique, syntaxe fixe/extensible ; non objet/orienté objet/purement objet, impératif/fonctionnel/déclaratif, fonctionnel pur/impur, etc. Nous incluons ci-dessous une classification sommaire des langages de programmation les plus connus. Il faut garder à l'esprit que de nombreux langages appartiennent simultanément à plusieurs catégories - ils sont dits « multi-paradigmes ». Par exemple, C++ permet la programmation impérative, orientée objet et la programmation générique (à base de classes et de fonctions paramétrées nommées templates). Common Lisp est à la fois impératif, fonctionnel, orienté objet -- et de par son caractère « programmable » (un langage de programmation programmable...), il peut intégrer d'autres « paradigmes » de programmation en son sein (par exemple la programmation logique, ou par contraintes). Ci-dessous, nous listons les langages les plus connus (nous mettons entre parenthèses certains langages dérivés ou les extensions requises).

Langages déclaratifs


- Oz
- Mercury
- Prolog pour PROgrammation LOGique
- Clips Ci-dessous, nous listons les langages spécialisés, c'est-à-dire dont l'utilisation est réservée à des domaines bien spécifiques ; les plus connus sont :

Langages de définition de données


- ASN.1
- DTD SGML
- DTD XML
- XML Schéma
- Relax NG

Langages spécialisés pour la communication avec une base de données


- 4GL

Langages de manipulation de chaînes de caractères


- SNOBOL StriNg Oriented symBOlic Language (Langage Symbolique Orienté Chaînes de Caractères)
- awk
- Perl
- sed

Langages spécialisés Web


- Exécution par le serveur HTTP (côté serveur) :
  - ASP
  - JSP (issu de Java, basé sur des Servlets)
  - PHP
  - XSP (issu de XML, soutenu par Apache)
  - D'une manière générale, les langages non spécialisés (notamment Perl et C) peuvent également être utilisés via Common Gateway Interface
- Exécution par le navigateur Web (côté client) :
  - JavaScript ou ECMAScript
  - VBScript
  - applets écrites en Java
  - ActionScript de Macromedia Flash

Langages de description de page

voir Langage de balisage

Langages de programmation théorique


- Lambda-calcul
- Pi-calcul
- Join-Calcul
- Récursion Primitive
- Système T de Kurt Gödel
- BNF

Langages de programmation de Commande Numérique (C.N.)

Une machine-outil automatisée, ou Commande Numérique (C.N.), a besoin d'un langage de programmation pour réaliser les opérations de tournage, ou de fraisage
- Programmation de Commande Numérique

Pour rendre la programmation plus difficile


- Brainfuck (ou encore F
- ckF
- ck
, Ook ou spoon)
- Intercal
- Malbolge
- Unlambda

Non classés


- Nosica
- SAS
- Langage K
- GOTO++

Langages spécialisés


- ABEL : langage pour la programmation électronique des PLD
- R : langage pour l'outil de statistiques du même nom
- VHDL : langage de description matérielle, permettant de synthétiser de l'électronique numérique (descriptions de portes logiques)
- VRML : description de scènes en trois dimensions

Bibliothèques graphiques


- Allegro - multi-plateforme, Multimédia, Jeux
- DirectX - 3D, Multimédia
- GTK+ - multi-plateforme, Environnement graphique
- JFC - Environnement graphique, 2D
- OpenGL - 3D
- Qt - multi-plateforme, Interface utilisateur
- Quartz - Environnement graphique
- SDL - Video
- SWT - multi-plateforme, Interface utilisateur
- Tk - multi-plateforme - Interface graphique associée à Tcl
- wxWidgets - multi-plateforme - Environnement graphique
- Xlib - 2D

Voir aussi

Liens internes


- Chronologie des langages de programmation
- [http://fr.wikibooks.org/wiki/Programmation Wikilivre sur la programmation]
- ABAP
- RIP

Liens externes


- [http://www.codes-sources.com/ CodeS-SourceS ] : site de passionnés qui partagent leurs connaissances
- [http://www.developpez.com/ Developpez.com, le club des développeurs] (de nombreux forums, cours et tutoriels de programmation)
- [http://www.levenez.com/lang/ Computer Languages History]
- [http://www.techbooksforfree.com/perlpython.shtml Free Python Books]
- [http://www.a525g.com/programmation/index-fr.htm A525G - Programmation]
- [http://www.99-bottles-of-beer.net/ 99 Bouteilles de Bière - Un même programme en plus de 780 langages]
- [http://coding.romainl.com Programmation Network Security]
- [http://rmdiscala.developpez.com/cours/ Package pédagogique multimédia V4.1] Catégorie:Programmation informatique

Hypertext Markup Language

LHypertext Markup Language, généralement abrégé HTML, est le langage informatique créé et utilisé pour écrire les pages Web. HTML permet en particulier d'insérer des hyperliens dans du texte, donc de créer de l'hypertexte, d'où le nom du langage. L'anglais Hypertext Markup Language est rarement traduit littéralement en langage de balisage hypertexte. On utilise généralement l'abréviation, parfois même en répétant le mot « langage » dans langage HTML. Hypertext est parfois écrit HyperText pour marquer le T de l'abréviation.

Langage de balisage hypertexte

HTML est un langage de description de documents. C'est une application du langage à balises SGML. Pour expliquer les balises HTML, voici un exemple : :<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</p> La phrase
Lorem ispum dolor (...) est délimitée par une balise d'ouverture <p> et une autre de fermeture </p>. La seule différence entre ces deux balises est le slash. Les balises servent de délimitation, <p></p> délimitant un paragraphe. Certaines balises ne sont pas doubles, et ne contiennent pas de balise de fermeture. Sont concernées la balise d'image img, la balise de ligne de séparation hr, et la balise de retour à la ligne br. On assiste quelquefois à des oublis de balises de fermeture en HTML, alors qu'elles sont nécessaires. Cette erreur s'est répandue sur le web, et les navigateurs sont devenus très permissifs à une certaine époque, ce qui a tendu à les complexifier encore davantage. Les navigateurs récents ont aujourd'hui deux niveaux de compréhension d'un fichier HTML : le niveau strict, qui affiche exactement ce que le fichier HTML demande, et le niveau brouillon, qui affiche une page en supportant les erreurs les plus fréquentes. C'est au vu de l'en-tête du document (le doctype plus précisément) que le navigateur choisit le mode à adopter.

Sémantique HTML

Tel qu'il a été pensé à ses origines par Tim Berners-Lee, le HTML ne sert pas à décrire le rendu visuel des pages web (contrairement à la PAO), mais plutôt le sens des différentes parties du texte : titre, liste, mise en évidence... Ces valeurs ont été de moins en moins respectées au cours du développement du langage. L'exemple le plus flagrant est celui de l'utilisation abusive des tableaux en HTML. L'utilisation des tableaux devrait être limitée, comme son nom l'indique, à des données tabulaires (statistiques, fréquence, assocations à deux dimensions, etc.), mais les webmestres ont au fur et à mesure utilisé cet élément pour pallier un manque crucial d'éléments permettant de positionner n'importe où un élément HTML. Depuis, le CSS a fait son apparition, permettant de décrire la façon dont les éléments HTML doivent être positionnés.

Accéder à une page HTML

C'est le protocole HTTP qui, sur le web, permet de transférer à partir d'un serveur Web, un fichier HTML. Lorsque le serveur web reçoit une demande concernant un fichier, il est possible qu'il ait à générer une partie du fichier suivant les indications qu'aura eu soin de lui laisser l'auteur de la page. (cf langages spécialisés web.) Les documents HTML sont identifiés par une adresse URL, et sont interprétés par un logiciel appelé navigateur Web. Grâce à ce dernier, le fichier HTML apparaît à l'écran comme l'auteur l'a voulu. Sont ainsi représentés texte, typographie, couleurs, tableaux, images, parfois du son, etc.

Interopérabilité

Le web dépend des auteurs de pages et des éditeurs de logiciels qui partagent les mêmes conventions pour HTML. Cela a motivé un travail commun sur les spécifications de HTML. Permettre aux documents HTML d'être accessibles sur des plates-formes et des navigateurs différents est fondamental dans la conception de ce langage. L'ambition de Tim Berners-Lee était d'avoir un langage de description de documents au format ouvert qui soit indépendant de ce qui servirait à lire les pages. Par conséquent, il n'est pas prévu que telle ou telle police de caractère soit utilisée explicitement, ni que le moniteur du client utilise telle ou telle résolution. Le logiciel exploité pour la navigation devrait lui aussi ne pas être une source de discrimination. Parvenir à l'interopérabilité permet de baisser les coûts des fournisseurs de contenus parce qu'ils n'ont à développer qu'une seule version d'un document. Si cet effort n'est pas fait, le risque est grand de voir le Web régresser vers un monde propriétaire de formats incompatibles, en réduisant en fin de compte son potentiel commercial au détriment de tous ses participants. Chaque version HTML a essayé de refléter le plus grand consensus entre les acteurs de l'industrie, de sorte que les investissements consentis par les fournisseurs de contenus ne soient pas gaspillés et que leurs documents ne deviennent en peu de temps illisibles. Le langage HTML a été développé avec l'intuition que les appareils de toutes sortes devaient pouvoir utiliser les informations sur le Web : les ordinateurs personnels avec des écrans de résolution et de profondeur de couleurs variables, les téléphones cellulaires, les appareils portables, les appareils de synthèse et de reconnaissance de la parole, les ordinateurs avec une bande passante faible comme élevée, et ainsi de suite.

Historique

1989 - 1992

HTML a été inventé pour le World Wide Web, afin de pouvoir écrire des documents hypertextes liant les différentes ressources d'Internet. En août 1991, lorsque Tim Berners-Lee annonce publiquement le Web sur Usenet, il ne cite que le langage SGML, mais donne l'URL d'un document ayant l'extension de fichier html. Les premiers éléments du langage HTML sont le titre du document, les hyperliens, la structuration du texte en titres, sous-titres, listes ou texte brut, et un mécanisme rudimentaire de recherche par index. La description d'HTML est alors assez informelle et principalement définie par le support des divers navigateurs Web contemporains.

1993

L'état de HTML correspond alors à ce que l'on pourrait appeler HTML 1.0. Il n'existe cependant aucune spécification portant ce nom, notamment parce que le langage était alors en pleine évolution. Un effort de normalisation était cependant en cours [http://www.w3.org/MarkUp/draft-ietf-iiir-html-01.txt]. À partir de fin 1993, le terme HTML+ sera utilisé pour désigner la version future de HTML. Avec le navigateur NCSA Mosaic, HTML connaît deux inventions majeures : l'invention de l'élément IMG permet d'intégrer des images (GIF ou XBM) aux pages Web (Mosaic 0.10) ; les formulaires rendent le World Wide Web interactif (Mosaic 2.0pre5).

1994

Avec l'apparition de Netscape Navigator 0.9 le 13 octobre, le support de nombreux éléments de présentation est ajouté : styles de texte, clignotement, centrage... Le développement de HTML prend alors deux voies divergentes. D'une part, les développeurs de navigateurs s'attachent à maximiser l'impact visuel des pages Web. D'autre part, les concepteurs du Web proposent d'étendre les capacités de description sémantiques (logos, notes de bas de page...) et les domaines d'applications (formules mathématiques, tables) de HTML. En ceci, ils suivent les principes de SGML consistant à laisser la présentation à un langage de style. En l'occurrence, les feuilles de style en cascade (CSS) sont prévues pour HTML. Seul le support des tables est rapidement intégré aux navigateurs, notamment parce qu'il permet une très nette élaboration de la présentation. Le manque de structure du HTML alors mis en œuvre par Netscape Navigator, puis Microsoft Internet Explorer, est parfois dénoncé comme étant de la « soupe de balises » (
tag soup en anglais).

1995 - 1996

En mars 1995, le W3C nouvellement fondé propose le résultat de ses recherches sur HTML+ : le brouillon HTML 3.0. Il comprend notamment le support des tables, des figures et des expressions mathématiques. Ce brouillon expire le 28 septembre 1995 sans donner de suites directes. Fin 1995, le RFC 1866 décrivant HTML 2.0 est finalisé. Ce document décrit HTML tel qu'il existait avant juin 1994, donc sans les nombreuses additions de Netscape Navigator.

1997

Le 14 janvier, le W3C publie la spécification HTML 3.2. Elle décrit la pratique courante observée début 1996, donc avec une partie des additions de Netscape Navigator et Internet Explorer. Ses plus importantes nouveautés sont la standardisation des tables et de nombreux éléments de présentation. Le 18 décembre, le W3C publie la spécification HTML 4.0 qui standardise notamment le support les styles, les cadres (frames) et les objets (généralisation des images et des applets).

1998 - 1999

La dernière spécification de HTML est la 4.01 datant du 24 décembre 1999. Elle n'apporte que des corrections mineures à la version 4.0.

2000 à nos jours

Le développement de HTML en tant qu'application de SGML est abandonné au profit de XHTML, application de XML. La première étape est la spécification XHTML 1.0, publiée le 26 janvier 2000. Il s'agit d'une reformulation de HTML 4.01 basée sur XML au lieu de SGML. La seconde étape est la spécification XHTML 1.1, publiée le 31 mai 2001. Il s'agit d'un classement des fonctionnalités de XHTML 1.0 en modules.

Quelques balises

Balise : Effet : Résultat :
<b>texte</b> Texte en gras Résultat
<i>texte</i> Texte en italique Résultat
<u>texte</u> Texte souligné Résultat
<s>texte</s> Texte barré Résultat
<img src="lien.jpg"> Insère une image  
<a href="lien.htm">texte</a> Insère un lien hypertexte  
<font>texte</font> Font agit sur le texte (pas seul)  
<font color="#cc0000">texte</font> Affiche le texte dans la couleur choisie Résultat
<font size="2">texte</font> Met une valeur à la taille du texte Résultat

Voir aussi

[ XHTML | World Wide Web | Informatique | CSS | Bbcode ] Wikilivre sur la programmation HTML

Liens externes

Références


- RFC 1866,
Hypertext Markup Language - 2.0, (novembre 1995)
-
[http://www.w3.org/TR/REC-html32.html HTML 3.2 Reference Specification] (Recommendation du W3C, 14 janvier 1997)
-
[http://www.w3.org/TR/1999/REC-html401-19991224/ HTML 4.0 Specification] (Recommendation du W3C, 18 décembre 1997)
-
[http://www.w3.org/TR/html4/ HTML 4.01 Specification] (Dernière recommendation HTML 4 du W3C, 24 décembre 1999)
  - [http://www.la-grange.net/w3c/html4.01/cover.html La spécification HTML 4.01] (traduction)
- [http://www.iso.ch/iso/fr/CatalogueDetailPage.CatalogueDetail?CSNUMBER=27688&ICS1=35&ICS2=240&ICS3=30&scopelist= ISO/IEC 15445:2000, Langage de balisage d'hypertexte] (norme ISO)

Didacticiels


- [http://www.cybwarrior.com/articles/?id=2 CybWarrior: didacticiel complet]
- [http://www.openweb.eu.org/ Openweb]
- [http://www.siteduzero.com/ Le Site du Zér0]
- [http://www.martiusweb.net/tutoriaux,01_00.html Martius web, tutoriaux XHTML et CSS 2]
- [http://fr.selfhtml.org/ Selfhtml]
- http://www.ccim.be/ccim328/
- [http://www.allhtml.com/html/ Allhtml]
- http://www.tuteurs.ens.fr/internet/web/html/bases.html
- [http://www.polytech-lille.fr/~vmagnin/courshtml/index.html Comment créer un site web ? (Cours gratuit)]
- [http://aliasdmc.free.fr Zone HTML/XHTML], site répertoriant toute les balises HTML et leurs attributs ainsi que leur équivalant en CSS et Javascript.
- [http://www.yourhtmlsource.com/ HTML Source: Cours d'instruction de HTML] Catégorie:SGML Catégorie:Technologie Web Catégorie:Normes et standards informatiques ja:Hypertext Markup Language ko:HTML simple:HTML th:HTML


Ada (langage)

Catégorie:Langage de programmation Catégorie:Langage orienté objet

Présentation

Ada est un langage de programmation, conçu par l'équipe dirigée par Jean Ichbiah, en réponse à un cahier des charges établi par le Département de la Défense américain (DoD). Son développement a commencé au début des années 1980 pour donner Ada 83. Il a été ensuite repris et amélioré au milieu des années 1990, pour donner Ada 95, le premier langage objet standardisé de manière internationale. Sous les auspices de l'Organisation internationale de normalisation (ISO), le langage est en cours de révision (mineure), prévue sous la forme d'un amendement au standard en 2005. Le nom Ada a été choisi en l'honneur d'Ada Lovelace. Il est associé à la couleur verte car l'équipe qui l'a conçu était l'équipe verte. Ada est un langage à typage statique, modulaire et offrant une syntaxe claire non ambiguë inspirée de Pascal. Il est souvent utilisé dans des systèmes temps réel et embarqués nécessitant un haut niveau de fiabilité. Actuellement (2002), il est possible de trouver des compilateurs Ada de très bonne qualité pour toutes sortes de systèmes d'exploitation et d'architectures, y compris un compilateur libre (GNAT, inclu dans GNU Compiler Collection). Ada est souvent utilisé en introduction aux cours de programmation avancée.

"Hello, world!" en Ada

Un exemple courant pour montrer la syntaxe d'un langage est le programme Hello world : with Ada.Text_IO;use Ada.Text_IO; procedure Hello is begin--Hello World Put_Line("Hello, world!"); end Hello; IL existe des raccourcis pour Ada.Text_IO.Put_Line nécessitant moins de caractères, mais il ne sont pas utilisés ici pour des raisons de compréhension. Pour des explications plus détaillées, vous pouvez consulter Wikibooks:Ada Programming/Basic.

Bref historique

1974 – Le département de la Défense américain réalise qu’il gaspille énormément d’argent en utilisant grosso modo un langage de programmation par application, et en entretenant des programmes écrits dans des langages obsolètes endémiques ou exotiques. Certaines sources avancent le chiffre de 500 langages de programmation employés en ces lieux. Le résultat de cette prise de conscience est l’élaboration, en 3 ans, du cahier des charges d’un unique langage, suffisamment souple et puissant pour remplacer tous les autres, du guidage de missile aux travaux sur l’intelligence artificielle en passant par les applications de gestion. 1977 – Le département lance un appel d’offres, remporté par une équipe dirigée par un Français. 1983 – La première norme internationale ANSI définit intégralement le langage Ada83. 1990 – À partir des améliorations apportées par les différents marchands de compilateurs commerciaux, l’ANSI lance un projet de révision du langage. 1995 – La révision tant attendue arrive à son terme, Ada95 voit le jour. Le compilateur GNAT qui couvre l'intégralité de la norme Ada95 est librement disponible. Il est ensuite racheté par la société Ada Core Technologies qui le maintient, en collaboration avec les développeurs actuels de GNU Compiler Collection, le conservant libre. 2004 – De nos jours, Ada95 est employé, bien sûr par son initiateur, mais aussi dans toutes les technologies de pointes : l’automobile française, les transports ferroviaires (TGV, Corail), les technologies aéronautiques (Thales Avionics) et les technologies spatiales (Alcatel Space, CNES, Arianespace). 2005 – Une révision de routine officialisant les meilleures améliorations du langage est attendue. Elle devrait ajouter à la norme son lot de nouvelles fonctionnalités.

Liens externes


- [http://www.ada-france.org Ada France] : cette association organise un concours tous les ans avec des prix conséquents (1500 € pour le premier prix).
- [http://libre.adacore.com Les pages libres d'ACT] : AdaCore propose ici en téléchargement ses outils GPL notamment le compilateur GNAT et l'environnement de développement GPS.
- [http://www.gnu.org/software/gnat/gnat.html GNAT] : un compilateur Ada libre.

Bibliographie


- John Barnes (2000), Programmer en Ada 95, ISBN 2-7117-8651-X ja:Ada

Catégorie:Programmation informatique

Cette catégorie recence les techniques de programmation en informatique. Elle n'est pas normalement utilisée pour :
- les langages de programmation
- les compilateurs, les débogueurs, et tous les outils utilisé en programmation
- les architectures
- les algorithmes qui pourront être rangé dans les sous catégories de :catégorie:développement logiciel. Catégorie:Développement logiciel ja:Category:プログラミング

Hamburg - Farmsen-Berne

Farmsen-Berne ist ein Stadtteil von Hamburg im Bezirk Wandsbek. Wandsbek

Geschichte

Die Orte Farmsen und Berne wurden beide erstmals 1296 urkundlich erwähnt. 1576 erwarb Hamburg alle Ländereien Farmsens. Das Gut Berne wurde ab 1600 als Sommerresidenz und Gästehaus des Hamburger Senats benutzt. 1899 wurde das Staatsgut Farmsen und 1902 das Werk- und Armenhaus eröffnet. Die Trabrennbahn Farmsen machte 1911 den Ort in Deutschland bekannt und wurde somit zu einem Anziehungspunkt auch über die Dorfgrenzen hinaus. Die Abseitslage von Hamburg oder Wandsbek endete 1920, als die Walddörferbahn von Barmbek bis Volksdorf ihren Betrieb aufnahm. Nach dem Vorbild der Gartenstadt Wandsbek entstand 1920 auch die Siedlung Berne. Bis zum 1.4.1937 war Farmsen-Berne eine Enklave zwischen preussischem Gebiet. Nach 1945 verlor Farmsen seinen dörflichen Charakter durch die Errichtung von Siedlungen, die viele neue Mitbürger nach sich zog. Der Stadtteil Farmsen-Berne mit 33 449 Einwohnern (Stand 2004), der bis dahin zum Kerngebiet des Bezirkes Wandsbek gehört hatte, wurde nach der Auflösung der Ortsdienststelle Farmsen-Berne im Jahre 2003 in den Ortsamtsbereich Walddörfer eingegliedert.

Weblinks


- [http://fhh1.hamburg.de/fhh/behoerden/behoerde_fuer_inneres/statistisches_landesamt/profile/farmsen.htm Stadtteil Statistik] Farmsen-Berne

Szkolenia bhp Rolety venice luxury hotels firma dog breeders










































:: RELATED NEWS ::
William Westwood (Manitoba politician)
William James Westwood (August 19, 18871954) was a politician in Manitoba, Canada. He served in the Legislative Assembly of Manitoba from 1917 to 1920, and again from 1932 to

Akhtar Naraghi
Akhtar Naraghi is an Iranian-born writer who has long resided in Canada. She holds a Ph.D.. in English literature from McGill University and works in English. Her novels are all written in the first person, and revolve around the narrator's efforts to make a home in new surroundings, in different cultures. She has published three novels, The Big Green Ho
William J. Westwood
William James Westwood (August 19, 18871954) was a politician in Manitoba, Canada. He served in the Legislative Assembly of Manitoba from 1917 to 1920, and again from 1932 to
Khmun
Hermopolis (or Hermopolis Magna) is the site of ancient Khnum, and is located near the modern Egyptian town of El Ashmunein. It was the capital of the 15th Nome of Upper Egypt. It was the major cult centre of the worship of Thoth, and as the Ancient Greeks associated him with Hermes, in later times the area bec
Dorothy Ashby
Born in Detroit, Michigan on August 6, 1932, Dorothy Ashby became a talented jazz harpist who flourished during the sixties and seventies. Some of her works include Afro Harping, Dorothy's Harp, and The Rubaiyat of Dorothy Ashby. Ashby passed away April 13, 1986

Gosta Green
Gosta Green is an area in the city of Birmingham, England. It lies three-quarters of a mile to the north-east of the centre of the city-centre.

Universities

It is the home of both the University of Aston and the University of Central England's Birmingham I
All Rights Reserved 2005 wikimiki.org