La programmation du preimier ordinateur

divaldo15 Messages postés 6 Statut Membre -  
 Utilisateur anonyme -
bonsoir, s'il vous plait je voulais savoir comment on a programmer le premier ordinateur vue q'il y avait pas pas de support pour ça ( machine pour écrire le programme). et aussi savoir si on peut programmer directement en binaire donc en quelque sorte programmer et exécuter sans avoir a passer par la compilation. et aussi savoir comment a été programmer le premier compilateur.

2 réponses

  1. KX Messages postés 19031 Statut Modérateur 3 020
     
    Bonjour,

    Cela dépend ce que tu appelles "ordinateur".

    La première machine programmable date de 1725. À l'aide d'un ruban perforé qui permettait de définir le motif d'un métier à tisser...
    Certes on est encore loin de l'iPhone mais comme la pile électrique n'a été inventé qu'en 1799 c'était déjà pas mal ;-)

    Un peu de bibliographie :
    https://www.commentcamarche.net/contents/480-ordinateur-histoire
    https://fr.wikipedia.org/wiki/Histoire_des_ordinateursLa confiance n'exclut pas le contrôle
    1
    1. divaldo15 Messages postés 6 Statut Membre
       
      je te remercie. tu peut avoir une idée de comment programmer directement en binaire?
      0
      1. KX Messages postés 19031 Statut Modérateur 3 020 > divaldo15 Messages postés 6 Statut Membre
         
        On ne peut pas programmer directement en binaire sur un ordinateur moderne.
        Parce qu'aujourd'hui les calculs sont effectués par des processeurs, qui est le seul à traiter véritablement du binaire. Mais au niveau de l'ordinateur les instructions sont traités en langage machine, qui n'est plus du binaire.

        Voir :
        https://fr.wikipedia.org/wiki/Langage_machine
        https://fr.wikipedia.org/wiki/Instruction_machine
        https://fr.wikipedia.org/wiki/Jeu_d'instructions
        0
    2. divaldo15 Messages postés 6 Statut Membre
       
      donc je suppose que si tout le monde cherche a utiliser les autres langage comme le C et le JAVA c est parce que le langage machine est surement très complexe a utilisé. j avoue que ça m'excite un peu de savoir comment tous ca se pass
      0
      1. KX Messages postés 19031 Statut Modérateur 3 020 > divaldo15 Messages postés 6 Statut Membre
         
        Le langage machine n'est pas complexe en soit, mais ça ne fait quasiment rien à chaque instruction. Si par exemple tu devais programmer l'envoi d'un mail en langage machine à partir de rien... tu en aurais pour des mois avant d'envoyer ton mail, et tu devrais en recoder une grande partie pour envoyer un deuxième mail...

        Si on utilise des langages de programmation c'est pour gagner en productivité, on ne pourrait pas coder des systèmes informatiques complet (internet par exemple) si on devait le faire en binaire. Donc on utilise les langages de programmation pour aller directement à l'essentiel sans tout recoder à chaque fois.

        Comment fonctionne Java par exemple ?
        Le code est écrit dans un fichier texte lisible (très loin du binaire) qui sera ensuite réécrit dans un langage intermédiaire (le bytecode) qui est par un autre programme (la machine virtuelle). Cette machine virtuelle a été codée en C++ et est compilé dans un langage propre au système d'exploitation (.exe pour Windows, .so pour Linux...) et c'est le système d'exploitation qui transmet les instructions machines au processeur, qui les traite en binaire.
        Donc si envoyer un mail en Java c'est facile, c'est parce qu'il y a derrière des millions de lignes de codes (dans la machine virtuelle ou le système d'exploitation) qu'il faudrait reprendre de zéro pour tout refaire en instructions machines...
        0
    3. divaldo15 Messages postés 6 Statut Membre
       
      OK j comprend assez maintenant. en fait si il faut programmer avec le langage machine on aurait pas besoin d'un système d'exploitation pour l'exécuter. la machine même sera a mesure de le comprendre. donc d exécuter le programme.
      0
  2. jee pee Messages postés 9444 Date d'inscription   Statut Modérateur Dernière intervention   9 981
     
    Salut,

    Il y a presque 40 ans j'ai rencontré la personne qui a conçu le système d'exploitation de cette machine :


    Il a écrit le programme, en a fait la version en code machine pour le processeur (je ne sais plus s'il l'a effectué à la main ou a pu faire, par exemple, un listing de conversion sur une autre machine) puis l'a entré en mémoire, bit par bit, à l'aide des clés de la face avant. Mais il a du s'y reprendre à plusieurs fois. Dans cet OS il y avait une commande pour enregistrer le contenu de la mémoire sur un lecteur de k7 (audio) et le sauvegarder. Et il y avait en mémoire morte un boot qui lisait le contenu de la K7 pour charger l'OS en mémoire. Il avait alors embryon d'OS sur lequel greffer des fonctions supplémentaires (gerer un clavier, gerer un affichage, ...).

    Cdlt
    Un étranger, c'est un ami qu'on n'a pas encore rencontré.
    0
    1. divaldo15 Messages postés 6 Statut Membre
       
      ça a du être un sacré travail. j'aimerai bien apprendre la langage machine des processeur intel x86
      0
    2. jee pee Messages postés 9444 Date d'inscription   Statut Modérateur Dernière intervention   9 981 > divaldo15 Messages postés 6 Statut Membre
       
      En dehors des génies ou des fous qui pensent en code machine, tu devrais apprendre l'assembleur qui est le langage de programmation au plus près du processeur
      0
    3. divaldo15 Messages postés 6 Statut Membre
       
      merci. je pense que tu a raison.
      0
    4. Utilisateur anonyme
       
      Apprendre l'assembleur ou le langage machine est pareil, sauf que le langage machine est juste la traduction du langage asm (sur la même arch) en nombre (plus souvent en héxa).

      Donc à toi de voir si c'est plus aisé de retenir des nombres et leurs définitions que de mots.

      Après l'avantage du langage binaire sur l'asm est bien évidemment l'abandon de compilo, avoir l'impression d'être encore plus proche du CPU et de sa technologie et je pense quelques tours de passe-passe disponible qu'avec le langage binaire (déjà qu'il y en a en asm vs autres).

      Tu auras juste besoin d'écrire dans un fichier à l'aide d'un éditeur hexadécimal comme HxD pour win puis tu changes l'extension en .exe et c'est tout.

      https://software.intel.com/content/www/us/en/develop/articles/intel-sdm.html
      0
    5. jee pee Messages postés 9444 Date d'inscription   Statut Modérateur Dernière intervention   9 981 > Utilisateur anonyme
       
      Alors je ne sais pas si on doit classer shaynox en génie ou en fou ;-)

      La seule instruction assembleur dont j'ai retenu le code binaire c'est NOP

      Je préfère un source texte avec LDA, STA, MOV

      Souvent on se penche sur du code exécutable quand justement on n'a pas le source. Et le décodage en direct d'un programme de déjà quelques milliers de caractères, bonjour. En plus des codes il faut mémoriser si l'instruction tient sur 1,2,3,4 ... octets. On va plutôt chercher un logiciel désassembleur pour générer un source intelligible par le commun des informaticiens.

      Je viens de voir que cela existe même en ligne maintenant : https://onlinedisassembler.com/odaweb/ Il y a un exemple de code machine et de sa traduction. Déjà sur juste 35 octets c'est du boulot.

      Exemple, l'instruction
      884c1301
      signifiant
      mov BYTE PTR [ebx+edx*1+0x1],cl
      il faut surement être très balaise pour la coder direct en langage machine.
      0