Après je pense que la première phrase est un peu sèche pour un béotien (« représentation symbolique », ça peut faire peur, ce serait dommage).
Comment est-ce que tu définirais ce qu'est un langage de programmation ? J'aimerais trouver quelque chose qui soit accessible aux non-spécialistes, mais qui soit aussi correct. Je n'aime pas trop le fait de dire "c'est comme une langue humaine, mais pour parler à l'ordinateur", parce que ça met les gens sur de fausses pistes (trop comparer aux langages humains).
on lui donne une sémantique formelle (ou plusieurs) en définissant les programmes comme des objets mathématiques
Un peu ambigu je trouve, mais c’est pas très grave, et peut être un peu confusant : le programme peut être considéré comme la spécification d’un algorithme dans un langage, alors que la sémantique formelle peut être considérée comme la spec du langage lui même. Ou alors tu veux dire que si le langage n’a pas de sémantique formelle, on ne peut pas considérer le programme comme un objet mathématique ?
L'idée c'est qu'on peut représenter un programme (dans un langage donné) comme un objet mathématique, et à partir de cela définir le langage. Intuitivement on pense à le définir comme un ensemble de programmes, mais en fait il faut aussi donner leur sémantique, c'est-à-dire donner le lien entre le programme (le texte) et le comportement quand on le lance (aussi représenté comme un objet mathématique.
Attention, on peut aussi représenter mathématiquement un algorithme, mais l'objet mathématique qui correspond à un programme C par exemple n'est pas le même que celui qui correspond à l'algorithme implémenté (on peut montrer qu'il y a un lien entre les deux, mais c'est du travail, puisqu'en particulier cela revient à prouver que le programme est correct, qu'il ne contient pas de bug).
[^] # Re: Super texte ...
Posté par gasche . En réponse au journal Pourquoi la recherche en langages de programmation ?. Évalué à 4.
Merci pour les retours !
Comment est-ce que tu définirais ce qu'est un langage de programmation ? J'aimerais trouver quelque chose qui soit accessible aux non-spécialistes, mais qui soit aussi correct. Je n'aime pas trop le fait de dire "c'est comme une langue humaine, mais pour parler à l'ordinateur", parce que ça met les gens sur de fausses pistes (trop comparer aux langages humains).
L'idée c'est qu'on peut représenter un programme (dans un langage donné) comme un objet mathématique, et à partir de cela définir le langage. Intuitivement on pense à le définir comme un ensemble de programmes, mais en fait il faut aussi donner leur sémantique, c'est-à-dire donner le lien entre le programme (le texte) et le comportement quand on le lance (aussi représenté comme un objet mathématique.
Attention, on peut aussi représenter mathématiquement un algorithme, mais l'objet mathématique qui correspond à un programme C par exemple n'est pas le même que celui qui correspond à l'algorithme implémenté (on peut montrer qu'il y a un lien entre les deux, mais c'est du travail, puisqu'en particulier cela revient à prouver que le programme est correct, qu'il ne contient pas de bug).