Come vengono implementate le coroutine?
-
26-09-2019 - |
Domanda
Ho una domanda sull'implementazione della coroutine. vidi coroutine
Primo su Lua e Stackless-Python. Potrei capirne il concetto e come usare yield
Parola chiave, ma non riesco a capire come sia implementato.
Posso avere qualche spiegazione su di loro?
Soluzione
La coroutining viene avviata spingendo l'indirizzo di destinazione, quindi ogni interruttore di coroutine scambia il PC corrente con la parte superiore dello stack, che alla fine deve essere spuntato per terminare la coroutining.
Altri suggerimenti
Guarda anche: Implementazione del supporto "generatore" in un linguaggio personalizzato. I generatori sono fondamentalmente una forma limitata di coroutine (semi), la maggior parte di ciò che viene discusso in quella domanda si applica anche qui.
Anche: Come vengono implementate le eccezioni sotto il cofano? Mentre le eccezioni sono ovviamente molto diverse dalle coroutine, entrambi hanno qualcosa in comune: entrambi sono costrutti di flusso di controllo universale avanzato. (In effetti, è possibile implementare coroutine usando eccezioni ed eccezioni usando le coroutine.)