Come si gestisce un grafico a stati grandi quando si costruisce una macchina a stati finiti scalabile?

0

Ultimamente ho lavorato su un progetto che prevede l'analisi di un linguaggio specifico del dominio giocattolo. Mentre lo stavo sviluppando, mi sono reso conto che un modo efficiente per gestire i token di analisi sarebbe rappresentare il parser come una macchina a stati. Per grande successo. Rappresentando ogni possibile stato del parser si è liberato di molti problemi che stavo affrontando. Tuttavia, di recente ho riscontrato un nuovo problema. La modellazione del grafico di stato completo sta diventando lentamente ingestibile. Puoi vedere qui che anche ora il grafico di stato è piuttosto piccolo. Mi ha fatto pensare, come si gestirà il grafico di stato per una grande applicazione aziendale?

Sono sicuro che ci sono librerie di terze parti che lo fanno, ma se si dovesse lanciare una macchina a stati scalabili da zero, come si farebbe? Qualsiasi consiglio / saggezza sarebbe molto apprezzato qui!

    
posta dopatraman 23.06.2016 - 17:53
fonte

1 risposta

2

Per analizzare una lingua giocattolo, usa un generatore di parser come Antlr . Il parser generato terrà traccia degli stati per te.

Sebbene non sia necessario gestire un grafico di stato per il linguaggio del giocattolo, le macchine di stato in generale beneficiano dell'idea di stati compositi e stati secondari. Vedi Harecharts statecharts . Se la macchina a stati diventa troppo disordinata, probabilmente non l'hai rovinata correttamente.

    
risposta data 24.06.2016 - 01:44
fonte