23 lines
2.0 KiB
Markdown
23 lines
2.0 KiB
Markdown
---
|
||
zotero-key: ZKL3R2ZEg5383243
|
||
zt-attachments:
|
||
- "214"
|
||
citekey: FermetureInformatique2024
|
||
---
|
||
up:: [[zotero literature notes]]
|
||
link:: [Zotero](zotero://select/groups/5383243/items/ZKL3R2ZE) [attachment](file:///Users/oscarplaisant/Zotero/storage/JNZ49HIA/Fermeture_(informatique).html)
|
||
#pkm #zotero
|
||
|
||
|
||
> [!cite]+ [Fermeture (informatique)](zotero://select/groups/5383243/items/ZKL3R2ZE) - [Page ](zotero://open-pdf/groups/5383243/items/JNZ49HIA?annotation=P8UFCIK5)
|
||
> Dans un langage de programmation, une fermeture ou clôture (en anglais : closure) est une fonction accompagnée de son environnement lexical. L'environnement lexical d'une fonction est l'ensemble des variables non locales qu'elle a capturées, soit par valeur (c'est-à-dire par copie des valeurs des variables), soit par référence (c'est-à-dire par copie des adresses mémoires des variables)[1]. Une fermeture est donc créée, entre autres, lorsqu'une fonction est définie dans le corps d'une autre fonction et utilise des paramètres ou des variables locales de cette dernière.
|
||
> ^P8UFCIK5aJNZ49HIAg5383243
|
||
|
||
> [!cite]+ [Fermeture (informatique)](zotero://select/groups/5383243/items/ZKL3R2ZE) - [Page ](zotero://open-pdf/groups/5383243/items/JNZ49HIA?annotation=N5UF45WT)
|
||
> Une fermeture peut être passée en argument d'une fonction dans l'environnement où elle a été créée (passée vers le bas) ou renvoyée comme valeur de retour (passée vers le haut). Dans ce cas, le problème posé alors par la fermeture est qu'elle fait référence à des données qui auraient typiquement été allouées sur la pile d'exécution et libérées à la sortie de l'environnement. Hors optimisations par le compilateur, le problème est généralement résolu par une allocation sur le tas de l'environnement.
|
||
>
|
||
> > [!note] Notes
|
||
> > Le passage *vers le haut* d'une fermeture demande l'accès à des données qui sont libéréres de la pile d'exécution.
|
||
> > Cela est résolu par une allocation sur le tas.
|
||
> ^N5UF45WTaJNZ49HIAg5383243
|