OVH Cloud OVH Cloud

Documentation complète sur la compilation de programmes

57 réponses
Avatar
enae
Bonjour,

j'utilise quotidiennement de nombreux programmes pour toute tâche.

Après examen de tutoriels, livres de programmations et autres
ressources, je continue de me poser des questions sur le processus de
compilation de programmes.

Certes, le fichier sources est traduit en langage machine, certes, pour
ce faire il faut utiliser des options -o etc...
Mais existe-t-il réellement un manuel complet (ou ressource
informatique) abordant de façon concrète, claire et en profondeur les
points suivants:
- les différentes étapes du processus de compilation, leur utilité, le
fonctionnement en détail de celles-ci
- toutes les options possibles, chacune étant expliquée en profondeur
- des explications sur l'impact hardware lié à la compilation
- la compilation croisée
- les bonnes pratiques de programmation (exemple: indenter son code et
le commenter)

Je vous remercie d'avance pour votre aide.

7 réponses

2 3 4 5 6
Avatar
jdd
Le 05/01/2016 22:03, a écrit :

C'est quasi impossible,
comment écrire et corriger un long programme en hexa,
même si ça a existé à un moment, au tout début.




les firmware des calculatrices HP étaient fait comme ca, celui de la
HP-41C tenait en 12Ko, avec toutes les routines de calcul

https://en.wikipedia.org/wiki/HP-41_extension_module

jdd
Avatar
andre_debian
On Tuesday 05 January 2016 22:27:30 jdd wrote:
Le 05/01/2016 22:11, a écrit :
> Cette machine informatique sans électronique n'a jamais vraiment exis té.

et les grands classiques:
https://en.wikipedia.org/wiki/Turing_machine
jdd



https://fr.wikipedia.org/wiki/R%C3%A8gle_%C3%A0_calcul
(vendu sur Ebay)
et
La pascaline : https://fr.wikipedia.org/wiki/Pascaline
(prix entre 100 à 400 livres)
et
l'arithmomètre :
https://fr.wikipedia.org/wiki/Arithmom%C3%A8tre
Avatar
Eric Degenetais
--001a114174deaa08b705289e3427
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

L'informatique actuellement déployée est électronique, mais les éléments
pour des portes logiques optroniques sont déjà faisables, et l'in formatique
quantique (certes elle n'était pas à la Fnac à noël) ne sera pas
nécessairement électronique non plus.
Je me demande si on n'a pas testé aussi des processeurs chimiques par
immitation des processus nerveux...
Mais on s'égare par rapport à la question d'origine (présent ation
accessible du fonctionnement des machines actuelles)
Bonne soirée
Le 5 janv. 2016 22:59, a écrit :

On Tuesday 05 January 2016 22:27:30 jdd wrote:
> Le 05/01/2016 22:11, a écrit :
> > Cette machine informatique sans électronique n'a jamais vraiment
existé.

> et les grands classiques:
> https://en.wikipedia.org/wiki/Turing_machine
> jdd

https://fr.wikipedia.org/wiki/R%C3%A8gle_%C3%A0_calcul
(vendu sur Ebay)
et
La pascaline : https://fr.wikipedia.org/wiki/Pascaline
(prix entre 100 à 400 livres)
et
l'arithmomètre :
https://fr.wikipedia.org/wiki/Arithmom%C3%A8tre





--001a114174deaa08b705289e3427
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<p>L&#39;informatique actuellement déployée est électronique , mais les éléments pour des portes logiques optroniques sont d éjà faisables, et l&#39;informatique quantique (certes elle n&#39 ;était pas à la Fnac à noël) ne sera pas nécessair ement électronique non plus.<br>
Je me demande si on n&#39;a pas testé aussi des processeurs chimiques par immitation des processus nerveux...<br>
Mais on s&#39;égare par rapport à la question d&#39;origine (pr ésentation accessible du fonctionnement des machines actuelles)<br>
Bonne soirée</p>
<div class="gmail_quote">Le 5 janv. 2016 22:59, &lt;<a href="mailto:an "></a>&gt; a écrit  :<br type="attribution"><blockquote class="gmail_quote" style=" margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On Tuesday 0 5 January 2016 22:27:30 jdd wrote:<br>
&gt; Le 05/01/2016 22:11, <a href="mailto:">an </a> a écrit :<br>
&gt; &gt; Cette machine informatique sans électronique n&#39;a jamais vraiment existé.<br>
<br>
&gt; et les grands classiques:<br>
&gt; <a href="https://en.wikipedia.org/wiki/Turing_machine" rel="norefe rrer" target="_blank">https://en.wikipedia.org/wiki/Turing_machine</a><br >
&gt; jdd<br>
<br>
<a href="https://fr.wikipedia.org/wiki/R%C3%A8gle_%C3%A0_calcul" rel="n oreferrer" target="_blank">https://fr.wikipedia.org/wiki/R%C3%A8gle_%C3%A 0_calcul</a><br>
(vendu sur Ebay)<br>
et<br>
La pascaline : <a href="https://fr.wikipedia.org/wiki/Pascaline" rel="n oreferrer" target="_blank">https://fr.wikipedia.org/wiki/Pascaline</a><br >
(prix entre 100 à 400 livres)<br>
et<br>
l&#39;arithmomètre :<br>
<a href="https://fr.wikipedia.org/wiki/Arithmom%C3%A8tre" rel="noreferr er" target="_blank">https://fr.wikipedia.org/wiki/Arithmom%C3%A8tre</a><b r>
<br>
</blockquote></div>

--001a114174deaa08b705289e3427--
Avatar
Haricophile
Le Tue, 5 Jan 2016 20:27:25 +0100,
Dominique Asselineau a écrit :

Comment ça, impossible. Du temps des machines sur lesquelles les
octets étaient comptés, on ne travaillait pas avec des langages
compilés qui généraient trop de codes. Et puis comme l'a dit Éric, je
crois, le langage d'assemblage n'était que des mnémoniques
correspondant aux codes machines. Ça aidait tout de même au ca lcul
des sauts relatifs. mais dire que c'était impossible n'est déj à pas
exact.

dom



L'assembleur se compile aussi pour générer un binaire. L'assemble ur
c'est bas niveau : très proche du matériel et de fait du langage
machine, on donne des instructions au processeur, pas aux fenêtres ;)
Je ne dis pas qu'on n'a jamais programmé des instructions directement en
langage machine, mais un langage comme l'assembleur est là pour é viter
ça.

Un langage comme C est suffisamment bas niveau pour permettre d'éviter
d'avoir trop recours à un langage de type assembleur, il y a aussi des
langages spécialisés pour les micro-circuits par exemple qui à ©vitent
ça. Mais l'assembleur n'a pas disparu, on en a encore besoin pour des
usages précis. Pas pour développer une appli de compta bien
sûr. Mais peut même fabriquer un compilateur avec ;)

--

Avatar
jdd
Le 05/01/2016 22:59, a écrit :
On Tuesday 05 January 2016 22:27:30 jdd wrote:
Le 05/01/2016 22:11, a écrit :
Cette machine informatique sans électronique n'a jamais vraiment existé.





et les grands classiques:
https://en.wikipedia.org/wiki/Turing_machine
jdd



https://fr.wikipedia.org/wiki/R%C3%A8gle_%C3%A0_calcul
(vendu sur Ebay)
et
La pascaline : https://fr.wikipedia.org/wiki/Pascaline
(prix entre 100 à 400 livres)
et
l'arithmomètre :
https://fr.wikipedia.org/wiki/Arithmom%C3%A8tre



oui, mais celles-là ne sont pas programmables, alors que la machine de
turing l'était

(les règles à calcul, j'en ai encore une ou deux :-)

jdd
Avatar
Vincent Lefevre
On 2016-01-05 18:10:47 +0100, Eric Degenetais wrote:
Le 5 janvier 2016 à 17:56, a écrit :
> On voit qu'il serait impossible de programmer
> en hexadécimal et pire en code machine,

Juste atrocement fastidieux...pour avoir fait les deux à petite dose il y a
presque 25 ans, pas énormément plus qu'en assembleur (qui pour simplifier à
plaquer des mnémoniques sur les instructions, mais en terme de verbosité et
de progression par sauts de puce c'est du même accabit).

Il y a encore des gens qui manipulent ces formes de code pour des cas de
niche:

- hackers cherchant à caser du code dans un débordement de pile l'air de
rien
- spécialistes qui conçoivent les assembleurs, linkers et autres
désassembleurs (faut bien les écrire...)
- ceux qui conçoivent les les processeurs
- gens qui aiment "le sport"
- j'en oublie sans doute...



Certains compilateurs, par exemple tcc, qui génère du code machine
sans passer par de l'assembleur.

--
Vincent Lefèvre - Web: <https://www.vinc17.net/>
100% accessible validated (X)HTML - Blog: <https://www.vinc17.net/blog/>
Work: CR INRIA - computer arithmetic / AriC project (LIP, ENS-Lyon)
Avatar
enae
Bonjour à tous,
et tout d'abord un grand merci à tous les participants à ce fil de
discussion.
Effectivement, c'est maintenant beaucoup plus clair pour moi, d'autant
plus que les quelques liens donnent accès à de plus amples
documentations et à une mine d'informations.

Je vous remercie tous pour votre aide et pour votre participation. ;-)


Le 06/01/2016 01:43, Haricophile a écrit :
Le Tue, 5 Jan 2016 20:27:25 +0100,
Dominique Asselineau a écrit :

Comment ça, impossible. Du temps des machines sur lesquelles les
octets étaient comptés, on ne travaillait pas avec des langages
compilés qui généraient trop de codes. Et puis comme l'a dit Éric, je
crois, le langage d'assemblage n'était que des mnémoniques
correspondant aux codes machines. Ça aidait tout de même au calcul
des sauts relatifs. mais dire que c'était impossible n'est déjà pas
exact.

dom


L'assembleur se compile aussi pour générer un binaire. L'assembleur
c'est bas niveau : très proche du matériel et de fait du langage
machine, on donne des instructions au processeur, pas aux fenêtres ;)
Je ne dis pas qu'on n'a jamais programmé des instructions directement en
langage machine, mais un langage comme l'assembleur est là pour éviter
ça.

Un langage comme C est suffisamment bas niveau pour permettre d'éviter
d'avoir trop recours à un langage de type assembleur, il y a aussi des
langages spécialisés pour les micro-circuits par exemple qui évitent
ça. Mais l'assembleur n'a pas disparu, on en a encore besoin pour des
usages précis. Pas pour développer une appli de compta bien
sûr. Mais peut même fabriquer un compilateur avec ;)

2 3 4 5 6