HSK 2 séquence 2

Re: HSK 2 séquence 2

by Eric Q -
Number of replies: 0
Bonjour à tous,
Je viens de découvrir cette conversation qui non seulement apporte la réponse à bon nombre de mes interrogations et particulièrement riche en contenu. Une vrai pépite qu'il faudrait presque épingler "quelque part" à mon sens tant les réponses apportées sont nombreuses et utiles.

Pour reprendre les très bonnes remarques de Tianxiang concernant les langages (de programmation) informatiques, et ceci étant ma spécialité depuis quatre décennies maintenant, si en effet leur élaboration est liée essentiellement aujourd'hui à l'usage ou au contexte d'usage (objectif, management de la mémoire, exécution sur des machine portables, etc.) je rajouterai que la génèse des langages a été dans un premier temps de permettre leur utilisation (programmation, j'entends) de façon plus naturelle, simple et efficace.

Au tout début il n'était possible de programmer qu'en binaire ("langage" excrément primitif et déconnecté de tout contexte humain). De là s'est posé la question de "comment rendre cette tâche plus facile pour l'homme?". C'est alors qu'est née la notion d'assembleur (langage d'assemblage) qui fut la première classe de langages utilisant un alphabet et du coup évidemment une notation plus digeste puisque basée sur l'utilisation d'une syntaxe, telle que "MOV" qui est le mot anglais "move" et indiquant un déplacement d'une information d'un endroit en mémoire vers un autre. Il est clair qu'écrire "MOV A,160" est plus naturel que "01101001 10100000" pour écrire que l'on souhaite transférer le nombre 160 dans l'accumulateur A. Bien entendu, il fallait un "interpréteur", c'est à dire un programme capable de transformer cette notation alphabétique en suite de 0 et 1, seul langage compréhensible par la machine. A noter qu'au tout début de l'existante de cette notation dite "d'assemblage", la traduction se faisait à la maint sur une feuille de papier... j'ai commencé ainsi.

Mais ce type de langage était bien trop primaire et ne s'appuyait pas sur des règles de grammaire, uniquement de la syntaxe pour l'essentielle. C'est alors que sont apparus les premiers langages informatiques basés sur une grammaire, intégrant des conditionnelles et autres structures (itératives, etc), et plus plus tard bien d'autres règles de grammaires.

Cette évolution à permis rapidement de se détacher de la complexité de la machine en offrant des langages dont la syntaxe et la grammaire sont proches des différents langages "humains". En effet, quoi de plus naturel que d'écrire SI A=1 ALORS FAIRE ... TERMINER LA CONDITION. if a=1 then begin ... end; par exemple en Pascal.
Les compilateurs/interpréteurs informatiques sont des programmes intégrant le lexique et capable de faire une analyse lexicale et sémantique basée sur la grammaire du langage informatique afin de proposer son équivalent en code binaire exécutable par la machine.

Ce n'est pas pour rien que je parle du langage PASCAL puisque l'objectif de son développement a été de permettre aux étudiants d'appréhender la programmation avec un langage très proche des langages que nous connaissons. Son objectif n'était donc pas à la base la performance ou bien la réponse à un besoin technique/technologique mais tout simplement pédagogique. Et l'objectif a été atteint.

Bref, j'ai trouvé cette conversation vraiment enrichissante.

Merci à toutes et à tous,
Eric

513 words