c’est quoi du « code natif »?

11 sujets de 1 à 11 (sur un total de 11)

  • fenrix

      #1372

      tout est dans la question :-D

      Niffo

        #31960

        Compilé spécifiquement pour l’architecture en question (os/processeur)

        fenrix

          #31961

          quelle difféence avec de l’assembleur?

          anonyme

            #31962

            Du code natif c’est du code qui n’est pas émulé/wrappé.

            Prenons un programme Z, compilé en 68000, sous AmigaOs.

            Si on le lance sur un AmigaOs 3.9 avec un 68060, le programme Z fonctionne en natif.

            Si on lance ce programme Z sur un AmigaOne sous Os 4, il fonctionne maintenant en émulation. Le programme Z ne peut fonctionner d’ailleur sous Os 4 que si une émulation est capable de le lancer. (en l’occurence oui, mais ça pourrait ne pas être le cas). Le cas est le meme pour MorphOs, Amithlon… Le programme ne fonctionne que grace à l’émulation, dans tous les cas.

            Ca n’a rien a voir avec le language. Un programme AMOS fonctionnant sur un Amiga 68000 fonctionne bel et bien en natif (AMOS étant 68000).

            En contreparti, un programme Assembleur 68000 lancé sur AmigaOne / Os 4 – Amithlon – Pegasos, il a beau etre en Assembleur, il devient émulé. (c’est à dire qu’il ne fonctionne pas en natif, pas sur un 68000, pas sous AmigaOs 3 et moins).

            Daff

              #31963

              @Articia : un programme compilé pour un 68020 (AmigaOS) peut-il être considéré comme natif quand il tourne sur un 68060 ? un 68000 ?

              logo

                #31964

                Oui, (si il tourne, ce qui est souvent le cas). « Natif » est une question d’environnement matériel et logiciel, comme l’a très bien expliqué Crisot. Même famille de cpu, même famille d’Os -> natif.

                A contrario, si un programme tourne pour interpréter le code (le traduire), ce n’est plus natif. Ce qui se traduit normalement par une baisse de performances de la machine qui fait tourner du code non natif, en comparaison de ses possibilités maximales, atteintes avec du code natif (et un bon programmeur ;-)).

                PowerMac - G5 2.0 GHz - 1.7 Go RAM - Radeon 9600P 128 Mo - MorphOs 3.13 et Peg2 - G4 RIP
                Mac mini - G4 1.42 GHz - 1 Go RAM - Radeon 9200 32 Mo - MorphOs 3.9
                WinUAE sur HP Core2 Quad 8200
                Epave de Mist FPGA remplacé par un Sidi
                A1200 malade 😉 et A500 512+512Ko RAM Kickstart 1.3

                hybrid

                  #31965

                  Daff a écrit :

                  @Articia : un programme compilé pour un 68020 (AmigaOS) peut-il être considéré comme natif quand il tourne sur un 68060 ? un 68000 ?

                  Oui car il s’agit de la même architecture, le 68060 étant rétro compatible avec le 68020, l’inverse n’est pas vrai mais dans ce cas, on parlera plutôt doptimisation spécifique mais ça reste du code natif.

                  hybrid

                    #31966

                    Autre chose, rappelons qu’un code natif est un code COMPILE pour une architecture, tout code interprété est non natif car il ne dépend d’aucune architecture, c’est le cas de tout langage de script ou les lagages du genre Java/Rebol, etc etc …

                    Par contre, il existe une petite subtilité appelée JIT qui permet, à lors de l’interprétation du code, de « compiler à la volée » ce code non natif en code natif, ce code natif obtenu est alors conservé dans un buffer et réutilisé à chaque fois que nécessaire.

                    C’est un gain de performance non négligeable au prix de quelques pertes puisqu’il faut bien le compiler une première fois dans le buffer avant de pouvoir le réutiliser en natif mais c’est assez négligeable.

                    En revanche, à moins d’avoir un très gros buffer, ça ne marche pas très bien si le code exécuté passe son temps à utiliser des tonnes de routines très différentes qui n’arrivent pas à toutes trouver leur place dans le buffer, dans ce cas, il faut « swapper » le code compilé trop souvent d’où perte de perfs.

                    fenrix

                      #31967

                      Merci à tous, j’ai compris :-)

                      je posais la question parce que j’ai trouvé ça sur la page de redhat:

                      « Michael Tiemann is a true open source software pioneer. He made his

                      first major open source contribution over a decade ago by writing the

                      GNU C++ compiler, the first native-code C++ compiler and debugger. »

                      et je n’arrive pas à voir ce qu’il y a d’extraordianire à ça. Il a

                      écit le premier compileur C++ en code natif, c’est une évidence non?

                      En 1995 on ne devait pas écrire beaucoup de code émulé ou je me

                      trompe? Ou alors je n’ai pas compris ce qu’était un « native-code

                      compiler »?

                      Ciao

                      M_o_Illusion

                        #31968

                        Non ! il a ecrit le premier compilateur C++ Open Source ! spa pareil !

                        Alex

                          #31969

                          @M_o_illusion

                          Si ;-)

                          En fait je pense que le sens de « code natif » dans ce contexte est un peu différent de celui expliqué au dessus.

                          En effet en ce temps les compilateurs C++ (qui étaient parmis les premiers) étaient souvent en fait non pas de compilateurs C++ à proprement parler, mais des genres de « méga pré-processeurs » qui généraient du code C pur qui était lui-même ensuite compilé par un compilateur… bhein C évidemment ;-)

                          Donc ce brave homme a écrit le premier compilateur C++ natif (du code source->en code machine direct sans intermédiaire (quoi que avec GCC cela ce discute, bonjour le p-code, mais je me demande si c’est toujours le cas en même temps)) en open-source. Voilà.

                          A+,

                          Alex.

                        11 sujets de 1 à 11 (sur un total de 11)

                        • Vous devez être connecté pour répondre à ce sujet.

                        Forums AmigaOS, MorphOS et AROS Général c’est quoi du « code natif »?

                        Amiga Impact