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?

È stato utile?

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.)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top