Powiedzmy, że chciałem stworzyć dynamiczny kompilator / interpreter języka, być może interpreter schematu, na platformie .NET w obecnym kształcie. Czy lepiej byłoby użyć Dynamic Language Runtime (DLR) lub C # 4.0 do wdrożenia funkcji dynamicznych mojego języka? Czy potrzebuję obu?
Wiem, że w tej dziedzinie wykonano inne prace, w szczególności w przypadku IronScheme i IronPython . Oba te języki używają DLR; Wierzę, że IronPython używa najnowszej wersji DLR (która ma około roku), podczas gdy IronScheme używa wczesnego, mocno zmodyfikowanego rozwidlenia wczesnej wersji DLR. Ale C # 4.0 nie był dostępny, gdy te kompilatory zostały utworzone.
Widziałem pracę Roba Conery'ego z Massive, wykorzystującą dynamiczne funkcje C # 4.0; robi wrażenie. Ale czy C # wytrzyma pełny wysiłek dynamicznego kompilatora / interpretera języka? Czy w DLR są jakieś funkcje, których brakuje w języku C #, czy też DLR zasadniczo został wprowadzony do wersji C # 4.0? Czy straciłbym jakieś ważne cechy DLR, jeśli użyłem wyłącznie C # 4.0?