Я хочу создать язык программирования, предназначенный для. NET и скомпилированный в IL, но среда выполнения. NET не поддерживает встроенную утку. Я знаю, что динамическое связывание c или запуск ИЛ во время выполнения могли бы достичь этого, но есть некоторые ограничения:
- Значительные затраты производительности при связывании Dynami c.
- Не поддерживается, когда есть собственная компиляция AOT (например, IL2 CPP, corert , новая встроенная функция сборки в . NET 5 ).
- Возможно, не полностью поддерживается в некоторых специальных средах выполнения (например, Mono WebAssembly , IL Runtime ).
Не знаю, если Реализация утиной типизации в механизме. NET время выполнения должна зависеть от динамического связывания c, или если коды для утиной печати могут быть статически связаны без затрат времени выполнения.
Есть ли решение для достижения этой цели? с наименьшими затратами времени выполнения и наибольшей совместимостью?