This commit is contained in:
Oscar Plaisant
2024-03-29 13:56:47 +01:00
parent bf1491120c
commit 3305799e49
35 changed files with 242 additions and 46 deletions

View File

@@ -0,0 +1,35 @@
---
zotero-key: HK8W8STHg5383243
zt-attachments:
- "121"
citekey: EffetBordInformatique2023
---
up:: [[zotero literature notes]]
link:: [Zotero](zotero://select/groups/5383243/items/HK8W8STH) [attachment](file:///Users/oscarplaisant/Zotero/storage/FHGCUVX5/Effet_de_bord_(informatique).html)
#pkm #zotero
> [!cite] [Effet de bord (informatique)](zotero://select/groups/5383243/items/HK8W8STH) - [Page ](zotero://open-pdf/groups/5383243/items/FHGCUVX5?annotation=BAIZ4M66)
> En informatique, une fonction est dite à effet de bord (traduction mot à mot de l'anglais side effect, dont le sens est plus proche d'effet secondaire) si elle modifie un état en dehors de son environnement local, c'est-à-dire a une interaction observable avec le monde extérieur autre que retourner une valeur.
>
> > [!note] Notes
> > effet de bord = modification en dehors de l'environnement local
> ^BAIZ4M66aFHGCUVX5g5383243
> [!cite] [Effet de bord (informatique)](zotero://select/groups/5383243/items/HK8W8STH) - [Page ](zotero://open-pdf/groups/5383243/items/FHGCUVX5?annotation=FRXYERKZ)
> Par exemple, les fonctions qui modifient une variable locale statique, une variable non locale ou un argument mutable passé par référence, les fonctions qui effectuent des opérations d'entrées-sorties ou les fonctions appelant d'autres fonctions à effet de bord[
> ^FRXYERKZaFHGCUVX5g5383243
> [!cite] [Effet de bord (informatique)](zotero://select/groups/5383243/items/HK8W8STH) - [Page ](zotero://open-pdf/groups/5383243/items/FHGCUVX5?annotation=RGPC6369)
> La programmation impérative permet l'emploi des effets de bord dans le fonctionnement de ses programmes, voire l'utilise délibérément
>
> > [!note] Notes
> > La modification (effet de bord) est un mécanisme important de la programmation impérative.
> ^RGPC6369aFHGCUVX5g5383243
> [!cite] [Effet de bord (informatique)](zotero://select/groups/5383243/items/HK8W8STH) - [Page ](zotero://open-pdf/groups/5383243/items/FHGCUVX5?annotation=LAQR2DNM)
> La programmation fonctionnelle cherche au contraire à les minimiser et les isole souvent pour cela dans des structures prévues entre autres pour cela : les monades.
>
> > [!note] Notes
> > La programmation fonctionnelle est une solution aux problèmes des effets de bord.
> ^LAQR2DNMaFHGCUVX5g5383243

View File

@@ -0,0 +1,55 @@
---
zotero-key: XUWRH447g5383243
zt-attachments:
- "139"
citekey: ProgrammingParadigms
---
up:: [[zotero literature notes]]
link:: [Zotero](zotero://select/groups/5383243/items/XUWRH447) [attachment](file:///Users/oscarplaisant/Zotero/storage/LQGLTH3D/paradigms.html)
#pkm #zotero
> [!cite] [Programming Paradigms](zotero://select/groups/5383243/items/XUWRH447) - [Page ](zotero://open-pdf/groups/5383243/items/LQGLTH3D?annotation=QVDN27WM)
> Control flow in imperative programming is explicit: commands show how the computation takes place, step by step. Each step affects the global state of the
> computation.
>
> > [!note] Notes
> > impératif :
> >
> > - flot de contrôle explicite: explication pas-à-pas de ce qui doit être fait
> > - chaque pas affecte l'état global du calcul
> ^QVDN27WMaLQGLTH3Dg5383243
> [!cite] [Programming Paradigms](zotero://select/groups/5383243/items/XUWRH447) - [Page ](zotero://open-pdf/groups/5383243/items/LQGLTH3D?annotation=SW38ETVU)
> Structured programming is a kind of imperative programming where control flow is defined by nested loops, conditionals, and subroutines, rather than via gotos. Variables are generally local to blocks (have lexical scope).
>
> > [!note] Notes
> > Programmation structurée:
> > - structures de contrôle plutôt que `goto`
> > - variables généralement locales à un block
> ^SW38ETVUaLQGLTH3Dg5383243
> [!cite] [Programming Paradigms](zotero://select/groups/5383243/items/XUWRH447) - [Page ](zotero://open-pdf/groups/5383243/items/LQGLTH3D?annotation=KRIHCS5Q)
> OOP is based on the sending of messages to objects. Objects respond to messages by performing operations, generally called methods. Messages can have arguments. A society of objects, each with their own local memory and own set of operations has a different feel than the monolithic processor and single shared memory feel of non object oriented languages.
>
> > [!note] Notes
> > OOP : basé sur l'envoi de messages à des objets.
> ^KRIHCS5QaLQGLTH3Dg5383243
> [!cite] [Programming Paradigms](zotero://select/groups/5383243/items/XUWRH447) - [Page ](zotero://open-pdf/groups/5383243/items/LQGLTH3D?annotation=3SBD24AE)
> Control flow in declarative programming is implicit: the programmer states only what the result should look like,
> not how to obtain it.
>
> > [!note] Notes
> > déclaratif :
> > le flot de contrôle est implicite.
> > on déclare ce que le résultat doit être plutôt que comment l'obtenir.
> ^3SBD24AEaLQGLTH3Dg5383243
> [!cite] [Programming Paradigms](zotero://select/groups/5383243/items/XUWRH447) - [Page ](zotero://open-pdf/groups/5383243/items/LQGLTH3D?annotation=8L7P34B2)
> In functional programming, control flow is expressed by combining function calls, rather than by assigning values to variables:
> ^8L7P34B2aLQGLTH3Dg5383243
> [!cite] [Programming Paradigms](zotero://select/groups/5383243/items/XUWRH447) - [Page ](zotero://open-pdf/groups/5383243/items/LQGLTH3D?annotation=JRBMX3NW)
> Logic programming and constraint programming are two paradigms in which programs are built by setting up relations that specify facts and inference rules, and asking whether or not something is true (i.e. specifying a goal.) Unification and backtracking to find solutions (i.e.. satisfy goals) takes place automatically.
> ^JRBMX3NWaLQGLTH3Dg5383243

View File

@@ -125,3 +125,26 @@ link:: [Zotero](zotero://select/groups/5383243/items/673TMQRT) [attachment](<fil
> [!cite] [Programming Paradigms for Dummies: What Every Programmer Should Know](zotero://select/groups/5383243/items/673TMQRT) - [Page 19](zotero://open-pdf/groups/5383243/items/P4L4LCJZ?page=11&annotation=X8JQ43BW)
> Erlang Programming highly available embedded systems for telecommunications. This project was undertaken by Joe Armstrong and his colleagues at the Ericsson Computer Science Laboratory starting in 1986. The Erlang language was designed and a first efficient and stable implementation was completed in 1991 [5, 6]. An Erlang program consists of isolated named lightweight processes that send each other messages. Because of the isolation, Erlang programs can be run almost unchanged on distributed systems and multi-core processors. The Erlang system has a replicated database, Mnesia, to keep global coherent states. Erlang and its programming platform, the OTP (Open Telecom Platform) system, are being used successfully in commercial systems by Ericsson and other companies [57, 17].
> ^X8JQ43BWaP4L4LCJZg5383243p11
> [!cite] [Programming Paradigms for Dummies: What Every Programmer Should Know](zotero://select/groups/5383243/items/673TMQRT) - [Page 19](zotero://open-pdf/groups/5383243/items/P4L4LCJZ?page=11&annotation=CBQAJDG2)
> E Programming secure distributed systems with multiple users and multiple security domains. This project was undertaken over many years by different institutions. It started with Dennis and Van Horns capability model in 1965 [13] and Carl Hewitts Actor model in 1973 [24] and it led via concurrent logic programming to the E language designed by Doug Barnes, Mark Miller, and their colleagues [32, 31]. Predecessors of E have been used to implement various multiuser virtual 19 Peter Van Roy environments. An E program consists of isolated single-threaded vats (processes) hosting active objects that send each other messages. Deterministic concurrency is important in E because nondeterminism can support a covert channel.
> ^CBQAJDG2aP4L4LCJZg5383243p11
> [!cite] [Programming Paradigms for Dummies: What Every Programmer Should Know](zotero://select/groups/5383243/items/673TMQRT) - [Page 23](zotero://open-pdf/groups/5383243/items/P4L4LCJZ?page=15&annotation=8QWDQKJU)
> A record is a data structure: a group of references to data items with indexed access to each item.
>
> > [!note] Notes
> > enregistrement = un ensemble de références à des données avec un accès indexé
> > enregistrement = concept derrière le dictionnaire
> ^8QWDQKJUaP4L4LCJZg5383243p15
> [!cite] [Programming Paradigms for Dummies: What Every Programmer Should Know](zotero://select/groups/5383243/items/673TMQRT) - [Page 23](zotero://open-pdf/groups/5383243/items/P4L4LCJZ?page=15&annotation=E7BNJFPV)
> A symbolic programming language is able to calculate with records: create new records, decompose them, and examine them.
>
> > [!note] Notes
> > programmation symbolique => calculer avec des enregistrements
> ^E7BNJFPVaP4L4LCJZg5383243p15
> [!cite] [Programming Paradigms for Dummies: What Every Programmer Should Know](zotero://select/groups/5383243/items/673TMQRT) - [Page 23](zotero://open-pdf/groups/5383243/items/P4L4LCJZ?page=15&annotation=LVLX8ZD6)
> Many important data structures such as arrays, lists, strings, trees, and hash tables can be derived from records.
> ^LVLX8ZD6aP4L4LCJZg5383243p15