Informatique

Au cours des années 50, quatre champs d'intérêt principaux émergent.

Les ordinateurs
Les fabricants d'ordinateurs créent maintenant de nouveaux syst\u00e8mes qui pourront offrir des services de télédiffusion, des films et des fiches de musique numérisée, le tout \u00e0 partir d'une télécommande (avec la permission du magazine Maclean's.)

Informatique

 L'informatique est la science qui traite de la théorie, de la conception et de l'application des systèmes de traitement de l'information. Ses débuts remontent au premier ordinateur électronique, le ENIAC (Electrical Numerical Integrator and Computer), mis en marche en 1946 à l'U. de Pennsylvanie.

Au cours des années 50, quatre champs d'intérêt principaux émergent. Le premier porte sur le « matériel », soit la fabrication d'équipement efficace possédant des unités centrales de traitement (UCT) plus rapides, des mémoires de plus grande capacité et davantage de périphériques d'entrée et de sortie pour résoudre des problèmes de complexité croissante. Un autre champ couvre les « logiciels d'exploitation », soit des langages de programmation ainsi que les structures et les techniques logiques de travail exigées pour faire fonctionner le matériel et les autres programmes.

Ces systèmes de logiciels et de matériels accroissent rapidement l'étendue des applications, objet du troisième domaine, soit celui de la recherche et développement. Les premières applications portent sur les MATHÉMATIQUES, ensuite sur les sciences et l'ingénierie, puis sur le monde des affaires et celui des sciences sociales et, enfin, sur la plupart des domaines d'activité. À mesure que ces trois domaines se développent, les théoriciens étudient les algorithmes (descriptions de procédés) exprimés dans un langage pouvant être compris par les ordinateurs. Ce quatrième champ d'étude, « la théorie du traitement », s'interroge sur ce qu'il faut aux algorithmes pour être efficaces et il tente d'en trouver dans des contextes variés. Alan Turing, instigateur de la théorie, a identifié la calculabilité mathématique à la capacité d'un ordinateur primitif d'arrêter l'exécution d'un programme.

Au cours des années 60, alors que s'accumulent les découvertes dans ces domaines, l'informatique apparaît dans plusieurs universités en tant que discipline distincte et séparée des départements de mathématiques et de GÉNIE ÉLECTRIQUE ainsi que des services de traitement des données avec lesquels elle fut jusque-là associée. Des programmes d'études officiels sont élaborés, et des cours en structure de données, en langages de programmation et en théorie de traitement servent de points de départ aux spécialistes en informatique.

Relations avec les autres disciplines

 L'informatique connaît une relation privilégiée avec les mathématiques, puisant fortement dans le formalisme de la logique, les structures algébriques, la théorie des automates et la théorie des courbes. Des sujets tels que l'analyse numérique et la théorie de la complexité appartiennent à la fois au domaine de l'informatique et à celui des mathématiques. L'autre relation intéressante est celle qu'a l'informatique avec le génie électrique. Les composantes des registres d'ordinateur, des unités de stockage, des micropuces et des circuits VLSI (intégration à très grande échelle) sont des produits du génie électrique. Les domaines de l'informatique et du génie électrique comprennent des éléments comme les systèmes d'exploitation et les utilitaires (pour gérer les ressources), des programmes de contrôle et de « débogage » (pour l'élaboration de programmes) ainsi que les compilateurs et les traducteurs (pour la traduction des instructions d'un langage évolué et facile à utiliser en un code interne de l'ordinateur basé sur des 0 et des 1).

Le génie informatique, qui peut être enseigné dans l'un ou l'autre des départements d'informatique et de mathématiques, traite des problèmes qui doivent être surmontés pour fabriquer des logiciels bien précis, bien détaillés et, par-dessus tout, fiables. L'étude des systèmes de communication est essentielle tant pour le génie électrique que pour l'architecture des systèmes informatiques. Les techniques en informatique et en communications convergent à mesure que la quantité et la variété de leurs services s'accroissent.

Plusieurs disciplines sont liées à l'informatique. Avec le génie industriel, l'informatique traite de l'analyse de systèmes, de conception de procédés, de la modélisation et de la simulation; avec la linguistique, elle partage un intérêt pour la syntaxe et la sémantique du langage. Les théories et les techniques du stockage d'informations, du repérage et de la dissémination sont aussi importantes aux sciences de la documentation qu'à l'informatique. Avec la science de la gestion, l'informatique étudie les bases de données, les langages d'interrogation, les systèmes de décision et les systèmes de bureautique.

Par l'entremise des études sur l'INTELLIGENCE ARTIFICIELLE, l'informatique partage avec la philosophie un intérêt pour la formation de la logique, de la compréhension et de la connaissance. Avec la psychologie et la neurologie, l'informatique s'occupe du traitement des signaux, de l'interprétation des données sensorielles, des réseaux neuroniques et des modèles du cerveau. Comme les ordinateurs sont des outils permettant la recherche dans tellement de domaines (les sciences naturelles, sociales, de l'ingénierie, de la biologie, de même que le secteur des arts et des lettres), il est presque impossible d'énumérer l'étendue de leurs interactions avec l'informatique et les autres disciplines.

Orientations

Âgée d'à peine 50 ans, l'ordinatique a connu une croissance incroyablement rapide, comme en témoignent les nombreuses générations de macro-ordinateurs ainsi que l'émergence des superordinateurs, des systèmes répartis et à architecture parallèle, des ordinateurs personnels, d'INTERNET et du Web. L'informatique a connu une poussée tout aussi intense, et comme les autres sciences telles la physique, la chimie et la biologie, ses activités s'étendent à de nombreuses sous-disciplines, chacune ayant son propre sujet, ses conférences et ses revues.

L'élément mathématique théorique assure une base importante à la discipline entière. Les sous-disciplines spécialisées (architecture d'ordinateur, langages de programmation, analyse numérique, bases de données, infographie, éducation, intelligence artificielle, systèmes de connaissances, interaction ordinateur-humain, télétravail collectif, ordinateurs et société, ordinateurs et la loi) évoluent en même temps qu'un grand nombre de nouveaux emplois et travailleurs font leur apparition. Ceux-ci se subdivisent et continuent de croître et de se transformer au même rythme que les dynamiques de la technologie changent. Un nouveau mouvement qui se fait sentir est celui de la poussée vers la certification et vers la reconnaissance juridique des professions du domaine informatique. Cette tendance est plus forte en Europe (particulièrement au Royaume-Uni) qu'en Amérique du Nord, mais un groupe de personnes déterminées continue toujours de travailler à la réalisation de ces objectifs.

L'informatique au Canada

Le travail du premier groupe canadien sur la conception et l'utilisation d'ordinateurs électroniques conduit, en 1948, à la création de l'ordinateur UTEC (University of Toronto Model Electronic Computer) et à l'acquisition de l'ordinateur FERUT (Ferranti Computer at U of T) en 1951. Au cours des années 50 et 60, le développement du matériel fait l'objet de travaux dans les laboratoires gouvernementaux (p. ex., Centre de recherche pour la Défense sur les télécommunications), ainsi que dans différentes entreprises canadiennes dont Computing Devices of Canada et, en particulier, chez Ferranti-Packard où l'on fabriquait une série d'ordinateurs innovateurs pour les LIGNES AÉRIENNES TRANS-CANADA (maintenant AIR CANADA).

Dans les universités, les recherches portent surtout sur l'informatique théorique, sur les logiciels et sur les applications de l'ordinateur. Les calculs du niveau de l'eau pour le projet de la voie maritime du Saint-Laurent, par exemple, sont faits à l'aide de l'ordinateur FERUT pour le compte de la Commission d'énergie hydroélectrique de l'Ontario. La Canadian Conference for Computing and Data Processing, tenue en 1958, attire 400 participants et amène la formation, la même année, de la Computing and Data Processing Society of Canada (maintenant l'ACI, l'Association canadienne de l'informatique). Le compilateur WATFOR, conçu en 1967 par l'U. de Waterloo pour le traitement rapide des travaux de programmation des étudiants, est le premier programme informatique canadien à connaître une distribution internationale.

En 1964, des cours d'informatique sont donnés dans 22 universités et écoles techniques partout au pays. Aujourd'hui, presque tous les établissements d'enseignement postsecondaire offrent des programmes d'informatique, et des cours de programmation sont donnés dans plusieurs écoles secondaires. On trouve des laboratoires de recherche dans les universités, au CONSEIL NATIONAL DE RECHERCHES DU CANADA, dans les entreprises IBM, NORTHERN TELECOM LTÉE et chez d'autres fabricants d'ordinateurs, dans les entreprises de logiciels, et dans les compagnies qui font une grande utilisation des ordinateurs.

Au Canada, une importante INDUSTRIE DE L'INFORMATIQUE est issue de ces progrès dans le domaine de l'informatique. Sur le marché des systèmes complets, les entreprises américaines et japonaises dominent (IBM, Digital Equipment, UNISYS, Fujitsu, NEC, Dell, Compaq). Dans les domaines de la bureautique, des entreprises d'experts-conseils, de la communication et des logiciels, les entreprises canadiennes tiennent une place importante à l'échelle nationale et internationale (Services CSG, Systems-house, Northern Telecom ltée, Gandalf, Mitel, Cognos, DMR, Open Text). Les entreprises canadiennes d'infographie et d'animation, en particulier, se font remarquer (Corel, Alias, IMAX) et les écoles canadiennes sont réputées (universités, Sheridan College).

C.C. GOTLIEB

Informatique théorique

L'informatique théorique est l'étude mathématique précise des problèmes et des phénomènes du calcul. L'accent n'est pas mis sur des programmes spécifiques, mais plutôt sur les idées de base qui permettent la solution de problèmes en informatique. Un des concepts de base est celui d'un modèle formel d'ordinateur qui serait suffisamment général pour être équivalent, en principe, à n'importe quel véritable ordinateur, mais plus simple et non encombré de détails. Un aspect important de ce concept touche aux problèmes qui ne peuvent pas du tout être résolus par les ordinateurs ou qui exigent trop de temps pour être résolus dans la pratique. D'autres branches du domaine portent sur la représentation des langages de programmation et sur le fait de prouver de façon méthodique qu'un programme fonctionne correctement. Le domaine se distingue par son approche et par son emploi d'outils mathématiques sophistiqués plutôt que par les problèmes particuliers qu'on y étudie.

L'aspect principal de l'informatique théorique est probablement la conception d'algorithmes et de structures de données efficaces. Le point central se situe au niveau des techniques d'organisation de l'information qui favorisent des recherches rapides en prenant le moins d'espace possible, et au niveau des idées clés qui sont derrière l'exécution des calculs pour que ceux-ci soient non seulement réalisables, mais qu'ils soient souvent instantanés, même pour d'énormes quantités de données. Dans le cadre de cet aspect des études théoriques, on trouve un grand choix de produits et services faisant l'objet de techniques créées dans les universités canadiennes, dont les recherches sur Internet, les horaires des liaisons aériennes, les recherches dans des bases de données géographiques, la conception de moules pour le plastique et la mise au point d'un caméscope.

D'autres aspects du sujet sont plus abstraits. L'une des conclusions les plus fondamentales en informatique théorique est qu'il existe des problèmes informatiques qu'aucun programme ne peut résoudre. Plusieurs de ces conclusions théoriques remontent aux années 30, dix ans avant l'invention de l'ordinateur électronique. Il est prouvé, par exemple, qu'aucun programme informatique ne peut inspecter un autre programme et déterminer s'il arrêtera de se dérouler ou non. Plusieurs autres problèmes sont aussi insolubles, y compris celui de vérifier si un programme rencontre les spécifications requises.

Bien qu'un problème ne puisse être résolu dans tous les cas, il existe des outils qui peuvent être très utiles. Par exemple, les domaines de la sémantique et de l'exactitude des programmes se concentrent sur l'élaboration de méthodes selon lesquelles il est possible de prouver, de façon formelle, qu'un programme fonctionne correctement.

Même si, en principe, un problème peut être résolu par un ordinateur, la solution peut demander trop de temps pour être faisable en pratique. Par exemple, supposons qu'il y a n objets et que chacun a un prix. Il faut voir si ces objets peuvent être divisés en deux piles de manière à ce que le prix total de chacune d'elles soit le même. Si n égale 100 et que un milliard des partitions possibles étaient tentées chaque seconde, le processus complet prendrait un laps de temps beaucoup plus long que l'âge de l'univers. L'exécution de cette tâche est évidemment impossible.De façon plus générale, cette approche nécessiterait 2n essais. Cette somme de travail est exponentielle au nombre de données en entrée, au lieu d'être un polynôme comme nk (pour une petite constante k). Dans les années 60, plusieurs chercheurs, dont Jack Edmonds de l'U. de Waterloo, font remarquer qu'un programme prenant un temps polynomial peut être employé pour des problèmes comportant une grande quantité de données en entrée, alors qu'un programme prenant un temps exponentiel ne peut pas l'être. En l'occurrence, tous les problèmes devant être en pratique résolus n'ont pas d'algorithme de temps polynomial connu.

En 1971, Stephen Cook de l'U. de Toronto pose la question : « Si on peut vérifier une solution proposée en temps polynomial, peut-on nécessairement trouver une solution en temps polynomial? » Le problème de partition des prix en deux piles est un problème de ce genre. Chaque solution proposée est vérifiée facilement et rapidement, mais, si n est assez grand, il existe trop de solutions possibles pour qu'elles puissent toutes être vérifiées. Cook démontre que certains problèmes ont la caractéristique suivante : si un de ceux-ci peut être résolu en temps polynomial, alors tous ces problèmes à vérification facile peuvent être résolus en temps polynomial. Ces problèmes NP-complet comprennent, par exemple, l'établissement d'un horaire d'examens scolaires dans la plus petite plage horaire possible, sans qu'il y ait de conflit, la détermination du chemin le plus court à travers un groupe de villes et le placement d'une série d'objets de tailles différentes dans un nombre minimum de récipients. Des centaines de problèmes de programmation semblables surviennent dans la pratique. De nombreux problèmes ont été étudiés pendant des années avant les travaux de Cook, et plus d'un quart de siècle de travail intense s'est écoulé depuis. Il est donc peu probable qu'il existe un algorithme de temps polynomial qui puisse résoudre ces problèmes.

La NP-complétude a deux conséquences particulièrement intéressantes et pratiques. D'abord, même si on ne connaît pas d'algorithme efficace pour résoudre un problème, la question reste quand même pressante en pratique. Donc, la recherche de méthodes qui peuvent résoudre la plupart de ces problèmes ou qui donnent de bonnes solutions approximatives est un domaine clé de l'informatique théorique. Un autre point de vue est celui de se demander quelle est l'avantage d'effectuer certains calculs difficiles à exécuter. Un exemple important de ce genre d'application est la cryptographie. Cette application est d'une importance grandissante à cause de l'utilisation courante des lignes de transmissions peu sures d'Internet pour effectuer des opérations financières.

L'idée d'un système cryptographique à clé publique permet d'envoyer un message qui ne peut être lu à moins que l'utilisateur ait la clé de décodage (seul le destinataire désigné la connaît) ou qu'il soit capable de résoudre un problème informatique pour lequel il n'y a pas d'algorithme de temps polynomial connu. Plusieurs universités canadiennes effectuent d'importantes recherches en ce domaine. À l'U. de Toronto et à l'U. de Moncton, l'élaboration d'un protocole sûr, applicable à de nombreuses méthodes de cryptographie de base, est un sujet de première importance. À Waterloo, les recherches sont axées sur l'élaboration et la commercialisation de systèmes efficaces et sûrs. On a démontré (avant leur mise en service publique, heureusement) que certains systèmes proposés dans le commerce peuvent être décryptés.

J. IAN MUNRO

Langages de programmation

Les langages de programmation sont des transcriptions formelles pour exprimer les algorithmes et les données afin de les rendre compréhensibles pour les ordinateurs. Parmi les langages de programmation populaires, on retrouve Ada, du prénom de lady Lovelace, la fille de lord Byron, qui a travaillé sur la « machine analytique » de Charles Babbage; ALGOL (Algorithmic Language) APL (A Programming Language); BASIC (Beginner's All-Purpose Symbolic Instruction Code); COBOL (Common Business-Oriented Language); FORTRAN (Formula Translation); GPSS (General Purpose Systems Simulation); LISP (List Processing); Pascal, nommé d'après le mathématicien français Blaise Pascal qui, en 1642, invente une machine à calculer; SIMULA (Simulation Language); SNOBOL (String-Oriented Symbolic Language); SPSS (Statistical Package for the Social Sciences).

Contrairement aux langages naturels (p. ex., l'anglais et le français), les langages de programmation doivent posséder des définitions précises de forme (syntaxe) et de signification (sémantique). Les langages de programmation universels servent à résoudre des problèmes dans plusieurs domaines. Par exemple, le Pascal peut être utilisé pour la recherche d'informations, le calcul numérique et la programmation de systèmes. Les langages spécialisés ont une portée plus restreinte, étant conçus pour des champs d'application spécifiques. Par exemple, GPSS est utilisé pour des études en simulation.

Les programmes contiennent des définitions ainsi que des instructions et des expressions exécutables par l'ordinateur. Un programmeur peut habituellement définir les noms de données (variables) et des instructions (sous-programmes, fonctions) et, dans certains langages, des types. Un type est un ensemble de valeurs liées à des opérations appropriées. Par exemple, une série de nombres entiers aura des séquences de nombres entiers comme valeurs et « insérer » et « supprimer » pour opérations. Les instructions comprennent l'affectation, l'entrée, la sortie et l'appel aux sous-programmes, en plus de façons de construire des séquences d'instructions, de sélectionner des instructions et d'en répéter.

Étant donné que l'ordinateur comprend directement les opérations codées en nombres binaires, les programmes peuvent être écrits en binaire. Un nombre binaire est un nombre exprimé à l'aide des chiffres 0 et 1 seulement. À ce niveau le plus bas, appelé langage machine ou code exécutable, chaque instruction et chaque référence à une donnée est un nombre binaire.

Les langages d'assemblage permettent l'utilisation de noms symboliques pour exprimer des instructions et des données. Ces symboles doivent être transformés en nombres pour que le programme puisse être exécuté. Les langages évolués (p. ex., COBOL) permettent l'utilisation d'une terminologie et d'une construction plus pratiques pour les humains, et nécessitent des transformations plus complexes du code exécutable. Les langages très évolués permettent l'expression de ce qui est demandé plutôt que l'énonciation de la manière dont cela doit être calculé. Par exemple, dans le langage d'interrogation de bases de données, ce sont les caractéristiques des données requises qui sont spécifiées et non les façons de les retrouver dans la base de données.

La syntaxe des programmes est habituellement définie avec précision en utilisant une notation appelée notation de Backus Naur. La structure d'un programme est décrite dans les termes de ses éléments, lesquels sont décrits dans les termes de leurs éléments à eux, et ainsi de suite, jusqu'à ce que tout ait été défini dans les termes des mots du langage. Cette situation est comparable à la façon dont les phrases d'un langage naturel sont décrites. Une fois qu'un programme en langage machine existe, on peut l'améliorer en le transformant en un programme équivalent qui contient des instructions moins nombreuses ou plus rapides.

DAVID T. BARNARD

Matériel

À l'époque des premiers ordinateurs, le matériel proprement dit était appelé « hardware ». Peu après, l'industrie de l'informatique a crée le terme « software », ou logiciel en français, pour désigner les programmes exécutés par le matériel. La composition matérielle de l'ordinateur numérique, qu'il s'agisse des petits ordinateurs personnels portatifs ou non, ou des gros ordinateurs multiprocesseurs ou macro-ordinateurs, comprend des processeurs, des unités périphériques et des unités de mémoire.

Pour décrire le fonctionnement d'un ordinateur, on doit faire une distinction entre les processeurs, qui assurent les fonctions de contrôle et de traitement; les unités périphériques qui assurent les fonctions d'entrée, de sortie et de communication; et les unités de mémoire qui permettent le stockage des programmes et des données. L'information (programmes et données) lue dans la mémoire au moyen de l'unité d'entrée, qu'elle doit exprimée en nombres ou en texte, est encodée dans des blocs de chiffres binaires ou « bits ». Chaque bit a la valeur 0 ou 1, et les techniques courantes de codage utilisent un bloc de 8 bits (un « octet ») pour représenter les lettres de A à Z, les chiffres de 0 à 9, les signes de ponctuation et les symboles de service.

La valeur 0 ou 1 de chaque bit est représentée physiquement par un courant électrique de faible voltage dans le processeur et dans la mémoire vive, ou par l'état de magnétisation de très petites zones sur des surfaces recouvertes d'un matériau magnétique. Ce dernier processus est utilisé pour stocker les données en mémoire secondaire, soit sur des disques durs, sur des disquettes ou sur des rubans magnétiques.

Les calculs numériques ou le traitement de texte à effectuer à partir des données dans la mémoire vive sont déterminés par un programme machine. Les programmes d'application pour les ordinateurs sont habituellement écrits dans des langages de programmation évolués, tels le FORTRAN, le Pascal ou le C, et sont ensuite convertis en un programme machine correspondant par un programme de compilation commandé par le système d'exploitation.

Le programme machine doit être placé dans la mémoire vive lors de son exécution et il consiste en une séquence d'étapes simples appelées « instructions ». Voici un exemple d'instructions typiques : « Additionner deux nombres et stocker la somme dans un lieu spécifique de la mémoire vive; sauter à une autre section du programme si la valeur qui vient d'être calculée est négative; envoyer le contenu d'un lieu déterminé de la mémoire à un appareil de sortie pour l'imprimer ». Une instruction peut généralement être encodée en « mots » mémoire d'une longueur de 4 à 8 octets.

Les réseaux électriques qui vont chercher chaque instruction de la mémoire vive pour l'exécuter dans le processeur sont composés de milliers de transistors (SEMICONDUCTEURS ET TRANSISTORS) reliés en circuits intégrés. Le délai requis pour aller chercher et exécuter une instruction est en général une fraction d'un millionième de seconde.

Les processeurs sont conçus pour effectuer des instructions successives dans une sorte d'exécution en cascade appelée « traitement pipeline ». Chaque instruction est composée d'environ 4 à 6 étapes de base séquentielles. Chaque étape est exécutée en un cycle d'horloge. Lorsque une série d'instruction a été déterminée, une nouvelle instruction peut être exécutée à chaque cycle d'horloge. Dans ce mode de fonctionnement, on obtient des taux d'instructions début/fin de l'ordre de 100 millions par seconde et même plus dans les processeurs actuels.

Logiciel

Un ordinateur numérique stocke des données et exécute sur elles différentes opérations (p. ex., addition, multiplication et comparaison). Une séquence d'opérations ou d'instructions, le « programme », est également stockée dans l'ordinateur et est interprétée de façon séquentielle par l'unité centrale de traitement. Une instruction peut dire à l'unité centrale d'exécuter une opération arithmétique en utilisant un emplacement particulier de la mémoire appelé un accumulateur. La série d'opérations, et leurs significations, sont appelés le langage machine ou natif de l'ordinateur.

Écrire un programme en langage machine est un travail fastidieux. C'est pourquoi les programmes sont généralement écrits en langage évolué (le FORTRAN ou le COBOL par exemple). Une simple instruction en langage évolué exige des centaines d'instructions si elle doit être écrite en langage machine. Donc, on utilise habituellement un traducteur (c.-à-d. un compilateur) qui produit un programme en langage machine à partir du programme correspondant en langage évolué, bien que certains programmes puissent être analysés et exécutés directement, sans passer par cette étape.

Un système d'exploitation est un programme spécial qui gère les ressources du système informatique. À titre d'exemple, lorsque plusieurs personnes utilisent l'ordinateur en même temps, on doit les empêcher d'entrer en conflit les unes avec les autres. Il n'existe généralement qu'un seul processeur et on doit établir un horaire afin que chacun l'utilise à tour de rôle.

Un système d'exploitation fournit également aux utilisateurs des services tels que des moyens d'entrer et de stocker des données dans l'ordinateur. Ces services permettent l'accès à des séquences d'instructions requises par la plupart des programmes. Le système d'exploitation est normalement le premier programme à être chargé dans l'ordinateur. Chaque utilisateur communique avec le système d'exploitation en utilisant un langage de commande pour demander des services. Il existe maintenant des centaines de systèmes d'exploitation différents dont plusieurs d'entre eux sont conçus en fonction d'un champ spécifique d'application (p. ex., contrôle de processus) ou pour des installations informatiques particulières ou spécialisées.

Un programme qui traite d'une exigence particulière (comptabilité du grand livre) est appelé programme d'application. Un programme de calcul de la paie accepterait de l'information telle les heures travaillées et une des sorties serait sous forme de chèques de paie. La plupart des programmes d'application peuvent être adaptés à des situations diverses. Certains d'entre eux (p. ex., progiciels de design en ingénierie et systèmes d'enseignement assisté par ordinateur) utilisent des langages d'application spéciaux.

Les programmes bien conçus sont d'utilisation facile pour la plupart des gens : nul besoin de mémoriser les détails du système informatique pour pouvoir les utiliser. Les programmes informatiques sont souvent très gros et leur préparation exige parfois des mois et même des années. Ils peuvent être utilisés pendant des années si on leur apporte des changements pour faire face aux circonstances nouvelles. La méthodologie logicielle fournit des techniques d'écriture de programmes (y compris la programmation, la conception et l'analyse structurées) qui sont facilement compréhensibles et modifiables par d'autres programmeurs. Parmi les outils utilisés, on compte les organigrammes, les diagrammes de structure, les diagrammes de cheminement des données et les tables de décision.

J.W. GRAHAM

Superordinateur

Le terme « superordinateur » est utilisé pour la première fois dans les années 60 pour différencier les ordinateurs conçus pour les calculs scientifiques et numériques de haute performance du nombre croissant de machines conçues pour l'informatique de gestion. Les superordinateurs sont les formules 1 du monde de l'informatique. Contrairement aux micro-ordinateurs, qui sont devenus des produits courants, on fabrique très peu de superordinateurs et seulement quelques programmes leur sont destinés. Toutefois, étant les machines les plus puissantes de leur temps, les superordinateurs ont un impact très grand dans le domaine de la science.

Les superordinateurs sont généralement utilisés pour étudier des problèmes qui sont trop gros, trop petits, trop rapides, trop lents ou tout simplement trop coûteux pour être étudiés en laboratoire. Presque tout ce qui est connu au sujet du changement du climat mondial, par exemple, vient de simulations faites à l'aide de superordinateurs. L'industrie automobile en fait un usage considérable pour simuler des accidents, tandis que les entreprises aérospatiales les utilisent pour prédire la performance des avions futurs. Même Hollywood utilise des superordinateurs pour produire des effets spéciaux dans les films de George Lucas, Steven Spielberg et bien d'autres.

On a recours à deux techniques différentes pour atteindre une performance de niveau « superordinateur ». La première est tout simplement celle d'utiliser des composantes plus rapides. Puisque celles-ci sont généralement plus dispendieuses, les architectes de micro-ordinateurs emploient seulement quelques pièces de haute performance pour les parties les plus vitales de leurs conceptions. Les architectes de superordinateurs, par contre, utilisent du matériel dispendieux et très rapide partout dans leurs machines.

La seconde technique consiste à exécuter plusieurs opérations en même temps. Seymour Cray, l'architecte prééminent des superordinateurs des années 60 et 70, a réalisé cette technique en organisant les éléments dans un système appelé « pipeline ». Chacune de ses composantes effectue une seule opération et transfère ensuite le résultat à la suivante, ce qui permet plusieurs opérations simultanées. Cela comporte une sorte d'exécution en cascade, semblable à la répartition des tâches sur une chaîne de montage qui fait en sorte que l'on peut construire plusieurs voitures en même temps.

Dans les années 80, une autre technique appelée « parallélisme » commença à gagner de la popularité. Un ordinateur à architecture parallèle contient des dizaines, des centaines ou même des milliers de microprocesseurs qui travaillent tous ensemble (ou « en parallèle ») pour résoudre un seul problème. L'attrait du parallélisme est qu'il fonctionne avec des appareils grand public moins dispendieux que les appareils spécialisés utilisés dans les superordinateurs conventionnels, et qu'il n'y a pas de limite, autre que le coût, à la grosseur et à la puissance d'un ordinateur parallèle. Toutefois, les ordinateurs parallèles sont extrêmement difficiles à programmer.

GREGORY V. WILSON

Infographie

L'infographie est le procédé par lequel un ordinateur affiche des informations sous forme d'image, plutôt que de texte. Généralement, l'information graphique apparaît sur un écran cathodique, mais les images peuvent aussi être produites sur papier, sur film ou sur bande vidéo, voire sur des t-shirts et des tasses. L'infographie est utilisée tous les jours sur des ordinateurs personnels étant donné que la méthode privilégiée de présenter l'information est sous forme graphique.

Unités d'entrée et de sortie

Ces unités assurent la communication avec le monde extérieur (personnes, unités périphériques électroniques et électromécaniques, et équipements de communication à courte et à longue distance). Les unités d'entrée communes sont les claviers, les tablettes graphiques et les convertisseurs de signaux de communication qui transforment les valeurs d'un signal externe en nombres codés en binaire. Les unités de sortie comprennent les postes d'affichage vidéo pour les caractères et les formes graphiques, les imprimantes pour consigner les sorties sur papier et les convertisseurs de signaux qui transforment les valeurs codées en binaire en signaux électriques pouvant être transmis par lignes de communication.

Les disques, disquettes et rubans magnétiques utilisés pour stocker les données et les programmes à l'extérieur du processeur et de la mémoire sont généralement classés parmi les appareils d'entrée et de sortie. Ils sont capables de stocker de très grandes quantités de données (des centaines de millions d'octets) et constituent le moyen de stockage employé par les utilisateurs d'ordinateurs personnels et les entreprises commerciales telles que les compagnies d'assurance et les banques.

Mémoire

L'information, qui est gardée dans la mémoire vive lors du traitement, est organisée en mots de quelques octets chacun. La mémoire est constituée physiquement de circuits intégrés. La mémoire principale complète d'un ordinateur personnel ou d'un poste de travail peut contenir des dizaines de millions d'octets qui peuvent être insérés ou extraits de la mémoire à la vitesse de quelques millions par seconde.

Unités de contrôle et de traitement

Les réseaux de contrôle, qui sont eux aussi constitués de circuits intégrés, sont nécessaires pour exécuter la séquence complète des opérations qui coordonnent les activités de toutes les unités de l'ordinateur. La plus importante des concentrations de commandes est associée au processus qui exécute les opérations arithmétiques sur les nombres et les opérations de comparaison, de recherche et de tri relatives au texte. Ces commandes sont nécessaires aussi bien durant le traitement que pendant les opérations de recherche et de stockage utilisées pour transférer les données et les instructions entre la mémoire vive et le processeur.

Les commandes sont également requises dans les circuits qui relient les appareils d'entrée et de sortie au processeur et à la mémoire. Dans plusieurs applications informatiques, des mémoires et des processeurs multiples doivent être utilisés afin de fournir des capacités de calcul suffisantes. De telles situations de traitement réparti exigent une maîtrise de la synchronisation entre les diverses unités. Cette partie de la conception des systèmes informatiques, qui comprend l'attachement des systèmes aux réseaux de communication, représente la tâche qui est à la fois la plus difficile, la plus intéressante et la plus stimulante pour le concepteur de matériel.

V. CARL HAMACHER

Technique d'affichage

Comme pour la TÉLÉVISION, l'image sur un écran cathodique est produite par un faisceau qui balaie l'écran de façon régulière, de gauche à droite et de haut en bas, à raison d'au moins 60 fois la seconde. Alors que le point se déplace sur l'écran, l'ordinateur assigne une série de chiffres (appelés valeurs de pixel) qui détermine la couleur de chaque point. Ces valeurs de pixel proviennent d'une mémoire vidéo. Un ordinateur de bureau possède une mémoire vidéo d'une capacité d'environ 1,5 mégaoctet. L'infographie est donc une discipline devenue efficace grâce aux puces de mémoire rapides et peu chères.

Peinture et dessin 2D

En infographie, le programme le plus simple, tout en étant le plus puissant, est le programme de dessin. Un « pinceau » simulé modifie les valeurs dans la mémoire vidéo, et ces changements sont immédiatement visibles à l'écran. En raison de cette réponse instantanée, les programmes de peinture d'image sont très intéressants. En combinant l'image photographique ou l'image vidéo avec un programme de dessin, on obtient un outil très puissant avec lequel on peut produire des images perfectionnées qui ne pourraient pas exister dans la réalité.

Les programmes d'illustration utilisent des logiciels qui permettent la création de formes géométriques précises et de texte dans un grand choix de polices et de styles. Dans le domaine de la conception et du dessin assistés par ordinateur (CAD, DAO), des systèmes encore plus puissants produisent des dessins techniques pour la conception mécanique et électronique ainsi que pour l'architecture.

Modélisation et rendu 3D

Les systèmes décrits plus haut appartiennent à la catégorie de l'infographie 2D puisque, dans une scène que l'on est en train de peindre, le programme n'a pas d'information sur la dimension de profondeur. Dans une représentation 3D de l'univers (modèle), le logiciel conserve l'information de la profondeur. Les objets sont construits à partir de surfaces (planes ou courbées) ou à partir de simples volumes, tels que des cylindres, des sphères et des boîtes. Les éléments d'un modèle sont stockés comme tableaux de chiffres et sont arrangés en « scènes » dans lesquelles des sources lumineuses simulées sont également placées. Le programme de rendu graphique calcule l'apparence de la scène et stocke les valeurs de pixels dans la mémoire vidéo. Les scènes qui s'ensuivent ont une apparence artificielle, mais l'introduction de valeurs pseudo-aléatoires (par des techniques qu'on appelle fractales) produit des images réalistes de nuages, de montagnes, de plantes et d'arbres. Des techniques de pointe utilisant des courants et des nuages de particules permettent la modélisation et le rendu de fumée, de galaxie et de cheveux naturels.

La capacité de créer des images hautement réalistes permet la conception esthétique de plusieurs produits, des voitures aux montres en passant par les grille-pain. L'ajout de mouvements en infographie engendre le domaine prospère de l'animatique, qui peut être soit entièrement synthétique ou une combinaison de synthétique et de scènes en direct. Un domaine actif de la recherche est celui qui consiste à trouver des façons de reproduire des mouvements naturels, en particulier ceux des humains.

Alors que le programme de dessin présente une image immédiate sur l'écran, la scène 3D très réaliste peut prendre quelques minutes ou même des heures à calculer sur un ordinateur personnel. Un simulateur de vol utilise des ordinateurs spécialisés très puissants parce qu'il doit produire des scènes 3D hautement réalistes au rythme de 60 nouvelles images à la seconde avec un temps minimal de retard.

Domaines connexes

L'infographie a donné naissance à d'autres disciplines : la visualisation scientifique (permettant de visionner, par exemple, des molécules et des collisions de galaxies invisibles à l'oeil nu), les COMMUNICATIONS MULTIMÉDIAS (graphiques synchronisés, animation et son) et la réalité virtuelle (graphiques de projection stéréo en temps réel entourant le participant, souvent à l'aide de lunettes spéciales). Les domaines de l'interaction homme-machine et des interfaces-utilisateurs sont étroitement liés et dépendent beaucoup des premières techniques mises au point en infographie.

Contributions canadiennes

Les institutions et les entreprises canadiennes contribuent grandement au domaine de l'infographie. L'U. de Toronto et le Conseil national de recherches du Canada (CNRC) sont hôtes des premiers travaux en infographie effectués à la fin des années 60. Le CNRC, en collaboration avec l'OFFICE NATIONAL DU FILM, produit Hunger/La Faim, le premier film d'animation par ordinateur mis en nomination pour un Oscar en 1974. Au cours des années 70, on forme des groupes de recherche oeuvrant dans le domaine de l'infographie aux universités de Waterloo, de Montréal, de Calgary et de l'Alberta. De nos jours, la majorité des universités du pays offrent des programmes en infographie.

Au Canada, quelques sociétés sont reconnues dans le monde entier pour leurs logiciels d'animation : Alias/Wavefront, Softimage, Side Effects, Discreet Logic et Vertigo. Corel a créé le populaire logiciel graphique CorelDraw. Il existe également quelques entreprises en logiciel multimédia, de même que des maisons de production s'occupant de la production d'animation et de messages publicitaires.

Le Sheridan College, à Oakville (Ontario), possède l'un des premiers programmes importants dans la formation en animation par ordinateur. Les diplômés du Sheridan College et d'autres écoles, notamment l'Emily Carr Institute of Art and Design à Vancouver, travaillent dans de grands studios d'animation en Amérique du Nord.

Voir aussi INFORMATIQUE, APPLICATIONS DE L'; CINÉMA D'ANIMATION.

KELLOGG BOOTH, JOHN DILL et MARCELI WEIN

Auteurs ayant contribué à cet article:


Lecture supplémentaire

  • Annals of the History of Computing, Special Issue:"Computing in Canada" 16, 2 (1994); Norman R. Ballard and John N. Vardalas, Ferranti-Packard: Pioneers in Canadian Electrical Manufacturing (1994); Beverly J. Bleakly and Jean La Prairie, Entering the Computer Age: The Computer Industry in Canada, the First Thirty Years (1982); A.K. Dewdney, The Turing Omnibus (1989); Donald Hearn and M. Pauline Baker, Computer Graphics (1994); Jeff Prosise, How Computer Graphics Work (1994); Anthony Ralston and Edwin D. Reilly, eds, Encyclopedia of Computer Science (1976, rev 1993); Sun Microsystems, An Introduction to Computer Graphics Concepts: From Pixels to Pictures (1991).

Liens externes