Nos livros de algoritmos mais antigos, <-
referia-se à atribuição e =
à comparação. Hoje em dia, porém, os únicos idiomas que não usam =
para atribuição são Pascal ( :=
) e linguagens de brinquedos como COOL . O que fez com que as linguagens de programação modernas se transformassem =
em atribuição de significado em vez de em seu significado matemático de igualdade?
programming-languages
history
Siqi Lin
fonte
fonte
===
...←
permanece comum no trabalho de algoritmos; é uma das três notações comuns para atribuição ao escrever um algoritmo (os outros sendo:=
e=
). Só porque todos os programadores usam=
não significa que todos os matemáticos caíram←
.===
está bem.Respostas:
De acordo com a Wikipedia , o uso de iguais para atribuição remonta ao Superplan de Heinz Rutishauser, projetado de 1949 a 1951, e foi particularmente popularizado por Fortran:
Konrad Zuse também usou o sinal de igual para Plankalkul , que inspirou o Superplan de Rutishauser, embora um compilador nunca tenha sido desenvolvido para ele. Por que ele escolheu o sinal de igual? Eu acho que você teria que perguntar a ele.
fonte
=
tanto como predicado quanto para definir variáveis, por exemplo, em “Let x = 4. Então √ (x - y) é zero se y = 4”. Isso funciona porque a notação matemática deve ser entendida declarativamente e não imperativamente. As linguagens de programação funcional (por exemplo, a família ML) são padronizadas para variáveis não mutáveis e, portanto, podem continuar a ser usadas=
em sua função dupla sem problemas. Ou, mais precisamente,=
é um operador e parte dalet
sintaxe.=
seguida, é apenas um predicado, o mesmo que em qualquer outro lugar em que é usado. Observe que, dependendo do contexto, "Let x = 4" também poderia significar "Let x ∈ ℝ x = 4".Mas quando eu fiz matemática na escola "deixe x = 123"
era fraseado comum. As primeiras versões do Basic insistiam na palavra-chave "let" antes da igual. Então, basicamente, o que é feito para "deixar" é entendido.
Um fator-chave geralmente não considerado, mas muito importante no momento em que você realmente digitou.
Havia dois dispositivos de entrada viáveis,
Os teletipos tendiam a ser usados em lojas acadêmicas e militares, os cartões perfurados em mais lojas comerciais. Portanto, linguagens acadêmicas como Pascal suportam identificadores em minúsculas e notações "sensíveis" como ": =" para atribuição. Os idiomas destinados a um público mais comercial assumiram que os cartões perfurados seriam a principal forma de entrada, portanto, somente os maiúsculos como FORTRAN e COBOL com suporte limitado a caracteres ":;> <" que não estavam disponíveis em um pressionamento de tecla padrão.
Aliás, não havia ambiguidade sobre "=" ser usado para atribuição no FORTRAN inicial, pois a comparação era feita usando ".LT.", ".LE.", ".EQ.", ".GE." e ".GT". sintaxe.
fonte
let x = 123
mais análogo aassert(x == 123)
qualquer tipo de tarefa, no entanto.