IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Assembleur Discussion :

L'assembleur est-il un langage ? [Débat]


Sujet :

Assembleur

  1. #81
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 30
    Points : 19
    Points
    19
    Par défaut
    Citation Envoyé par alex_pi Voir le message
    Bonjour,

    Je réagis à une citation récente :

    L'assembleur, ce n'est quand même pas trop un langage de programmation, je pense.

    Et vous ?
    Bonsoir,

    je te conseille de lire un peu d'histoire sur l'évolution des ordinateurs.
    En fait l'assembleur ou le langage machine, peu importe, et le langage le plus pur qui existe pour deux raisons principales :

    1. dans le concret : pour commencer à discuter avec une machine c'est le premier langage utilisé. Si tu ne passes pas par lui, tu ne fais rien.

    2. conceptuellement : amuse-toi à décomposer en concepts simples tout ce que tu fais avec des langages de haut niveau. Tu verras que tu peux tout décomposer en fonctions simples tels quels les "Goto" ou les "Jump", pour les If, compteurs et algos. Tout ce qui est lecture et transfert de données, donc pointeurs donc modes d'adressages indirectes en Assembleur. Bien sûr l'unité arithmétique que chaque micro-processeur possede qui permet tout au moins de faire des additions et soustractions.

    Tout ce que tu fais en langage de haut niveau peut être décomposable en assembleur, donc l'assembleur est un langage.


    Je rajouterai même qu'on a beau "espérer" beaucoup des langages de haut niveau, mais j'ai pas l'impression que quelqu'un qui n'a pas la notion du fonctionnement bas niveau d'une machine pourra correctement coder une appli. avec un langage de haut niveau.

  2. #82
    Membre éprouvé
    Avatar de Zenol
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2004
    Messages
    812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2004
    Messages : 812
    Points : 1 054
    Points
    1 054
    Par défaut
    Citation Envoyé par powel Voir le message
    Je rajouterai même qu'on a beau "espérer" beaucoup des langages de haut niveau, mais j'ai pas l'impression que quelqu'un qui n'a pas la notion du fonctionnement bas niveau d'une machine pourra correctement coder une appli. avec un langage de haut niveau.
    Juste un petit commentaire sur cette dernière phrase.

    Je suis tout à fait d'accord pour des langages comme le C et le C++, qui sont directement compiler en code machine.
    (Pour être exacte, le compilateur C génère de l'assembleur correspondant à l'architecture visé qui seras ensuite assemblé par GAS, et linké avec LD)

    Toute fois, je mettrais quelques réserves concernant des langages utilisant des VM (comme java) ou interprété (comme python).
    Je pense que pour ces derniers, faudrait plutôt considère la VM ou l'interpréteur pour éventuellement éviter les pièges qui peuvent amoindrir les performances pour un même algorithme.
    (Mais à ce niveau là, ces pièges sont-il aussi aussi significatif que pour un langage compilé, et ce poser ce genre de question est-il vraiment "utile"? (Je veux dire, si l'on met de coté l'apport culturel conséquent et l'enrichissement personnel ))

    D'ailleurs, les langages dotNet disposent d'un "assembleur dotNet" (le MSIL).
    Une sorte d'"assembleur" haut niveau, assez différent de l'assembleur traditionnel auquel nous faisons ici référence.
    Mes articles Développez | Dernier article : Raytracer en haskell
    Network library : SedNL | Zenol's Blog : http://zenol.fr

    N'oubliez pas de consulter la FAQ et les cours et tutoriels.

  3. #83
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 30
    Points : 19
    Points
    19
    Par défaut
    Peut être ne parlons-nous pas exactement de la même chose. Par exemple qu'on soit en Java ou pas, on continu à coder des itérations à l'intérieur des méthodes.
    On continue à utiliser une notion masquée du pointeur ; le référent ... en fait on continu avec des concepts remontant aux années 40.

    Pourquoi ces notions d'itérations ou de pointeurs par exemple ? tout simplement car notre manière de penser un algo. est conditionnée qu'on le veuille ou non par la limitation du hardware. Et même si aujourd'hui on dispose de mémoires énormes et de rapidités impressionantes. On pensera notre manière de coder de façon à ne pas gâcher de la vitesse ni de la mémoire. On ne va pas recalculer quelque chose qui n'a besoin d'être calculé qu'une seule fois en début de boucle, ou bien on va partager des données entre plusieurs sous-programmes plutôt que recopier les données.

    Autrement dit si la mémoire et la vitesse étaient illimitées ... nous pourrions jeter à la poubelle la majorité de nos concepts de programmation actuels.

    Ce qui m'a amené à cette conclusion que le langage haut niveau apporte du confort et de la lisiblitée, mais celui qui n'a pas la notion de ce qui se passe en mémoire et en CPU produira du code maladroit et gâchant les capacités de la machine même s'il fonctionne.

    L'assembleur est une bonne école pour tout le monde, car il traite des principes fondamentaux de la programmation

Discussions similaires

  1. Quel est le meilleur langage pour la portabilité : Windows & Linux (voire Mac) ?
    Par iubito dans le forum Débats sur le développement - Le Best Of
    Réponses: 57
    Dernier message: 26/11/2007, 23h45
  2. [Vos débuts] Quel est le premier langage que vous ayez appris ?
    Par Commodore dans le forum La taverne du Club : Humour et divers
    Réponses: 171
    Dernier message: 02/02/2007, 14h43
  3. VBA est-il un langage orienté objet ?
    Par Kcirtap dans le forum Général VBA
    Réponses: 5
    Dernier message: 06/12/2005, 09h46
  4. L'Assembleur est-il risqué ?
    Par phoenix440 dans le forum Assembleur
    Réponses: 4
    Dernier message: 20/11/2005, 14h07
  5. [Choix]Développement sécurisé, Quel est le meilleur langage?
    Par fugi dans le forum Langages de programmation
    Réponses: 4
    Dernier message: 21/04/2004, 13h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo