Assignment (computer science)
Encyclopedia
In computer programming
, an assignment statement sets or re-sets the value
stored in the storage location(s) denoted by a variable
name
. In most imperative
computer
programming language
s, assignment statements are one of the basic statement
s. Common notations for the assignment operator
are
Assignment statements typically allow for the same variable to contain different values at different times during program
execution. Thus, languages featuring destructive assignment rarely enforce referential transparency, which requires a procedure to return the same results for a given set of inputs at any point in time.
in which different values are associated with a particular variable name as time passes. The program, in such model, operates by changing its state using successive assignment statements. Primitives of imperative programming languages rely on assignment to do iteration. At the lowest level, assignment is implemented using machine operations
such as
The variables
are containers for values. It is possible to put a value into variable and later replace it with a new one. An assignment operation modifies the current state of the executing program. Consequently, assignment is dependent on the concept of variables
. In an assignment:
Example: Assuming that
and the majority of its descendants, augment the notion of assignment
by defining special binary operators
like
An example segment of C
code:
In this sample, the variable
For an assignment operation, it is necessary that the value of the
) and that the
ones, it is not necessary to declare a variable prior to assigning it a value.
languages. In functional programming
, assignment is discouraged in favor of single assignment, also called name binding or initialization. Single assignment differs from assignment as described in this article in that it can only be made once, usually when the variable is created; no subsequent re-assignment is allowed. Once created by single assignment, named values are not variables but immutable object
s.
An evaluation of expression does not have a side effect
if it does not change an observable state of the machine, and produces same values for same input. Imperative assignment can introduce side effects while destroying and making the old value unavailable while substituting it with a new one, and is referred to as "destructive assignment" for that reason in LISP
and functional programming
, similar to destructive update.
Single assignment is the only form of assignment available in purely functional
languages, such as Haskell, which do not have variables in the sense of imperative programming languages but rather named constant values possibly of compound nature with their elements progressively defined on-demand. The purely functional languages provide an opportunity for computation to be performed in parallel
, avoiding von Neumann bottleneck of sequential one step at time execution, since values are independent of each other.
Impure functional languages provide both single assignment as well as true assignment (though true assignment is typically used with less frequency than in imperative programming languages). For example, in Scheme, both single assignment (with
Functional programming languages that use single assignment include Clojure
, Erlang, F#, Haskell
, Lava, Objective Caml
, Oz
, SASL, Scala (for vals), SISAL
. Non-backtracking
Prolog
code can be considered explicit single-assignment, explicit in a sense that its (named) variables can be in explicitly unassigned state, or be set exactly once. In Haskell, by contrast, there can be no unassigned variables, and every variable can be thought of as being implicitly set to its value (or rather to a computational object that will produce its value on demand) when it is created.
In most expression-oriented programming languages
(for example, C
), the assignment statement returns the assigned value, allowing such idioms as
In other programming languages, Scheme for example, the return value of an assignment is undefined and such idioms are invalid.
In Haskell
, there is no variable assignment; but operations similar to assignment (like assigning to a field of an array or a field of a mutable data structure) usually evaluate to unit
, the value of the unit type, which is typically the type of an expression that is evaluated purely for its side effects.
Not all programming languages support chained assignment.
In some programming languages (C
for example), chained assignments are supported because assignments return values.
In Python
, assignment statements do not return a value, but chained assignment is recognized and supported as a special case of the assignment statement.
(since 1.7), occam 2, Perl
, Python
, REBOL
, Ruby
, and Windows PowerShell
allow several variables to be assigned in parallel, with syntax like:
which simultaneously assigns 0 to
The list will be unpacked so that 0 is assigned to
Swaps the values of
since
Parallel assignment was introduced in CPL in 1963, under the name simultaneous assignment.
for equality, as "=" means equality in mathematics, and is used for assignment in many languages. But assignment alters the value of a variable, while equality testing tests whether two expressions have the same value.
In some languages, such as BASIC
, a single equals sign (
The similarity in the two symbols can lead to errors if the programmer forgets which form (
) can detect such situations, and warn the programmer of the potential error.
Notation
Common textual representations of the assignment include an equals sign
(
.
Other possibilities include a left arrow or a keyword, though there are other, rarer, variants:
Some platforms put the expression on the left and the variable on the right:
Some expression-oriented languages, such as Lisp and Tcl, uniformly use prefix syntax for all statements, including assignment.
See also
Computer programming
Computer programming is the process of designing, writing, testing, debugging, and maintaining the source code of computer programs. This source code is written in one or more programming languages. The purpose of programming is to create a program that performs specific operations or exhibits a...
, an assignment statement sets or re-sets the value
Value (computer science)
In computer science, a value is an expression which cannot be evaluated any further . The members of a type are the values of that type. For example, the expression "1 + 2" is not a value as it can be reduced to the expression "3"...
stored in the storage location(s) denoted by a variable
Variable (programming)
In computer programming, a variable is a symbolic name given to some known or unknown quantity or information, for the purpose of allowing the name to be used independently of the information it represents...
name
Name
A name is a word or term used for identification. Names can identify a class or category of things, or a single thing, either uniquely, or within a given context. A personal name identifies a specific unique and identifiable individual person, and may or may not include a middle name...
. In most imperative
Imperative programming
In computer science, imperative programming is a programming paradigm that describes computation in terms of statements that change a program state...
computer
Computer
A computer is a programmable machine designed to sequentially and automatically carry out a sequence of arithmetic or logical operations. The particular sequence of operations can be changed readily, allowing the computer to solve more than one kind of problem...
programming language
Programming language
A programming language is an artificial language designed to communicate instructions to a machine, particularly a computer. Programming languages can be used to create programs that control the behavior of a machine and/or to express algorithms precisely....
s, assignment statements are one of the basic statement
Statement (programming)
In computer programming a statement can be thought of as the smallest standalone element of an imperative programming language. A program written in such a language is formed by a sequence of one or more statements. A statement will have internal components .Many languages In computer programming...
s. Common notations for the assignment operator
Operator (programming)
Programming languages typically support a set of operators: operations which differ from the language's functions in calling syntax and/or argument passing mode. Common examples that differ by syntax are mathematical arithmetic operations, e.g...
are
=
and :=
.Assignment statements typically allow for the same variable to contain different values at different times during program
Computer program
A computer program is a sequence of instructions written to perform a specified task with a computer. A computer requires programs to function, typically executing the program's instructions in a central processor. The program has an executable form that the computer can use directly to execute...
execution. Thus, languages featuring destructive assignment rarely enforce referential transparency, which requires a procedure to return the same results for a given set of inputs at any point in time.
Semantics
An assignment operation is a process in imperative programmingImperative programming
In computer science, imperative programming is a programming paradigm that describes computation in terms of statements that change a program state...
in which different values are associated with a particular variable name as time passes. The program, in such model, operates by changing its state using successive assignment statements. Primitives of imperative programming languages rely on assignment to do iteration. At the lowest level, assignment is implemented using machine operations
Assembly language
An assembly language is a low-level programming language for computers, microprocessors, microcontrollers, and other programmable devices. It implements a symbolic representation of the machine codes and other constants needed to program a given CPU architecture...
such as
MOVE
or STORE
.The variables
Variable (programming)
In computer programming, a variable is a symbolic name given to some known or unknown quantity or information, for the purpose of allowing the name to be used independently of the information it represents...
are containers for values. It is possible to put a value into variable and later replace it with a new one. An assignment operation modifies the current state of the executing program. Consequently, assignment is dependent on the concept of variables
Variable (programming)
In computer programming, a variable is a symbolic name given to some known or unknown quantity or information, for the purpose of allowing the name to be used independently of the information it represents...
. In an assignment:
- The
expression
is evaluated in the current state of the program. - The
variable
is assigned the computed value, replacing the prior value of that variable.
Example: Assuming that
a
is a numeric variable, the assignment a := 2*a
means that the content of the variable a
is doubled after the execution of the statement. The case that the assigned value depends on previous one is so common that many imperative languages, most notably CC (programming language)
C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....
and the majority of its descendants, augment the notion of assignment
Augmented assignment
Augmented assignment is the name given to certain operators in certain programming languages...
by defining special binary operators
Binary operation
In mathematics, a binary operation is a calculation involving two operands, in other words, an operation whose arity is two. Examples include the familiar arithmetic operations of addition, subtraction, multiplication and division....
like
*=
for convenience so that the example becomes a *= 2
.An example segment of C
C (programming language)
C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....
code:
In this sample, the variable
x
is first declared as an int, and is then assigned the value of 10. Notice that the declaration and assignment occur in the same statement. In the second line, y
is declared without an assignment. In the third line, x
is reassigned the value of 23. Finally, y
is assigned the value of 32.4.For an assignment operation, it is necessary that the value of the
expression
is well-defined (it is a valid rvalueValue (computer science)
In computer science, a value is an expression which cannot be evaluated any further . The members of a type are the values of that type. For example, the expression "1 + 2" is not a value as it can be reduced to the expression "3"...
) and that the
variable
represents a modifiable entity (it is a valid modifiable (non-const) lvalue). In some languages, typically dynamicDynamic programming language
Dynamic programming language is a term used broadly in computer science to describe a class of high-level programming languages that execute at runtime many common behaviors that other languages might perform during compilation, if at all...
ones, it is not necessary to declare a variable prior to assigning it a value.
Single assignment
Any assignment that changes an existing value (e.g.x := x + 1
) is disallowed in purely functionalPurely functional
Purely functional is a term in computing used to describe algorithms, data structures or programming languages that exclude destructive modifications...
languages. In functional programming
Functional programming
In computer science, functional programming is a programming paradigm that treats computation as the evaluation of mathematical functions and avoids state and mutable data. It emphasizes the application of functions, in contrast to the imperative programming style, which emphasizes changes in state...
, assignment is discouraged in favor of single assignment, also called name binding or initialization. Single assignment differs from assignment as described in this article in that it can only be made once, usually when the variable is created; no subsequent re-assignment is allowed. Once created by single assignment, named values are not variables but immutable object
Immutable object
In object-oriented and functional programming, an immutable object is an object whose state cannot be modified after it is created. This is in contrast to a mutable object, which can be modified after it is created...
s.
An evaluation of expression does not have a side effect
Side effect (computer science)
In computer science, a function or expression is said to have a side effect if, in addition to returning a value, it also modifies some state or has an observable interaction with calling functions or the outside world...
if it does not change an observable state of the machine, and produces same values for same input. Imperative assignment can introduce side effects while destroying and making the old value unavailable while substituting it with a new one, and is referred to as "destructive assignment" for that reason in LISP
Lisp
A lisp is a speech impediment, historically also known as sigmatism. Stereotypically, people with a lisp are unable to pronounce sibilants , and replace them with interdentals , though there are actually several kinds of lisp...
and functional programming
Functional programming
In computer science, functional programming is a programming paradigm that treats computation as the evaluation of mathematical functions and avoids state and mutable data. It emphasizes the application of functions, in contrast to the imperative programming style, which emphasizes changes in state...
, similar to destructive update.
Single assignment is the only form of assignment available in purely functional
Purely functional
Purely functional is a term in computing used to describe algorithms, data structures or programming languages that exclude destructive modifications...
languages, such as Haskell, which do not have variables in the sense of imperative programming languages but rather named constant values possibly of compound nature with their elements progressively defined on-demand. The purely functional languages provide an opportunity for computation to be performed in parallel
Parallel computing
Parallel computing is a form of computation in which many calculations are carried out simultaneously, operating on the principle that large problems can often be divided into smaller ones, which are then solved concurrently . There are several different forms of parallel computing: bit-level,...
, avoiding von Neumann bottleneck of sequential one step at time execution, since values are independent of each other.
Impure functional languages provide both single assignment as well as true assignment (though true assignment is typically used with less frequency than in imperative programming languages). For example, in Scheme, both single assignment (with
let
) and true assignment (with set!
) can be used on all variables, and specialized primitives are provided for destructive update inside lists, vectors, strings, etc. In OCaml, only single assignment is allowed for variables, via the let name = value
syntax; however destructive update can be used on elements of arrays and strings with separate <-
operator, as well as on fields of records and objects that have been explicitly declared mutable (meaning capable of being changed after its initial declaration) by the programmer.Functional programming languages that use single assignment include Clojure
Clojure
Clojure |closure]]") is a recent dialect of the Lisp programming language created by Rich Hickey. It is a general-purpose language supporting interactive development that encourages a functional programming style, and simplifies multithreaded programming....
, Erlang, F#, Haskell
Haskell (programming language)
Haskell is a standardized, general-purpose purely functional programming language, with non-strict semantics and strong static typing. It is named after logician Haskell Curry. In Haskell, "a function is a first-class citizen" of the programming language. As a functional programming language, the...
, Lava, Objective Caml
Objective Caml
OCaml , originally known as Objective Caml, is the main implementation of the Caml programming language, created by Xavier Leroy, Jérôme Vouillon, Damien Doligez, Didier Rémy and others in 1996...
, Oz
Oz (programming language)
Oz is a multiparadigm programming language, developed in the Programming Systems Lab at Université catholique de Louvain, for programming language education. It has a canonical textbook: Concepts, Techniques, and Models of Computer Programming....
, SASL, Scala (for vals), SISAL
SISAL
SISAL is a general-purpose single assignment functional programming language with strict semantics, implicit parallelism, and efficient array handling. SISAL outputs a dataflow graph in Intermediary Form 1...
. Non-backtracking
Backtracking
Backtracking is a general algorithm for finding all solutions to some computational problem, that incrementally builds candidates to the solutions, and abandons each partial candidate c as soon as it determines that c cannot possibly be completed to a valid solution.The classic textbook example...
Prolog
Prolog
Prolog is a general purpose logic programming language associated with artificial intelligence and computational linguistics.Prolog has its roots in first-order logic, a formal logic, and unlike many other programming languages, Prolog is declarative: the program logic is expressed in terms of...
code can be considered explicit single-assignment, explicit in a sense that its (named) variables can be in explicitly unassigned state, or be set exactly once. In Haskell, by contrast, there can be no unassigned variables, and every variable can be thought of as being implicitly set to its value (or rather to a computational object that will produce its value on demand) when it is created.
Value of an assignment
In some programming languages, an assignment statement returns a value, while in others it does not.In most expression-oriented programming languages
Expression-oriented programming languages
An expression-oriented programming language is a programming language where every construction is an expression and thus yields a value. The typical exceptions are macro definitions, preprocessor commands, and declarations, which expression-oriented languages often treat as statements rather than...
(for example, C
C (programming language)
C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....
), the assignment statement returns the assigned value, allowing such idioms as
x = y = a
, in which the assignment statement y = a
returns the value of a
, which is then assigned to x
. In a statement such as while (f = read) {…}
, the return value of a function is used to control a loop while assigning that same value to a variable.In other programming languages, Scheme for example, the return value of an assignment is undefined and such idioms are invalid.
In Haskell
Haskell (programming language)
Haskell is a standardized, general-purpose purely functional programming language, with non-strict semantics and strong static typing. It is named after logician Haskell Curry. In Haskell, "a function is a first-class citizen" of the programming language. As a functional programming language, the...
, there is no variable assignment; but operations similar to assignment (like assigning to a field of an array or a field of a mutable data structure) usually evaluate to unit
Unit type
In the area of mathematical logic, and computer science known as type theory, a unit type is a type that allows only one value . The carrier associated with a unit type can be any singleton set. There is an isomorphism between any two such sets, so it is customary to talk about the unit type and...
, the value of the unit type, which is typically the type of an expression that is evaluated purely for its side effects.
Chained assignment
A statement likew = x = y = z
is called a chained assignment in which the value of z
is assigned to multiple variables w, x,
and y
. Chained assignments are often used to initialize multiple variables, as ina = b = c = d = f = 0
Not all programming languages support chained assignment.
In some programming languages (C
C (programming language)
C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....
for example), chained assignments are supported because assignments return values.
In Python
Python (programming language)
Python is a general-purpose, high-level programming language whose design philosophy emphasizes code readability. Python claims to "[combine] remarkable power with very clear syntax", and its standard library is large and comprehensive...
, assignment statements do not return a value, but chained assignment is recognized and supported as a special case of the assignment statement.
Parallel assignment
Some programming languages, such as JavaScriptJavaScript
JavaScript is a prototype-based scripting language that is dynamic, weakly typed and has first-class functions. It is a multi-paradigm language, supporting object-oriented, imperative, and functional programming styles....
(since 1.7), occam 2, Perl
Perl
Perl is a high-level, general-purpose, interpreted, dynamic programming language. Perl was originally developed by Larry Wall in 1987 as a general-purpose Unix scripting language to make report processing easier. Since then, it has undergone many changes and revisions and become widely popular...
, Python
Python (programming language)
Python is a general-purpose, high-level programming language whose design philosophy emphasizes code readability. Python claims to "[combine] remarkable power with very clear syntax", and its standard library is large and comprehensive...
, REBOL
REBOL
REBOL is a cross-platform data exchange language and a multi-paradigm dynamic programming language originally designed by Carl Sassenrath for network communications and distributed computing. The language and its official implementation, which is a proprietary freely redistributable software are...
, Ruby
Ruby (programming language)
Ruby is a dynamic, reflective, general-purpose object-oriented programming language that combines syntax inspired by Perl with Smalltalk-like features. Ruby originated in Japan during the mid-1990s and was first developed and designed by Yukihiro "Matz" Matsumoto...
, and Windows PowerShell
Windows PowerShell
Windows PowerShell is Microsoft's task automation framework, consisting of a command-line shell and associated scripting language built on top of, and integrated with the .NET Framework...
allow several variables to be assigned in parallel, with syntax like:
a,b := 0,1
which simultaneously assigns 0 to
a
and 1 to b
. If the right-hand side of the assignment is an array variable, this feature is sometimes called sequence unpacking:
var list := {0, 1}
a,b := list
The list will be unpacked so that 0 is assigned to
a
and 1 to b
. More interestingly,
a,b := b,a
Swaps the values of
a
and b
. In languages without parallel assignment, this would have to be written to use a temporary variable
var t := a
a := b
b := t
since
a:=b ; b:=a
leaves both a
and b
with the original value of b
.Parallel assignment was introduced in CPL in 1963, under the name simultaneous assignment.
Assignment versus equality
Beginning programmers sometimes confuse assignment with the relational operatorRelational operator
In computer science, a relational operator is a programming language construct or operator that tests or defines some kind of relation between two entities. These include numerical equality and inequalities...
for equality, as "=" means equality in mathematics, and is used for assignment in many languages. But assignment alters the value of a variable, while equality testing tests whether two expressions have the same value.
In some languages, such as BASIC
BASIC
BASIC is a family of general-purpose, high-level programming languages whose design philosophy emphasizes ease of use - the name is an acronym from Beginner's All-purpose Symbolic Instruction Code....
, a single equals sign (
"="
) is used for both the assignment operator and the equality relational operator, with context determining which is meant. Other languages use different symbols for the two operators. For example:
- In PascalPascal (programming language)Pascal is an influential imperative and procedural programming language, designed in 1968/9 and published in 1970 by Niklaus Wirth as a small and efficient language intended to encourage good programming practices using structured programming and data structuring.A derivative known as Object Pascal...
, the assignment operator is a colon and an equals sign (":="
) while the equality operator is a single equals ("="
). - In CC (programming language)C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....
, the assignment operator is a single equals sign ("="
) while the equality operator is a pair of equals signs ("
)."
The similarity in the two symbols can lead to errors if the programmer forgets which form (
"=", "", ":="
) is appropriate, or mistypes "=" when "" was intended. This is a common programming problem with languages such as C, where the assignment operator also returns the value assigned, and can be validly nested inside expressions (in the same way that a function returns a value). If the intention was to compare two values in an if
statement, for instance, an assignment is quite likely to return a value interpretable as TRUE
, in which case the then
clause will be executed, leading the program to behave unexpectedly. Some language processors (such as gccGNU Compiler Collection
The GNU Compiler Collection is a compiler system produced by the GNU Project supporting various programming languages. GCC is a key component of the GNU toolchain...
) can detect such situations, and warn the programmer of the potential error.
Notation
Common textual representations of the assignment include an equals sign
Equals sign
The equality sign, equals sign, or "=" is a mathematical symbol used to indicate equality. It was invented in 1557 by Robert Recorde. The equals sign is placed between the things stated to have the same value, as in an equation...
(
=
) and colon-equals (:=
). These two forms are typical of programming languages (such as C) that classify assignment as an infix operatorOperator (programming)
Programming languages typically support a set of operators: operations which differ from the language's functions in calling syntax and/or argument passing mode. Common examples that differ by syntax are mathematical arithmetic operations, e.g...
.
variable = expression |
BASIC BASIC BASIC is a family of general-purpose, high-level programming languages whose design philosophy emphasizes ease of use - the name is an acronym from Beginner's All-purpose Symbolic Instruction Code.... , Bourne shell Bourne shell The Bourne shell, or sh, was the default Unix shell of Unix Version 7 and most Unix-like systems continue to have /bin/sh - which will be the Bourne shell, or a symbolic link or hard link to a compatible shell - even when more modern shells are used by most users.Developed by Stephen Bourne at AT&T... , C C (programming language) C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system.... (and many of its descendants), Fortran Fortran Fortran is a general-purpose, procedural, imperative programming language that is especially suited to numeric computation and scientific computing... , Java Java (programming language) Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities... , PL/I PL/I PL/I is a procedural, imperative computer programming language designed for scientific, engineering, business and systems programming applications... , Python Python (programming language) Python is a general-purpose, high-level programming language whose design philosophy emphasizes code readability. Python claims to "[combine] remarkable power with very clear syntax", and its standard library is large and comprehensive... , Windows PowerShell Windows PowerShell Windows PowerShell is Microsoft's task automation framework, consisting of a command-line shell and associated scripting language built on top of, and integrated with the .NET Framework... ... |
variable := expression |
Ada Ada (programming language) Ada is a structured, statically typed, imperative, wide-spectrum, and object-oriented high-level computer programming language, extended from Pascal and other languages... , ALGOL ALGOL ALGOL is a family of imperative computer programming languages originally developed in the mid 1950s which greatly influenced many other languages and became the de facto way algorithms were described in textbooks and academic works for almost the next 30 years... , Dylan, Eiffel Eiffel (programming language) Eiffel is an ISO-standardized, object-oriented programming language designed by Bertrand Meyer and Eiffel Software. The design of the language is closely connected with the Eiffel programming method... , Pascal Pascal (programming language) Pascal is an influential imperative and procedural programming language, designed in 1968/9 and published in 1970 by Niklaus Wirth as a small and efficient language intended to encourage good programming practices using structured programming and data structuring.A derivative known as Object Pascal... |
Other possibilities include a left arrow or a keyword, though there are other, rarer, variants:
variable << expression |
Magik |
variable <- expression |
Objective Caml Objective Caml OCaml , originally known as Objective Caml, is the main implementation of the Caml programming language, created by Xavier Leroy, Jérôme Vouillon, Damien Doligez, Didier Rémy and others in 1996... , R R (programming language) R is a programming language and software environment for statistical computing and graphics. The R language is widely used among statisticians for developing statistical software, and R is widely used for statistical software development and data analysis.... , S |
variable ← expression |
APL |
variable =: expression |
J J (programming language) The J programming language, developed in the early 1990s by Kenneth E. Iverson and Roger Hui, is a synthesis of APL and the FP and FL function-level languages created by John Backus.... |
LET variable = expression |
BASIC BASIC BASIC is a family of general-purpose, high-level programming languages whose design philosophy emphasizes ease of use - the name is an acronym from Beginner's All-purpose Symbolic Instruction Code.... |
set variable to expression |
AppleScript AppleScript AppleScript is a scripting language created by Apple Inc. and built into Macintosh operating systems since System 7. The term "AppleScript" may refer to the scripting system itself, or to particular scripts that are written in the AppleScript language.... |
set variable = expression |
C shell C shell The C shell is a Unix shell that was created by Bill Joy while a graduate student at University of California, Berkeley in the late 1970s. It has been distributed widely, beginning with the 2BSD release of the BSD Unix system that Joy began distributing in 1978... |
Set-Variable variable (expression) |
Windows PowerShell Windows PowerShell Windows PowerShell is Microsoft's task automation framework, consisting of a command-line shell and associated scripting language built on top of, and integrated with the .NET Framework... |
val variable = expression |
ML |
variable : expression |
Macsyma, Maxima Macsyma Macsyma is a computer algebra system that was originally developed from 1968 to 1982 at MIT as part of Project MAC and later marketed commercially... |
var variable expression |
mIRC scripting language |
Some platforms put the expression on the left and the variable on the right:
MOVE expression TO variable |
COBOL COBOL COBOL is one of the oldest programming languages. Its name is an acronym for COmmon Business-Oriented Language, defining its primary domain in business, finance, and administrative systems for companies and governments.... |
expression → variable |
TI-BASIC TI-BASIC TI-BASIC is the unofficial name of a BASIC-like language built into Texas Instruments 's graphing calculators, including the TI-83 series, TI-84 Plus series, TI-89 series, TI-92 series , TI-73, and TI-Nspire... , Casio Casio graphic calculators Graphic calculators made by Casio include the touchscreen Classpad 300 as well as the models with traditional buttons which can be divided into two main generations listed below.Casio produced the world's first graphing calculator, the fx-7000G.... BASIC |
expression -> variable |
R R (programming language) R is a programming language and software environment for statistical computing and graphics. The R language is widely used among statisticians for developing statistical software, and R is widely used for statistical software development and data analysis.... |
Some expression-oriented languages, such as Lisp and Tcl, uniformly use prefix syntax for all statements, including assignment.
(setq variable expression) |
Lisp |
(set! variable expression) |
Scheme |
set variable expression |
Tcl Tcl Tcl is a scripting language created by John Ousterhout. Originally "born out of frustration", according to the author, with programmers devising their own languages intended to be embedded into applications, Tcl gained acceptance on its own... |
See also
- Assignment operator in C++Assignment operator in C++In the C++ programming language, the assignment operator, '=', is the operator used for assignment. Like most other operators in C++, it can be overloaded....
- Operator (programming)Operator (programming)Programming languages typically support a set of operators: operations which differ from the language's functions in calling syntax and/or argument passing mode. Common examples that differ by syntax are mathematical arithmetic operations, e.g...
- Name bindingName bindingIn programming languages, name binding is the association of objects with identifiers. An identifier bound to an object is said to reference that object. Machine languages have no built-in notion of identifiers, but name-object bindings as a service and notation for the programmer is implemented...
- Unification (computing)
- Immutable objectImmutable objectIn object-oriented and functional programming, an immutable object is an object whose state cannot be modified after it is created. This is in contrast to a mutable object, which can be modified after it is created...
- Const-correctnessConst-correctnessIn computer science, const-correctness is the form of program correctness that deals with the proper declaration of objects as mutable or immutable. The term is mostly used in a C or C++ context, and takes its name from the const keyword in those languages....