Sarebbe tecnicamente possibile? Se deve essere implementato in Java, direi "molto, molto difficile, ma possibile" senza una significativa perdita di prestazioni.
In questo momento sto scrivendo a mano un DSL staticamente digitato in Java, e l'unico modo per evitare il controllo dei tipi di esecuzione è usare i generici e sopprimere gli avvertimenti "non controllati" ... cioè fino al momento è venuto per implementare array multidimensionali (i parametri di classe devono essere noti al momento della compilazione e sono quindi intrinsecamente finiti, mentre gli array multidimensionali rappresentano un numero infinito di tipi ...) Sto ancora cercando di capirlo, sfortunatamente-- I ' Sono sicuro che incontrerò problemi simili con le classi definite dall'utente.
Il fatto è che continuo a inciampare in questo tipo di problemi, ma dopo essermi seduto per un po ', ho trovato una buona soluzione. Quindi, per farlo e avere i vantaggi prestazioni della tipizzazione statica (nessun controllo del tipo di runtime), direi che è estremamente difficile, ma non impossibile. Meno la performance, direi difficile ma molto possibile.
So che è una vecchia domanda, pensavo che la mia esperienza potesse essere preziosa per qualcuno.