Rencontre sérieuse

Découvrez le TOP 10 des meilleurs sites de rencontres sérieuses dans votre région !

Le monde passionnant de l'informatique et des ordinateurs


L'informatique à travers l'histoire

Les ordinateurs d'antant et de nos jours Un ordinateur est une machine programmable qui reçoit les données, les magasins et manipule les données de l'information, et fournit une sortie dans un format utile. Si un ordinateur peut, en théorie, être fabriqués à partir de presque rien (voir la section idées fausses), et des exemples mécaniques des ordinateurs ont existé à travers une grande partie de l'histoire humaine, les premiers ordinateurs électroniques ont été développés dans le milieu du 20e siècle (1940-1945 ). À l'origine, ils étaient de la taille d'une grande salle, de consommer autant d'électricité que plusieurs centaines moderne des ordinateurs personnels (PC). Ordinateurs modernes fondées sur les circuits intégrés sont des millions à des milliards de fois plus susceptibles que les premières machines, et occupent une fraction de l'espace sans jamais se rencontrer. ordinateurs simples sont assez petits pour rentrer dans les dispositifs mobiles, et peut être alimenté par une petite batterie. Les ordinateurs personnels dans leurs différentes formes sont des icônes de l'ère de l'information et ce que la plupart des gens pensent comme des "ordinateurs". Toutefois, les ordinateurs embarqués dans de nombreux dispositifs de lecteurs MP3 aux avions de combat et des jouets aux robots industriels sont les plus nombreux.

Les ordinateur : Les fausses idées

Un ordinateur n'a pas besoin d'être électrique, ni même d'un processeur, ni RAM, ni même disque dur. La définition minimale d'un ordinateur est tout ce qui transforme l'information de façon délibérée. technologie requise Article détaillé: calcul non conventionnelles systèmes de calcul flexible comme un ordinateur personnel peut être construit à partir de presque n'importe quoi. Par exemple, un ordinateur peut être faite de boules de billard (ordinateur boule de billard), ce qui est un exemple intuitif et pédagogique, un ordinateur peut être faite de presque rien. De façon plus réaliste, les ordinateurs modernes sont fabriqués à partir de transistors en semi-conducteurs lithographiée. Historiquement, les ordinateurs ont évolué à partir d'ordinateurs mécaniques et éventuellement de transistors tube à vide. Il est la recherche active pour rendre les ordinateurs à de nombreux prometteurs nouveaux types de technologies, telles que l'informatique optiques, des ordinateurs de l'ADN, les ordinateurs neuronaux, et les ordinateurs quantiques. Certaines d'entre elles peuvent facilement faire face aux problèmes que les ordinateurs modernes ne peuvent pas (par exemple, comment les ordinateurs quantiques peuvent briser des algorithmes de chiffrement quantique moderne par l'affacturage). paradigmes Architecture des ordinateurs Certains paradigmes différents sur la façon de construire un ordinateur à partir du sol en place: machines RAM Ce sont les types d'ordinateurs avec une mémoire processeur de l'ordinateur, etc, qui comprennent des instructions de base dans un langage machine. Le concept a évolué de la machine de Turing. Cerveau Les cerveaux sont des processeurs massivement parallèles des neurones, câblés en motifs complexes, qui communiquent via l'électricité et neurotransmetteurs. Langages de programmation Tels que le lambda-calcul, ou de langages de programmation modernes, sont des ordinateurs virtuels construits sur d'autres ordinateurs. Les automates cellulaires Par exemple, le jeu de la vie humaine peut créer des «planeurs» et des «boucles» et d'autres constructions qui transmettent l'information, ce modèle pourra être appliqué à l'informatique de l'ADN informatique chimique, etc Les groupes et les comités La liaison de plusieurs ordinateurs (les cerveaux) est lui-même un ordinateur portes logiques sont une abstraction commune qui peuvent s'appliquer à la plupart des paradigmes ci-dessus numérique ou analogique. La possibilité de stocker et d'exécuter des listes d'instructions appelées programmes de fabrique des ordinateurs extrêmement polyvalent, qui les distinguent des calculatrices. La thèse de Church-Turing est un énoncé mathématique de cette polyvalence: n'importe quel ordinateur avec un certain Turing-complet est, en principe, capable d'exécuter les mêmes tâches que n'importe quel autre ordinateur peut exécuter. Par conséquent, tout type d'ordinateur (netbook, superordinateur, automate cellulaire, etc) est en mesure d'accomplir les mêmes tâches de calcul, étant donné suffisamment de temps et la capacité de stockage. ordinateurs Limited fonction À l'inverse, un ordinateur qui est limité en fonction (qui n'est pas «Turing-complet") ne peut pas simuler les choses arbitraire. Par exemple, un calculatrices simples à quatre fonctions ne peut pas simuler un véritable ordinateur sans intervention humaine. Dans un exemple plus compliqué, sans la possibilité de programmer une console de jeu, il ne pourra jamais accomplir ce que d'une calculatrice programmable à partir des années 1990 pourrait (suffisamment de temps), le système dans son ensemble n'est pas Turing-complet, même si elle contient une Turing -complète des composants (le microprocesseur). Les organismes vivants (le corps, pas le cerveau) sont aussi des ordinateurs limitée fonction conçu pour faire des copies d'eux-mêmes, ils ne peuvent pas être reprogrammé sans génie génétique. ordinateurs virtuels Un ordinateur "est généralement considéré comme un périphérique physique. Toutefois, on peut créer un programme d'ordinateur qui décrit comment faire fonctionner un ordinateur différent, à savoir "la simulation d'un ordinateur dans un ordinateur". Non seulement est-ce une preuve constructive de la thèse de Church-Turing, mais est aussi très commun dans tous les ordinateurs modernes. Par exemple, certains langages de programmation utilisent ce qu'on appelle un interprète, qui est un ordinateur de simulation construit au-dessus de l'ordinateur de base, ce qui permet aux programmeurs d'écrire du code (entrée ordinateur) dans une langue autre que celle comprise par l'ordinateur de base (l'alternative consiste à utiliser un compilateur). En outre, les machines virtuelles sont des ordinateurs virtuels qui reproduisent presque un ordinateur physique dans le logiciel, et sont très couramment utilisées par les TI. Les machines virtuelles sont aussi une technique couramment utilisée pour créer des émulateurs, jeux tels les émulateurs de console. Histoire de l'informatique Article détaillé: Histoire de l'informatique du matériel La première utilisation du mot "ordinateur" a été enregistré en 1613, se référant à une personne qui a effectué les calculs, ou de calculs, et le mot continue à être utilisé dans ce sens jusqu'au milieu du 20e siècle. De la fin des années du 19ème siècle cependant, le mot a commencé à prendre tout son sens plus familier, décrivant une machine qui effectue les calculs sur [3]. Limited fonction des ordinateurs anciens Le métier à tisser Jacquard, exposée au Musée des sciences et de l'Industrie de Manchester, en Angleterre, a été l'un des premiers appareils programmables. L'histoire de l'informatique moderne commence avec deux technologies de calcul automatisé séparée et la programmabilité, mais pas seul appareil peut être identifié comme le premier ordinateur, en partie en raison de l'application incohérente de ce terme. Exemples de calcul de début de dispositifs mécaniques comprennent l'abaque, la règle à calcul et sans doute l'astrolabe et le mécanisme d'Anticythère, un ordinateur ancienne astronomique construit par les Grecs autour de 80 av. [4] Le mathématicien grec Héron d'Alexandrie (vers 10-70 après JC ) a construit un théâtre mécanique qui a joué une pièce de 10 minutes et était exploité par un système complexe de cordes et des tambours qui pourrait être considéré comme un moyen de décider quelles parties du mécanisme de fait des actions qui et quand. [5] Il s'agit de la essence de la programmabilité. L'horloge du château ", une horloge astronomique inventé par Al-Jazari en 1206, est considéré comme l'ordinateur plus tôt analogique programmable. [6] [vérification nécessaire] Il apparaît du zodiaque, les orbites lunaires et solaires, un croissant de lune en forme de voyage pointeur sur une passerelle causant des portes automatiques pour ouvrir toutes les heures, [7] [8] et de cinq musiciens qui jouaient de la musique robotique lorsqu'elle est frappée par des leviers actionnés par un arbre à cames attachés à une roue à eau. La longueur du jour et de nuit pourrait être re-programmé pour compenser les longueurs changement de jour et de nuit toute l'année [6]. La Renaissance a vu un nouvel élan européen des mathématiques et du génie. Wilhelm Schickard en 1623 a été le premier dispositif d'un certain nombre de calculatrices mécaniques construites par des ingénieurs européens, mais aucun à la définition moderne d'un ordinateur, car ils ne pouvaient pas être programmé. Premiers ordinateurs à des fins générales En 1801, Joseph Marie Jacquard a fait une amélioration du textile métier en introduisant une série de cartes de papier perforé comme un modèle qui a permis à son métier à tisser des motifs complexes automatiquement. Le métier à tisser Jacquard résultant a été une étape importante dans le développement des ordinateurs parce que l'utilisation de cartes perforées pour définir tissé motifs peuvent être considérés comme un début, certes limitée, sous forme de programmation. Il a été la fusion de calcul automatique avec la programmabilité qui a produit les premiers ordinateurs reconnaissable. En 1837, Charles Babbage a été le premier à conceptualiser et à la conception d'un ordinateur entièrement programmable mécanique, son moteur d'analyse [9]. Financiers limités et l'incapacité à résister à Babbage bricolage à la conception signifie que l'appareil n'a jamais été achevée. Dans la fin des années 1880, Herman Hollerith invente l'enregistrement des données sur un support lisible par machine. Avant d'utilisations supports lisibles par machine, ci-dessus, avait été pour le contrôle, pas de données. "Après quelques premiers essais avec du ruban de papier, il s'installe sur des cartes perforées ..."[ 10] Pour traiter ces cartes perforées, il inventa la tabulatrice, et les machines perforatrices. Ces trois inventions ont été le fondement de l'industrie de transformation modernes de l'information. Données à grande échelle de traitement automatisé des cartes perforées a été réalisée pour le recensement de 1890 aux États-Unis par la société Hollerith, qui devint plus tard le noyau d'IBM. À la fin du 19ème siècle un certain nombre de technologies qui allait plus tard se révéler utile dans la réalisation des ordinateurs pratiques ont commencé à apparaître: la carte perforée, algèbre de Boole, le tube à vide (valve thermionique) et le téléscripteur. Pendant la première moitié du 20e siècle, de nombreux besoins de calcul scientifique ont été accueillis par plus en plus sophistiquées des ordinateurs analogiques, qui ont utilisé un modèle mécanique ou électrique directe du problème de base pour le calcul. Cependant, elles n'étaient pas programmables et manquaient généralement de la polyvalence et la précision des ordinateurs modernes numérique. Alan Turing est largement considéré comme le père de l'informatique moderne. En 1936, Turing a fourni une formalisation de la notion d'influence de l'algorithme et le calcul avec la machine de Turing, en fournissant un modèle pour l'ordinateur électronique numérique. [11] de son rôle dans la création de l'informatique moderne, le magazine Time en nommant un de Turing les 100 personnes les plus influentes du 20ème siècle, déclare: «Le fait demeure que tout le monde robinets qui, à un clavier, l'ouverture d'une feuille de calcul ou un programme de traitement de texte, travaille sur une incarnation d'une machine de Turing» [11]. Le Z3 Zuse, 1941, d'examiner d'abord dans le monde travaillent programmable, machine à calculer entièrement automatique. L'ENIAC, qui est devenu opérationnel en 1946, est considéré comme le premier ordinateur électronique à des fins générales. EDSAC fut l'un des premiers ordinateurs à mettre en œuvre le programme en mémoire (von Neumann), l'architecture. Die d'un microprocesseur Intel 80486DX2 (taille réelle: 12 × 6,75 mm) dans son emballage. L'inventeur de l'ordinateur contrôlé par programme a été Konrad Zuse, qui a construit le premier ordinateur de travail en 1941 et plus tard en 1955 le premier ordinateur basé sur le stockage magnétique [12]. George Stibitz est internationalement reconnu comme un père de l'ordinateur numérique moderne. Tout en travaillant chez Bell Labs en Novembre 1937, Stibitz inventé et construit un simulateur à base de relais qu'il a baptisé le "Modèle K" (pour table de cuisine ", sur lequel il avait assemblé), qui a été le premier à utiliser des circuits binaires pour effectuer une opération arithmétique. Plus tard modèles ajouté une plus grande sophistication y compris l'arithmétique complexe et programmabilité [13]. Une succession de dispositifs informatiques sans cesse plus puissants et souples ont été construits dans les années 1930 et 1940, ajoutant progressivement les principales caractéristiques que l'on voit dans les ordinateurs modernes. L'utilisation de l'électronique numérique (en grande partie inventée par Claude Shannon en 1937) et plus souple de programmation ont été des étapes d'une importance vitale, mais la définition d'un point le long de cette route comme «le premier ordinateur électronique numérique» est difficult.Shannon 1940 On peut citer notamment. * Konrad Zuse électromécaniques "machines de A à Z". Le Z3 (1941) a été la première machine de travail mettant en vedette l'arithmétique binaire, y compris l'arithmétique en virgule flottante et une mesure de la programmabilité. En 1998, le Z3 a été prouvée pour être Turing complète donc être le premier ordinateur opérationnel [14]. * La non-programmable Atanasoff-Berry Computer (1941) qui a utilisé un tube à vide de calcul fondée, nombres binaires, et la mémoire régénératrice condensateur. L'utilisation de la mémoire régénératrice lui a permis d'être beaucoup plus compact que ses concurrents (soit environ la taille d'un grand bureau ou table de travail), étant donné que les résultats intermédiaires pourraient être stockées, puis réinjectée dans le même ensemble d'éléments de calcul. * Le secret britannique ordinateurs Colossus (1943), [15], qui avait limité la programmabilité, mais a démontré qu'un appareil à l'aide de milliers de tubes pourrait être raisonnablement fiable et électronique reprogrammable. Il a été utilisé pour briser les codes de guerre allemande. * Le Harvard Mark I (1944), un ordinateur de grande envergure avec la programmabilité électromécaniques limitée. * L'armée américaine balistiques Laboratoire de recherche ENIAC (1946), qui utilise l'arithmétique décimale et est parfois appelé l'ordinateur premier objectif général d'identification électronique (depuis Z3 Konrad Zuse de 1941 électro-aimants utilisés à la place de l'électronique). Au départ, toutefois, ENIAC a une architecture rigide qui prévoit essentiellement que recâblage de changer sa programmation. l'architecture à programme enregistré Plusieurs développeurs de l'ENIAC, en reconnaissant ses défauts, est venu avec un design beaucoup plus souple et élégant, qui allait être connu sous le nom de l'architecture à programme enregistré "ou l'architecture de von Neumann. Cette conception a été formellement décrite par John von Neumann dans le document de première ébauche d'un rapport sur l'EDVAC, distribué en 1945. Un certain nombre de projets visant à développer des ordinateurs basés sur l'architecture à programme enregistré commencé à cette époque, le premier de ces cours d'achèvement en Grande-Bretagne. Le premier prototype de travail devant être mis en évidence la Manchester petite échelle expérimentale Machine (ssem ou "Baby") en 1948. L'Electronic Delay Storage Automatic Calculator (EDSAC), complété d'un an après la ssem à l'Université de Cambridge, a été la première application pratique, non-expérimentale de la conception du programme a été stocké et mis à profit immédiatement pour les travaux de recherche à l'université. Peu de temps après, la machine initialement décrite par von Neumann papier EDVAC-est achevé, mais ne voit pas l'utilisation à plein temps pour deux années supplémentaires. Presque tous les ordinateurs modernes mettre en œuvre une certaine forme de l'architecture à programme enregistré, ce qui en fait le seul trait par lequel le mot «ordinateur» est maintenant défini. Bien que les technologies utilisées dans les ordinateurs ont radicalement changé depuis le premier électroniques, des ordinateurs à des fins générales des années 1940, la plupart continuent d'utiliser l'architecture de von Neumann. Au début des années 1950, les scientifiques soviétiques Sergueï Sobolev et Nikolay Brusentsov mené des recherches sur des ordinateurs ternaires, les appareils qui fonctionnaient sur une base trois système de numérotation de -1, 0 et 1 plutôt que le système de numérotation binaire classique sur lequel la plupart des ordinateurs sont basés. Ils ont conçu l'Setun, un ordinateur fonctionnel ternaire, à l'Université de Moscou. Le dispositif a été mis en production limitée dans l'Union soviétique, mais supplanté par l'architecture plus binaire commun. Semi-conducteurs et microprocesseurs Ordinateurs tubes sous vide à l'aide de leurs éléments électroniques ont été utilisés durant les années 1950, mais dans les années 1960 ont été largement remplacés par des machines à base de transistor, qui étaient plus petits, plus rapides, moins chers à produire, nécessitant moins de puissance, et ils étaient plus fiables. Le premier ordinateur à transistors a été démontrée à l'Université de Manchester en 1953 [16]. Dans les années 1970, la technologie des circuits intégrés et la création subséquente de microprocesseurs, tels que l'Intel 4004, a encore diminué la taille et les coûts et accélérer encore augmenté et la fiabilité des ordinateurs . À la fin des années 1970, de nombreux produits comme les enregistreurs vidéo contenues dédié ordinateurs appelés microcontrôleurs, et ils ont commencé à apparaître comme un remplacement à des contrôles mécaniques des appareils électroménagers tels que machines à laver. Les années 1980 ont vu ordinateurs à la maison et l'ordinateur personnel aujourd'hui omniprésents. Avec l'évolution de l'Internet, les ordinateurs personnels sont de plus en plus fréquent que la télévision et le téléphone dans la citation [des ménages nécessaire]. smartphones ordinateurs modernes sont entièrement programmables en leur nom propre, et à partir de 2009 pourrait bien être la forme la plus courante de ces ordinateurs en citation [existence nécessaire]. Programmes Le trait caractéristique des ordinateurs modernes qui les distingue de toutes les autres machines, c'est qu'ils peuvent être programmés. C'est-à-dire que certains types d'instructions (le programme) ne peut être donnée à l'ordinateur, et il continuera de les traiter. Alors que certains ordinateurs peuvent avoir des concepts étranges "instructions" et "sortie" (voir le calcul quantique), les ordinateurs modernes basés sur l'architecture de von Neumann sont souvent code machine sous la forme d'un langage de programmation impératif. En termes pratiques, un programme d'ordinateur peut être juste quelques instructions ou s'étendre à plusieurs millions d'instructions, de même que les programmes de traitement de texte et les navigateurs web par exemple. Un ordinateur peut exécuter moderne typique des milliards d'instructions par seconde (gigaflops) et prend rarement une erreur pendant de nombreuses années de fonctionnement. programmes informatiques à grande constitué de plusieurs millions d'instructions peut prendre des années des équipes de programmeurs à écrire, et en raison de la complexité de la tâche presque certainement contenir des erreurs. architecture programme enregistré Article détaillé: Programme informatique et la programmation informatique A 1970 cartes perforées contenant une ligne d'un programme Fortran. La carte se lit comme suit: "A à Z (1) = YW (1)» et est étiqueté "PROJ039" à des fins d'identification. Le présent article s'applique à la plupart des ordinateurs RAM commune machine à base de. Dans la plupart des cas, des instructions informatiques sont simples: ajouter un numéro à un autre, déplacer des données d'un endroit à un autre, envoyez un message à certains périphérique externe, etc Ces instructions sont lues en mémoire de l'ordinateur et sont généralement réalisées (exécuté) dans l'ordre qu'ils ont reçu. instructions Cependant, il ya généralement spécialisés pour indiquer à l'ordinateur de sauter en avant ou en arrière pour un autre endroit dans le programme et à poursuivre l'exécution à partir de là. Ils sont appelés «sauter» les instructions (ou branches). En outre, des instructions de saut peut être concrétisé sous condition afin que les différentes séquences d'instructions peuvent être utilisées en fonction du résultat de certaines de calcul précédente ou un événement extérieur. De nombreux ordinateurs directement en charge des sous-programmes en fournissant un type de saut que "se souvient" de l'emplacement et il est passé de une autre instruction pour revenir à l'instruction qui suit celle instruction de saut. L'exécution du programme peut être comparée à la lecture d'un livre. Si une personne normalement lire chaque mot et ligne à la suite, ils peuvent parfois revenir en arrière à un lieu plus tôt dans le texte ou sauter des sections qui ne sont pas d'intérêt. De même, un ordinateur peut parfois revenir en arrière et répéter les instructions dans certaines partie du programme, encore et encore jusqu'à ce qu'un état intérieur est rempli. C'est ce qu'on appelle le flux de contrôle au sein du programme et c'est ce qui permet à l'ordinateur pour effectuer des tâches à plusieurs reprises sans intervention humaine. En comparaison, une personne utilisant une calculatrice de poche peut effectuer une opération arithmétique de base telles que l'ajout de deux nombres avec seulement quelques clics seulement. Mais pour ajouter l'ensemble des numéros de 1 à 1000 prendrait des milliers d'appuyer sur un bouton et beaucoup de temps avec une quasi-certitude de faire une erreur. D'autre part, un ordinateur peut être programmé pour ce faire avec juste quelques instructions simples. Par exemple: mov # 0, la somme; somme à 0 mov # 1, num; nombre fixé à 1 boucle: Ajouter num, somme, ajouter à la somme num Ajouter # 1, num; ajouter 1 à n num cmp, # 1000; comparer num à 1000 boucle ble, si num = 1000, revenir à «boucle» mettre un terme; fin du programme. arrêter l'exécution Une fois dit pour exécuter ce programme, l'ordinateur va effectuer la tâche plus répétitives sans intervention humaine. Il ne sera presque jamais faire une erreur et un PC moderne peut accomplir sa tâche dans environ un millionième de seconde [17]. Bugs Erreurs dans les programmes d'ordinateur sont appelés "bugs". Bugs peut être bénigne et ne pas affecter l'utilité du programme, ou n'ont que des effets subtils. Mais dans certains cas, ils peuvent provoquer le programme de «suspendre», ne pas répondre aux intrants tels que les clics de souris ou de frappes, ou de tout échec ou de "Crash". Sinon bugs bénignes peuvent parfois peut être exploitée à des fins malicieuses par un utilisateur peu scrupuleux rédaction d'un "exploit" du code conçu pour tirer parti d'un bug et de perturber la bonne exécution d'un ordinateur. Les bogues sont généralement pas la faute de l'ordinateur. Comme les ordinateurs contentera d'exécuter les instructions qu'on leur donne, les bogues sont presque toujours le résultat d'une erreur de programmation ou d'une omission faite de la conception du programme [18]. Code Machine Dans la plupart des ordinateurs, des instructions individuelles sont stockées sous forme de code machine avec chaque instruction étant donné un numéro unique (le code du fonctionnement ou opcode pour faire court). La commande pour ajouter deux nombres aurait un opcode, la commande de multiplier entre eux ont un opcode différents et ainsi de suite. Le plus simple des ordinateurs sont en mesure d'effectuer tout d'une poignée d'instructions différentes, les ordinateurs plus complexes ont plusieurs centaines de choisir, chacun avec un code numérique unique. Depuis la mémoire de l'ordinateur est capable de stocker des nombres, il peut également stocker les codes d'instruction. Cela conduit à ce fait important que les programmes de l'ensemble (qui ne sont que des listes de ces instructions) peut être représenté comme des listes de numéros et peuvent être eux-mêmes manipulés à l'intérieur de l'ordinateur de la même manière que les données numériques. Le concept fondamental des programmes de conservation dans la mémoire de l'ordinateur à côté des données qu'ils fonctionnent sur le nœud du von Neumann, ou par programme enregistré, de l'architecture. Dans certains cas, un ordinateur peut stocker tout ou partie de son programme dans la mémoire qui sont séparés à partir des données qu'elle exploite sur. C'est ce qu'on appelle l'architecture Harvard après le Harvard Mark I ordinateur. Modern von Neumann ordinateurs afficher certains traits de l'architecture de Harvard dans leur conception, comme dans les caches du processeur. Bien qu'il soit possible d'écrire des programmes informatiques en tant que de longues listes de numéros (langage machine) et si cette technique a été utilisée avec de nombreux ordinateurs au début [19], il est extrêmement pénible et potentiellement source d'erreurs de le faire dans la pratique, en particulier pour des programmes complexes . Au lieu de cela, chaque instruction de base ne peut être donnée un nom court qui témoigne de sa fonction et facile à retenir, un moyen mnémotechnique comme ADD, SUB, MULT ou sauter. Ces mnémoniques sont collectivement connus comme langage d'assemblage d'un ordinateur. Conversion des programmes écrits en langage d'assemblage en quelque chose de l'ordinateur peut effectivement comprendre (langage machine) est généralement réalisé par un programme informatique appelé un assembleur. Machine langues et les langues de l'Assemblée qui les représentent (collectivement appelés les langages de programmation de bas niveau) ont tendance à être propres à un type particulier d'ordinateur. Par exemple, un ordinateur d'architecture ARM (qui peut être trouvée dans un PDA ou un jeu vidéo de poche) ne peut pas comprendre le langage de la machine d'un processeur Intel Pentium ou AMD Athlon 64 ordinateur qui pourrait être dans un PC [20]. langues de niveau supérieur et de la conception du programme Bien que beaucoup plus facile que dans le langage machine, à écrire des programmes en langage d'assemblage long est souvent difficile et est également source d'erreurs. Par conséquent, la plupart des programmes concrets sont écrits en plus abstraite des langages de programmation de haut niveau qui sont capables d'exprimer les besoins du programmeur plus facilement (et donc aider à réduire programmeur d'erreur). langages de haut niveau sont généralement "compilé" en langage machine (ou parfois en langage d'assemblage, puis en langage machine) en utilisant un autre programme informatique appelé un compilateur. [21 langues] de haut niveau sont moins liés au fonctionnement de l'ordinateur cible de langage assembleur et, plus liées à la langue et la structure du problème (s) à résoudre par le programme final. Il est donc souvent possible d'utiliser différents compilateurs pour traduire le même programme de haut niveau de langage dans le langage machine de nombreux différents types d'ordinateurs. Cela fait partie des moyens par lesquels le logiciel comme les jeux vidéo peuvent être mis à disposition pour différentes architectures informatiques comme les ordinateurs personnels et consoles de jeux vidéo différents. La tâche de développer de grands systèmes logiciels représente un défi important intellectuelle. logiciel de production avec une fiabilité suffisamment élevé, selon un calendrier prévisible et du budget a toujours été difficile, la discipline académique et professionnel du génie logiciel se concentre spécifiquement sur ce défi. Fonction Article détaillé: Unité centrale de traitement et de microprocesseur Un ordinateur à usage général comprend quatre volets principaux: l'unité arithmétique et logique (ALU), l'unité de contrôle, la mémoire, et les périphériques d'entrée et de sortie (collectivement appelées I / O). Ces pièces sont reliées entre elles par des bus, souvent en groupes de fils. Dans chacune de ces pièces sont des milliers de milliards de petits circuits électriques qui peuvent être activés ou désactivés à l'aide d'un interrupteur électronique. Chaque circuit représente un bit (binary digit) de l'information de sorte que lorsque le circuit est qu'il représente un «1», et lorsqu'il est éteint il représente un "0" (dans la représentation logique positive). Les circuits sont disposés dans des portes logiques de sorte que un ou plusieurs des circuits peut contrôler l'état d'un ou de plusieurs des autres circuits. L'unité de contrôle, ALU, registres et de base I / O (et souvent d'autres matériels étroitement liée à ceux-ci) sont connus sous le nom d'une unité centrale de traitement (CPU). Au début processeurs sont composés de plusieurs éléments distincts, mais depuis le milieu des années 1970 processeurs ont généralement été construits sur un seul circuit intégré appelé un microprocesseur. Unité de commande Article détaillé: Architecture de processeur et l'unité de contrôle Schéma montrant comment une instruction de l'architecture MIPS particulier serait décodé par le système de contrôle. L'unité de contrôle (souvent appelé un système de contrôle ou d'un contrôleur central) gère différents composants de l'ordinateur, il lit et interprète (décode) les instructions du programme, les transformant en une série de signaux de commande qui activent d'autres parties de l'ordinateur. [22] Control systèmes dans les ordinateurs de pointe peut changer l'ordre de quelques instructions afin d'améliorer les performances. Un élément clé commune à tous les CPU est le programme de lutte contre, une cellule de mémoire spéciale (un registre) qui conserve la trace de quel endroit dans la mémoire de l'instruction suivante doit être lue à partir de [23]. La fonction du système de contrôle est la suivante-noter que ceci est une description simplifiée, et certaines de ces étapes peuvent être effectuées simultanément ou dans un ordre différent selon le type de processeur: 1. Lire le code de la prochaine instruction de la cellule indiquée par le compteur de programme. 2. Décoder le code numérique pour l'enseignement dans un ensemble de commandes ou des signaux pour chacune des autres systèmes. 3. Incrémenter le compteur de programme pour qu'elle pointe vers la prochaine instruction. 4. Lire toutes les données de l'instruction exige à partir de cellules dans la mémoire (ou peut-être à partir d'un périphérique d'entrée). L'emplacement de ces données nécessaires sont généralement stockées dans le code d'instruction. 5. Fournir les données nécessaires à une ALU ou créer un compte. 6. Si l'instruction nécessite une ALU ou du matériel spécialisé pour terminer, de charger le matériel pour effectuer l'opération demandée. 7. Donnez le résultat de l'ALU Retour à un emplacement de mémoire ou à un registre ou peut-être un périphérique de sortie. 8. Aller retour à l'étape (1). Depuis le compteur programme (conceptuellement) juste un autre ensemble de cellules de mémoire, il peut être modifié par les calculs effectués dans le ALU. L'ajout de 100 au programme de lutte contre causerait la prochaine instruction à être lu à partir d'un lieu de 100 points plus bas du programme. Instructions qui modifient le programme de lutte contre sont souvent appelés «sauts» et permettent de boucle (instructions qui sont répétées par l'ordinateur) et souvent exécution des instructions conditionnelles (deux exemples de contrôle de flux). Il est à noter que la séquence d'opérations que l'unité de commande passe par le traitement d'une instruction est en lui-même comme un court programme d'ordinateur et même, dans certains dessins CPU plus complexe, il ya un autre ordinateur encore plus petite appelée microséquenceur qui exécute un microcode programme qui fait de tous ces événements de se produire. unité arithmétique logique / (ALU) Article détaillé: Unité arithmétique et logique L'ALU est capable d'exécuter deux catégories d'opérations: l'arithmétique et logique [24]. L'ensemble des opérations arithmétiques que soutient en particulier ALU peut être limitée à additionner et soustraire ou pourrait comporter à la multiplication ou division, les fonctions trigonométriques (sinus, cosinus, etc) et les racines carrées. Certains ne peut fonctionner que sur les nombres entiers (nombres entiers) tandis que d'autres utilisent à virgule flottante pour représenter des nombres réels, fût-ce avec une précision limitée. Cependant, n'importe quel ordinateur qui est capable d'exécuter seulement les opérations les plus simples peuvent être programmés pour briser les opérations plus complexes en étapes simples qu'il peut effectuer. Par conséquent, n'importe quel ordinateur peut être programmé pour exécuter une opération arithmétique, mais il faudra plus de temps à le faire si sa ALU ne supporte pas directement l'opération. Un ALU peut aussi comparer les nombres et les valeurs de retour boolean vérité (vrai ou faux) selon que l'on est égal à, supérieur ou inférieur à l'autre ("est de 64 supérieur à 65?"). opérations logiques impliquent la logique booléenne: ET, OU, XOR et NOT. Ceux-ci peuvent être utiles tant pour la création de complexes instructions conditionnelles et de la logique booléenne de traitement. ordinateurs superscalaire peut contenir ALUs multiples de sorte qu'elles peuvent traiter plusieurs instructions en même temps [25]. processeurs graphiques et des ordinateurs avec SIMD et MIMD caractéristiques fournissent souvent ALUs qui peut effectuer des opérations arithmétiques sur les vecteurs et les matrices. Mémoire Article détaillé: stockage de données informatiques mémoire à tores magnétiques était la mémoire de l'ordinateur de son choix pendant les années 1960, jusqu'à ce qu'il soit remplacé par une mémoire à semi-conducteurs. mémoire d'un ordinateur peut être considéré comme une liste de cellules dans lesquelles numéros peuvent être placés ou lire. Chaque cellule a une numérotée «adresse» et peut stocker un numéro unique. L'ordinateur peut être chargé de «mettre le numéro 123 dans la cellule numéro 1357» ou à «ajouter le nombre qui est dans la cellule 1357 pour le nombre qui est dans la cellule 2468 et mis la réponse dans la cellule 1595". Les informations stockées dans la mémoire peut représenter pratiquement n'importe quoi. Les lettres, chiffres, instructions de l'ordinateur peut même être placé dans la mémoire avec la même facilité. Depuis le CPU ne fait pas de distinction entre les différents types d'information, il est de la responsabilité du logiciel à donner un sens à ce que la mémoire voit rien d'autre qu'une série de chiffres. Dans presque tous les ordinateurs modernes, chaque cellule de mémoire est mis en place pour stocker des nombres binaires en groupes de huit bits (appelé un octet). Chaque octet peut représenter 256 valeurs différentes (2 ^ 8 = 256); soit de 0 à 255 ou -128 à 127. Pour stocker un plus grand nombre, plusieurs octets consécutifs peuvent être utilisés (typiquement, deux, quatre ou huit). Lorsque les nombres négatifs sont nécessaires, elles sont généralement stockées dans deux notation complément. D'autres arrangements sont possibles, mais ne sont généralement pas visibles en dehors des applications spécialisées ou dans des contextes historiques. Un ordinateur peut stocker n'importe quel type d'information dans la mémoire si elle peut être représentée numériquement. Les ordinateurs modernes ont des milliards, voire des milliards d'octets de mémoire. Le processeur contient un ensemble spécial de cellules mémoire appelée registres qui peuvent être lues et écrites à beaucoup plus rapidement que la zone de mémoire principale. Il ya généralement entre deux et cent registres en fonction du type de CPU. Les registres sont utilisés pour les éléments de données le plus souvent nécessaire pour éviter d'avoir à accéder à la mémoire principale de données chaque fois que nécessaire. Comme les données sont constamment en cours d'élaboration, en réduisant le besoin d'accéder à la mémoire principale (qui est souvent lent par rapport à l'ALU et unités de contrôle) augmente considérablement la vitesse de l'ordinateur. Mémoire d'ordinateur principal se décline en deux variétés principales: la mémoire à accès aléatoire ou mémoire vive et mémoire morte ou ROM. RAM peuvent être lus et écrits à chaque fois que le CPU le commande, mais ROM est pré-chargé avec des données et des logiciels qui ne change jamais, de sorte que le CPU ne peut lire de lui. ROM est généralement utilisé pour stocker initial de l'ordinateur des instructions de démarrage. En général, le contenu de la RAM sont effacées lorsque l'alimentation de l'ordinateur est éteint, mais conserve sa ROM de données indéfiniment.