Dans la plupart des premiers livres d'algorithmes, il est fait <-
référence à l'affectation et =
à la comparaison. Mais de nos jours, les seuls langages qui n'utilisent pas =
pour l'affectation sont Pascal ( :=
) et les langages jouets comme COOL . Qu'est-ce qui a fait que les langages de programmation modernes se sont transformés =
en affectation de sens au lieu de leur signification mathématique d'égalité?
programming-languages
history
Siqi Lin
la source
la source
===
...←
reste courant dans le travail des algorithmes; c'est l'une des trois notations courantes pour l'affectation lors de l'écriture d'un algorithme (les autres étant:=
et=
). Ce=
n'est pas parce que les programmeurs utilisent tous que les mathématiciens ont tous abandonné←
.===
va bien.Réponses:
Selon Wikipédia , l'utilisation d'égaux pour l'affectation remonte au superplan linguistique de Heinz Rutishauser, conçu de 1949 à 1951, et a été particulièrement popularisé par Fortran:
Konrad Zuse a également utilisé le signe égal pour Plankalkul , qui a inspiré le Superplan de Rutishauser, bien qu'un compilateur n'ait jamais été conçu pour cela. Pourquoi a-t-il choisi le signe égal? Je suppose que tu devrais lui demander.
la source
=
fois comme prédicat et pour définir des variables, par exemple dans «Soit x = 4. Alors √ (x - y) est nul si y = 4». Cela fonctionne parce que la notation mathématique doit être comprise de manière déclarative plutôt qu'impérative. Les langages de programmation fonctionnels (par exemple la famille ML) utilisent par défaut des variables non mutables et peuvent donc continuer à utiliser=
dans leur double rôle sans aucun problème. Ou plus précisément,=
est à la fois un opérateur et une partie de lalet
syntaxe.=
n'est alors qu'un prédicat, comme c'est le cas partout où il est utilisé. Notez que selon le contexte, "Let x = 4" pourrait également signifier "Let x ∈ ℝ and x = 4".Mais quand je faisais des maths à l'école "laissez x = 123"
était une formulation courante. Les premières versions de Basic insistaient sur le mot clé "let" avant l'égal. Donc, son résumé se résume à "laisser" est compris.
Un pilote clé n'est généralement pas considéré, mais très important au moment de la saisie.
Il y avait deux dispositifs d'entrée possibles,
Les télétypes étaient généralement utilisés dans les magasins universitaires et militaires, les cartes perforées dans les magasins plus commerciaux. Par conséquent, les langues académiques comme Pascal supportaient les identifiants minuscules et les notations "sensibles" comme ": =" pour l'affectation. Les langues destinées à un public plus commercial supposaient que les cartes perforées seraient la principale forme d'entrée, d'où les seules langues majuscules comme FORTRAN et COBOL avec une prise en charge limitée des caractères ":;> <" qui n'étaient pas disponibles sur un clavier standard.
Soit dit en passant, il n'y avait aucune ambiguïté quant à l'utilisation de "=" pour l'affectation au début du FORTRAN, car la comparaison était effectuée à l'aide des ".LT.", ".LE.", ".EQ.", ".GE." et ".GT". syntaxe.
la source
let x = 123
plus analogue àassert(x == 123)
n'importe quel type de mission.