Dans quel lang est compilé un prog sur linux?

Fermé
Rachid - 19 déc. 2003 à 09:58
 condor - 12 avril 2007 à 03:14
Bonjour,
je me pose la question suivante:
quand on compile un programme d'un langage quelconque sur linux,
le langage qu'on obtient c'est quoi : du shell, du x86...?

P.S : je suis débutant.
A voir également:

6 réponses

Nicolas Quéré
19 déc. 2003 à 10:32
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 ;)

+.
0
Nicolas Quéré
19 déc. 2003 à 10:34
oups, j'ai fait un copier/coller d'un code VB... oubliez, c'est une mauvaise manip' :)
0
Marden Messages postés 1072 Date d'inscription dimanche 11 février 2001 Statut Membre Dernière intervention 29 janvier 2006 208
19 déc. 2003 à 10:50
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.
0
blux Messages postés 25997 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 23 avril 2024 3 289
19 déc. 2003 à 11:53
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
 "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"
0
Marden Messages postés 1072 Date d'inscription dimanche 11 février 2001 Statut Membre Dernière intervention 29 janvier 2006 208
19 déc. 2003 à 12:20
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.
0
blux Messages postés 25997 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 23 avril 2024 3 289
19 déc. 2003 à 13:15
A raison d'un 0 ou 1 par emplacement "binaire"

Tu arrives à mettre autre chose à la place ? ;->>>
---------> je sors

A+ Blux
 "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"
0
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.
0
Marden Messages postés 1072 Date d'inscription dimanche 11 février 2001 Statut Membre Dernière intervention 29 janvier 2006 208
19 déc. 2003 à 14:02
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.
0

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.
0
Vous oubliez tous les programmes qui une fois compilés ont besoin d'une plate-forme pour tourner (Java, .NET Framework).

Il n'en ressort pas du binaire ni des opérations pour le processeurs, [...]

Enfin bon je vais pas vous embéter plus longtemps ce n'est là qu'un détail
0