A voir également:
- Dans quel lang est compilé un prog sur linux?
- Linux reader - Télécharger - Stockage
- R-linux - Télécharger - Sauvegarde
- Toutou linux - Télécharger - Systèmes d'exploitation
- Backtrack linux - Télécharger - Sécurité
- Linux mint 22.1 - Accueil - Linux
6 réponses
C'est un peu bébête comme question, mais bon comme tu as marqué que tu était débutant...
le langage que tu obtiens c'est du binaire. Compiler un programme te génère obligatoirement du BINAIRE. Que ça soit sous AS-400, Linux, Windows, Mac, Silicon Graphicks...
Par contre, il existe des intérepréteur qui TRADUISENT un langage dans un autre.
Ex: l'interpreteur Perl, peut traduire un script perl en programme C.
Fait bien attention entre la notion de TRADUIRE et COMPILER. (même si la compilation est une traduction en soit... :) )
'Affiche une boite de dialogue pour choisir un dossier.
txtDir.Text = BrowseForFolder(Me, "Choisissez le dossier", "c:\")
>>> Donc, tu obtiens du binaire ;)
+.
le langage que tu obtiens c'est du binaire. Compiler un programme te génère obligatoirement du BINAIRE. Que ça soit sous AS-400, Linux, Windows, Mac, Silicon Graphicks...
Par contre, il existe des intérepréteur qui TRADUISENT un langage dans un autre.
Ex: l'interpreteur Perl, peut traduire un script perl en programme C.
Fait bien attention entre la notion de TRADUIRE et COMPILER. (même si la compilation est une traduction en soit... :) )
'Affiche une boite de dialogue pour choisir un dossier.
txtDir.Text = BrowseForFolder(Me, "Choisissez le dossier", "c:\")
>>> Donc, tu obtiens du binaire ;)
+.
Bonjour,
La compilation des langages "évolués", quel que soit le système d'exploitation, fournit un module en langage objet. Sous Unix/Linux, une option permet de tenir compte du processeur.
Moyennant le respect de quelques règles (noms de routines, passage de paramètres), on peut même "mélanger" les langages sources (ex : appeler une routine "C" depuis Fortran ou Pascal, et vice-versa). On peut même faire une édition de liens partielle (avec des références "non résolues"), dont le résultat sera utilisé ensuite dans une autre édition de liens pour produire un exécutable valide.
Dans le cas du shell (script), le langage est interprété au moment de l'exécution, donc le traitement est beaucoup plus lent.
La compilation des langages "évolués", quel que soit le système d'exploitation, fournit un module en langage objet. Sous Unix/Linux, une option permet de tenir compte du processeur.
Moyennant le respect de quelques règles (noms de routines, passage de paramètres), on peut même "mélanger" les langages sources (ex : appeler une routine "C" depuis Fortran ou Pascal, et vice-versa). On peut même faire une édition de liens partielle (avec des références "non résolues"), dont le résultat sera utilisé ensuite dans une autre édition de liens pour produire un exécutable valide.
Dans le cas du shell (script), le langage est interprété au moment de l'exécution, donc le traitement est beaucoup plus lent.
Euh... juste pour mettre mon grain de sel :
On obtient pas du langage binaire en compilant, on obtient une suite d'instructions directement exécutables par le processeur, et propres à ce processeur...
C'est juste pour dire que 'langage binaire' est un petit abus de langage... Parce qu'un fichier composé uniquement de 0 et de 1 ferait une sacrée taille :-)))
Mais bon, je chipote ;-)
A+ Blux
On obtient pas du langage binaire en compilant, on obtient une suite d'instructions directement exécutables par le processeur, et propres à ce processeur...
C'est juste pour dire que 'langage binaire' est un petit abus de langage... Parce qu'un fichier composé uniquement de 0 et de 1 ferait une sacrée taille :-)))
Mais bon, je chipote ;-)
A+ Blux
"Les cons, ça ose tout. C'est même à ça qu'on les reconnait"
A raison d'un 0 ou 1 par emplacement "binaire", çà ne fait pas forcément beaucoup de place. On parle effectivement de "binaire" par opposition au mode "caractère" du langage source. On rencontre l'extension ".bin" pour les résultats de certains compilateurs, qui ne sont pas encore des exécutables, même s'ils en sont proches sous Unix.
Le CPU n'exécute pas du binaire c'est nouveau? Bien sur que c'est du binaire au sens primaire et non du binaire "asciizé" ce qui serait complétement stupide et non économique en mémoire. Chaque instruction du CPU correspond à un code sur 8 ou 16 bits suivi d'opérande(s) ce qui correspond grossièrement au langage d'assemblage auquel on a mis des noms sur les intructions pour pouvoir s'en rappeler.
En chipotant un peu plus, on peut dire qu'en plus des intructions, le résultat de la compilation contient aussi des données, celles dont la valeur est initialisée lors de la déclaration. Certains compilateurs "intelligents" prévoient de ne faire cette initialisation qu'au moment du chargement en mémoire de l'exécutable (par exemple, dans le cas de zones à 0), ce qui réduit la taille de l'objet et de l'exécutable sur disque.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Pour encore plus se faire c*** je dirais qu'un exécutable n'est effectivement exécutable que par l'OS car c'est un fichier structuré avec une en-tête qui spécifie l'OS , ... et une zone de données exécutable "pure" donc ne pas s'étonner qu'un exécutable Windows 95 ne marche pas sur Windows XP ou autre.