Implementare un linguaggio concorrente basato sugli attori in ruby?

0

Come si implementerebbe un linguaggio concorrente basato sugli attori in ruby? Il mio pensiero è che solo il modo corretto di creare programmi sta usando gli attori, ma non sono completamente sicuro su come questo possa essere fatto, e su come la sintassi / grammatica potrebbe essere, ma mi piace l'idea. Userò Ruby insieme a rdparser e celluloid (per l'implementazione degli attori). Il mio punto non è quello di renderlo veramente "utile" o implementare la mia versione di attori, più cercando di creare un linguaggio funzionante basato sulla concorrenza con gli attori. Cercando degli esempi, indica la direzione giusta se ciò è addirittura plausibile.

    
posta Grimbox 01.03.2017 - 17:35
fonte

1 risposta

1

Per prima cosa sono abbastanza prevenuto nei confronti della programmazione istituzionalizzata, e questo è uno dei motivi per cui. Ora volevo solo dirlo, quindi puoi prendere questa risposta con un pizzico di sale.

Gli attori sono una costruzione teorica. Loro "possono" significare ciò che vuoi. Nei suoi attori principali ci sono cose che fanno cose. Di solito in un programma incentrato sulla concorrenza, un "attore" è un'analogia per un'unità di lavoro che può essere segmentata dalle altre unità di lavoro in modo tale che il programma funzioni ancora piuttosto o meno l'attore è chiamato, che cosa ordinare è chiamato, o se ci vuole molto tempo per farlo è unità di lavoro.

Fai un processo di importazione. Un attore potrebbe

  1. apri il file
  2. leggi riga per riga
  3. Trasforma i dati
  4. chiudi il file

Questo potrebbe essere l'attore di importazione.

La lettura riga per riga può essere un altro attore, così come la trasformazione "unità di lavoro" può essere un attore. Tuttavia, le chiamate aperte e chiuse non possono essere attori "separati". Non è possibile chiudere il file, quindi leggerlo riga per riga.

In altre parole. L'attore è solo una cosa. Un nome per un modo di fare le cose. È una teoria, un modo di modellare un processo per fare cose in un modo che noi umani possiamo capire. Potrebbe aiutarci a capire e "dare corpo" a ciò che stiamo cercando di fare, ma alla fine è solo un "do-hickey" Un costrutto che tu puoi implementare come programmatore.

Detto questo, ci sono alcuni strumenti che possono aiutare con la concorrenza. link per esempio aiuta. Il link potrebbe essere qualcosa da guardare. Ma tieni a mente che gli attori non sono una cosa reale, sono un modello o un modello e mentre alcune gemme possono aiutarti con la messaggistica o il threading, non c'è una singola configurazione difficile e veloce che sia un "attore".

    
risposta data 01.03.2017 - 18:13
fonte