Affectation (informatique)
En algorithmique et en programmation informatique, une affectation, aussi appelée assignation par anglicisme, est une structure qui permet d'attribuer une valeur à une variable.
Il s'agit d'une structure particuliĂšrement courante en programmation impĂ©rative, et dispose souvent pour cette raison d'une notation courte et infixĂ©e, comme x = exprâ
ou x := exprâ
. Dans certains langages, le symbole est considĂ©rĂ© comme un opĂ©rateur d'affectation, et la structure entiĂšre peut alors ĂȘtre utilisĂ©e comme une expression. D'autres langages considĂšrent une affectation comme une instruction et ne permettent pas cet usage.
Notation
La structure d'affectation est le plus souvent notĂ©e x = exprâ
ou x := exprâ
.
x=expr | (sans espace autour du caractĂšre =) Tous les shell unix. Par exemple {Bourne shell, Bash} |
x = expr | Fortran, PL/I, C (et ses descendants comme C++, Java, etc.), Python, Go (pour des variables préalablement déclarées), R, haskell, etc. |
x := expr | ALGOL (et ses dérivés), Simula, CPL, BCPL, Pascal[1], PL/M, Ada, Smalltalk, Eiffel[2] - [3], Oberon, Dylan[4], Go[5] (initialisation et déclaration simultanées) Io, ML[6], etc. |
D'autres langages utilisent une notation en forme de flÚche ou un mot-clé.
x <- expr | F#, OCaml, R, S |
x <<- expr | R |
assign("x", expr) | R |
x â expr | APL[7], Smalltalk |
x =: expr | J |
let x = expr |
Rust |
LET x = expr | BASIC |
let x := expr | XQuery |
set x to expr | AppleScript |
set x = expr | C shell |
Set-Variable x (expr) | Windows PowerShell |
x : expr | Macsyma, Maxima, Rebol |
Certains langages placent l'expression à gauche de l'opérateur, et l'identificateur à droite.
Certains langages, comme Lisp[8] - [9] ou Tcl, utilisent une notation préfixée.
Notes et références
- (en) Lawrie Moore, Foundations of Programming with Pascal, New York, John Wiley & Sons, (ISBN 0-470-26939-1)
- (en) Bertrand Meyer, Eiffel the Language, Hemel Hempstead, Prentice Hall International(UK), (ISBN 0-13-247925-7)
- (en) Richard Wiener, An Object-Oriented Introduction to Computer Science Using Eiffel, Upper Saddle River, New Jersey, Prentice Hall, (ISBN 0-13-183872-5)
- (en) Neal Feinberg, Keene, Sonya E., Mathews, Robert O. et Withington, P. Tucker, Dylan Programming, Massachusetts, Addison Wesley, (ISBN 0-201-47976-1)
- (en) The Go langage Specification: short variable declarations
- (en) Jeffrey D. Ullman, Elements of ML Programming: ML97 Edition, Englewood Cliffs, New Jersey, Prentice Hall, (ISBN 0-13-790387-1)
- (en) Kenneth E. Iverson, A langage, John Wiley and Sons, (ISBN 0-471-43014-5, lire en ligne)
- (en) Paul Graham, ANSI Common Lisp, New Jersey, Prentice Hall, (ISBN 0-13-370875-6)
- (en) Guy L. Steele, Common Lisp: The Language, Lexington, Digital Press, (ISBN 1-55558-041-6)
- (en) R. Kent Dybvig, The Scheme langage: ANSI Scheme, New Jersey, Prentice Hall, (ISBN 0-13-454646-6)
- (en) Jerry D. Smith, Introduction to Scheme, New Jersey, Prentice Hall, (ISBN 0-13-496712-7)
- (en) Harold Abelson, Sussman, Gerald Jay et Sussman, Julie, Structure and Interpretation of Computer Programs, New Jersey, McGraw-Hill, (ISBN 0-07-000484-6)