Contenu | Rechercher | Menus

Annonce

DVD, clés USB et t-shirts Ubuntu-fr disponibles sur la boutique En Vente Libre

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 20/09/2020, à 17:47

bergeronnette

[résolu] Comment est construit un langage de programmation ?

Bonjour,
J'aimerais connaître le principe (simplifié) de la création et l'interprétation d'un langage de programmation informatique.
Lorsque je tape une commande dans un terminal (mkdir) ou avec latex ou n'importe quel programme que je ne maîtrise pas, comment ce code est connu par la machine et son OS (ubuntu ou windows) ?
Quand je lis que ce langage a été créé par …, qu'est-ce que cela signifie ?
Les commandes sont-elle construites avec un langage prédéfini ?
Je ne sais pas si ma question est clairement explicitée ?
Merci

Dernière modification par bergeronnette (Le 12/11/2020, à 13:55)

Hors ligne

#2 Le 21/09/2020, à 14:29

gl38

Re : [résolu] Comment est construit un langage de programmation ?

Tu pourrais lire par exemple cette page
Cordialement,
Guy

Hors ligne

#3 Le 27/09/2020, à 16:59

bergeronnette

Re : [résolu] Comment est construit un langage de programmation ?

J'avais déjà commencé à lire mais, sur écran, je ne retiens rien et c'est encore trop technique et pas assez vulgarisé.

Hors ligne

#4 Le 09/11/2020, à 23:26

WW

Re : [résolu] Comment est construit un langage de programmation ?

Bonsoir bergeronnette,

Comme tu le sais tes questions sont extrêmement larges et complexes, elles ont donc énormément de réponses possibles.

J’ai l’impression que tu te demandes d’où sa sort.

Une réponse très vulgarisée peut être la suivante :

  • tout d’abord le courant électrique qui fournit le signal numérique, absent 0 ou présent 1

  • ensuite l’électronique permettant de faire notamment des portes logiques OU, ET, NON… voir entre autres l’algèbre de Boole, à ce niveau il est déjà possible de faire de la programmation « matérielle »

  • les portes logiques ont ensuite été miniaturisées et améliorées notamment à travers les transistors, ces composants entre autres ont permis de faire les micro-processeurs. A ce niveau les langages de programmation, directement compris car gravés physiquement dans le processeur, sont nommés Assembleur. Il y a donc plusieurs Assembleurs selon les différents processeurs

  • à partir de là beaucoup de langages compilés ont vu le jour, je ne citerais que le plus utilisé aujourd’hui C, ces langages utilisent un compilateur, pour simplifier, initialement coder en Assembleur. Le code produit par le développeur n’est donc pas directement celui exécuté par le processeur

  • ensuite, pour simplifier, des langages interprétés sont apparus, par exemple toujours dans les plus utilisés le Python. Ce dernier comme beaucoup de langages interprétés d’aujourd’hui utilise un interpréteur coder en C.

1) Les commandes sont-elle construites avec un langage prédéfini ?

Comme tu l’as compris il n’y a pas en soit un langage « prédéfini » mais plusieurs niveaux d’abstraction. Pour reprendre l’exemple du Python il se base sur un interpréteur codé en C, interpréteur qui est lui même compilé en Assembleur pour être utilisable par la machine.

Si toutes fois on doit considérer des langages prédéfinis, il s’agit de ceux gravés dans les processeurs donc les Assembleurs.

Pour reprendre l’exemple de ta question mkdir est codé en C.

2) Comment ce code est connu par la machine et son OS ?

Le C étant le langage créé pour réécrire Unix et donc une grosse partie du système de base de GNU/Linux, il est connu de ce dernier. Les programmes simples compilés à partir du C n’ont besoin de rien puisqu’ils sont compréhensibles par le processeur (niveau machine). Cependant un programme utilise généralement des morceaux de code déjà existants afin de ne pas coder perpétuellement les mêmes fonctionnalités. Ces codes sont regroupés dans ce qu’on appelle des librairies. Et pour le cas de C sa librairie standard, autrement dit celle fournie avec le langages que tous développeurs C utilisent, est présente dans tous les systèmes d’exploitation que je connais.
Par ailleurs les langages interprétés sont connus par la machine seulement si un interpréteur est installé (niveau OS).

3) Quand je lis que ce langage a été créé par …, qu'est-ce que cela signifie ?

Le C a été créé par Dennis Ritchie et Ken Thompson, cela signifie qu’ils ont été les fondateurs du langages. Ceux sont eux qui ont conçu le langage C et développé en Assembleur le premier compilateur C.

Ces fondateurs d’un langage écrivent à la fois les spécifications de la langue formelle qu’ils veulent rendre compréhensible aux développeurs et à la machine et l’implémentation de ce langage via un compilateur ou un interpréteur.

A noter un fait assez fréquent, considérer parfois comme un aboutissement d’un langage, est de coder le compilateur/interpréteur dans le langage lui-même. Par exemple il existe un interpréteur Python codé en Python cela n’est possible qu’après la mise en place d’une première version de Python codé dans un langage déjà compréhensible par la machine.


Quand on sait c'est facile, mais qui n'a jamais été débutant.

Hors ligne

#5 Le 09/11/2020, à 23:39

Pam547

Re : [résolu] Comment est construit un langage de programmation ?

Bonsoir,

Je préfère la concision wink.

La programmation c'est de l'assignation de variables ; des opérations mathématiques ; des tests ; et des boucles.

Vous vous demandez comment est construite la chose. Tout dépend les émetteurs et les récepteurs.

  • Niveau machine, il faut utiliser la logique combinatoire, du binaire, l'adressage est en "dur" (c'est-à-dire directement sur les entrées-sorties des composants). Pilotes de périphérique, noyau-kernel.

  • Niveau interface-machine, il faut utiliser les variables utilisées au dessus, mots clés et signes alpha-numériques classiques, adressage "plus souple, à peine moins dur". Affichage et utilisation des informations du noyau-kernel.

  • Niveau interface-logiciel, il faut utiliser les variables utilisées du niveau juste au-dessus, mots clés et signes alpha-numériques classiques, adressage "virtuel".

Le tout étant organisé dans différentes librairies pour pouvoir réutiliser "simplement" toutes ces variables assignées.


Bref, en se réjouissant de la pré et post formulation d'algorithmes performants.

Dernière modification par Pam547 (Le 10/11/2020, à 01:02)


Art.9.(code civil)  Chacun a droit au respect de sa vie privée.

Art.12.(déclaration universelle des DDH) Nul ne sera l'objet d'immixtions arbitraires dans sa vie privée, sa famille, son domicile ou sa correspondance, ni d'atteintes à son honneur et à sa réputation. Toute personne a droit à la protection de la loi contre de telles immixtions ou de telles atteintes.

Hors ligne

#6 Le 12/11/2020, à 13:54

bergeronnette

Re : [résolu] Comment est construit un langage de programmation ?

J’ai l’impression que tu te demandes d’où sa sort.

Exactement

les portes logiques ont ensuite été miniaturisées et améliorées notamment à travers les transistors, ces composants entre autres ont permis de faire les micro-processeurs. A ce niveau les langages de programmation, directement compris car gravés physiquement dans le processeur, sont nommés Assembleur. Il y a donc plusieurs Assembleurs selon les différents processeurs

Cela m'a beaucoup éclairé.

Merci à vous.

Dernière modification par bergeronnette (Le 12/11/2020, à 13:55)

Hors ligne