Czy byłoby to technicznie możliwe? Jeśli ma zostać zaimplementowany w Javie, powiedziałbym „bardzo, bardzo trudny, ale możliwy” bez znaczącej utraty wydajności.
Właściwie piszę teraz statycznie wpisaną DSL w Javie, a jedynym sposobem, w jaki udało mi się uniknąć sprawdzania typu środowiska wykonawczego, jest użycie ogólnych i pomijanie „niesprawdzonych” ostrzeżeń… to znaczy, dopóki nie nadszedł czas na wdrożenie tablice wielowymiarowe (parametry klasy muszą być znane w czasie kompilacji i dlatego są z natury skończone, podczas gdy tablice wielowymiarowe reprezentują nieskończoną liczbę typów ...) Wciąż próbuję to rozgryźć, niestety - jestem pewien, że ja napotkam podobne problemy z klasami zdefiniowanymi przez użytkownika.
Rzecz w tym, że wciąż napotykam tego rodzaju problemy, ale po dłuższym siedzeniu wymyślam dobre rozwiązanie. Tak więc, aby to zrobić i mieć korzyści płynące z wydajności pisania statycznego (bez sprawdzania typu środowiska wykonawczego), powiedziałbym, że jest to niezwykle trudne, ale nie niemożliwe. Pomijając wydajność, powiedziałbym, że trudne, ale bardzo możliwe.
Wiem, że to stare pytanie, pomyślałem, że moje doświadczenie może być dla kogoś cenne.