В начале 1960-х годов в доминирующих высокоуровневых языках программирования, таких как COBOL, FORTRAN II, ALGOL-60 и LISP, программисты различали инициализацию и переприсвоение. 1 В FORTRAN для обеих операций использовался один и тот же символ — =. 2 В ALGOL не было отдельного оператора для инициализации, вместо этого создавали переменную определённого типа и затем использовали оператор для присвоения ей чего-либо. 1
Вплоть до 1971 года большинство новых языков использовали для присваивания обозначение :=. 1 Возможно, это связано с тем, что = было тесно ассоциировано с равенством. 1
Начиная с 1980 года наблюдался рост популярности новых императивных языков, ориентированных на корректность, в частности, Eiffel и Ada, которые использовали для операции присваивания символ :=. 1
В современных языках в роли оператора присваивания чаще всего выступают =, := или ←. 4 Но специальный синтаксис может и не вводиться, например, в Tcl. 4
В объектно-ориентированных языках программирования семантика присваивания существенно отличается. 4 Например, в языке Kotlin при присваивании происходит копирование объекта, а в языке Rust — перемещение (move-семантика) объекта и старая связка становится недействительной. 4
В логическом программировании принят другой, алгебраический подход. 4 Обычного («разрушающего») присвоения здесь нет. 4 Существуют только неизвестные, которые ещё не вычислены, и соответствующие идентификаторы для обозначения этих неизвестных. 4 Программа только определяет их значения, сами они постоянны. 4
В чистом функциональном программировании не используются переменные, и явный оператор присваивания не нужен. 4