AccueilđŸ‡«đŸ‡·Chercher

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 = exprFortran, PL/I, C (et ses descendants comme C++, Java, etc.), Python, Go (pour des variables préalablement déclarées), R, haskell, etc.
x := exprALGOL (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 <- exprF#, OCaml, R, S
x <<- exprR
assign("x", expr)R
x ← exprAPL[7], Smalltalk
x =: exprJ
let x = expr Rust
LET x = exprBASIC
let x := exprXQuery
set x to exprAppleScript
set x = exprC shell
Set-Variable x (expr)Windows PowerShell
x : exprMacsyma, Maxima, Rebol

Certains langages placent l'expression à gauche de l'opérateur, et l'identificateur à droite.

MOVE expr TO xCOBOL
expr → xTI-Basic, Casio Basic
expr -> xR
put expr into xLiveCode

Certains langages, comme Lisp[8] - [9] ou Tcl, utilisent une notation préfixée.

(setf x expr)Lisp
(set! x expr)Scheme[10] - [11] - [12]
set x exprTcl
expr x !Forth

Notes et références

  1. (en) Lawrie Moore, Foundations of Programming with Pascal, New York, John Wiley & Sons, (ISBN 0-470-26939-1)
  2. (en) Bertrand Meyer, Eiffel the Language, Hemel Hempstead, Prentice Hall International(UK), (ISBN 0-13-247925-7)
  3. (en) Richard Wiener, An Object-Oriented Introduction to Computer Science Using Eiffel, Upper Saddle River, New Jersey, Prentice Hall, (ISBN 0-13-183872-5)
  4. (en) Neal Feinberg, Keene, Sonya E., Mathews, Robert O. et Withington, P. Tucker, Dylan Programming, Massachusetts, Addison Wesley, (ISBN 0-201-47976-1)
  5. (en) The Go langage Specification: short variable declarations
  6. (en) Jeffrey D. Ullman, Elements of ML Programming: ML97 Edition, Englewood Cliffs, New Jersey, Prentice Hall, (ISBN 0-13-790387-1)
  7. (en) Kenneth E. Iverson, A langage, John Wiley and Sons, (ISBN 0-471-43014-5, lire en ligne)
  8. (en) Paul Graham, ANSI Common Lisp, New Jersey, Prentice Hall, (ISBN 0-13-370875-6)
  9. (en) Guy L. Steele, Common Lisp: The Language, Lexington, Digital Press, (ISBN 1-55558-041-6)
  10. (en) R. Kent Dybvig, The Scheme langage: ANSI Scheme, New Jersey, Prentice Hall, (ISBN 0-13-454646-6)
  11. (en) Jerry D. Smith, Introduction to Scheme, New Jersey, Prentice Hall, (ISBN 0-13-496712-7)
  12. (en) Harold Abelson, Sussman, Gerald Jay et Sussman, Julie, Structure and Interpretation of Computer Programs, New Jersey, McGraw-Hill, (ISBN 0-07-000484-6)
Cet article est issu de wikipedia. Text licence: CC BY-SA 4.0, Des conditions supplĂ©mentaires peuvent s’appliquer aux fichiers multimĂ©dias.