L'ho visto menzionato in diversi luoghi in contesti come il modello di attore di Erlang, gli attori di Groovy, il modello di attore Scala ecc. A cosa si riferisce questo?Che cos'è il modello di attore nel contesto di un linguaggio di programmazione?
risposta
Penso Wikipedia riassume meglio:
Il modello attore adotta la filosofia che ogni cosa è un attore. Questo è simile a tutto ciò che è una filosofia oggetto utilizzata da alcuni linguaggi di programmazione orientati agli oggetti, ma differisce in quel software orientato agli oggetti che viene tipicamente eseguito in sequenza, mentre il modello di attore è intrinsecamente concorrente. [snip] Il modello di attore riguarda la semantica del passaggio dei messaggi.
Qualche tempo fa ho scritto this blog post che spiega i concetti di base del modello e crea un'implementazione di base con JavaScript. Da posta:
Nel Modello attore, un attore è il fondamento su cui si costruisce la struttura della vostra applicazione, ha stato interno invisibili al mondo esterno e interagisce con gli altri attori attraverso messaggi asincroni.
Se questo ti sembra molto simile alla programmazione orientata agli oggetti (OOP), hai ragione. Il modello attore può essere pensato come OOP con trattamento speciale ai messaggi: vengono consegnati in modo asincrono ed eseguiti in modo sincrono dal ricevitore.
Ogni attore è identificato da un indirizzo univoco con il quale si inviano messaggi. Quando un messaggio viene elaborato, viene confrontato con il comportamento corrente dell'attore; che non è altro che una funzione che definisce le azioni da intraprendere in risposta al messaggio. In risposta a un messaggio, un attore può:
- Creare più attori.
- Invia messaggi ad altri attori.
- Designare lo stato interno per gestire il messaggio successivo.
- 1. Stack e heap nel linguaggio di programmazione
- 2. Esistono modelli nel linguaggio di programmazione C?
- 3. Fogli di calcolo che utilizzano un linguaggio di programmazione funzionale
- 4. Linguaggio di programmazione misterioso
- 5. Github riconosce erroneamente il linguaggio di programmazione utilizzato nel progetto
- 6. Esiste un linguaggio di programmazione in cui ogni funzione viene essenzialmente eseguita come attore separato?
- 7. Come rappresentare un campo binario nel linguaggio di programmazione?
- 8. Rilevamento di collisione e modello di attore
- 9. Come implementeresti un linguaggio di programmazione funzionale?
- 10. usa zeromq per implementare il modello di attore
- 11. Creare un linguaggio di programmazione con C#
- 12. Come creare un linguaggio di programmazione .Net?
- 13. Agda come linguaggio di programmazione
- 14. UML è un linguaggio di programmazione?
- 15. più dinamico linguaggio di programmazione dinamica
- 16. Programmazione linguaggio assembly di Windows
- 17. Come definire i miei operatori nel linguaggio di programmazione Io?
- 18. Il linguaggio di programmazione C ha un runtime?
- 19. cosa significano "_" e "in" nel linguaggio di programmazione Swift?
- 20. Che cos'è un equivalente "rendimento restituito" nel linguaggio di programmazione D?
- 21. Concorrenza in stile Erlang nel linguaggio di programmazione D
- 22. Metodologie per la progettazione di un linguaggio di programmazione semplice
- 23. Ordinamento diretto sul posto nel linguaggio di programmazione D
- 24. Data e ora nel linguaggio di programmazione C
- 25. Quando si dovrebbe usare il modello di attore?
- 26. Pattern di programmazione Node.js per ottenere il contesto di esecuzione
- 27. stato di sviluppo web usando il linguaggio di programmazione funzionale
- 28. libreria di algebra lineare per il linguaggio di programmazione D
- 29. linguaggio di programmazione del progetto Enterprise Architect
- 30. Quale libreria/framework modello di attore per Java?