Например, в С++ есть такая возможность, делать вставки на ассемблере, получается что часть программы написано на С++, а другая на ассемблере, при том делается это без всяких танцев с бубном. И есть ли такая возможность в C#, если есть, то с какими языками, как это работает и если можно, то скиньте ссылку на подробную статью) Спасибо!
Ассемблерные вставки в C# нельзя.
Можно использовать встроенный интерпретатор другого языка (как в упомянутом NLua)
Можно импортировать код, который написан на другом языке для .NET-платформы (На F# например или на голом IL)
Можно вызывать код из сишных библиотек (не только сишных. Главное чтобы был extern "C" или аналог), используя DLLImport.
Можно запустить программу, написанную на другом языке, в новом процессе. При помощи Process.Start
Можно использовать любую вариацию IPC
Ассемблерная вставка - это немного не то, что можно назвать "вставкой на другом языке". Вставка чистого асм просто используется напрямую компилятором при создании исп. файла. Не "знать ассемблер" компилятор не может.
C# - частично компилируемый язык, у него сложный процесс сборки в общий .NET код, а потом под платформу. И тут мы видим, что код на асм не впишется в такую архитектуру. По этому и не имеет возможности прямой вставки.
Прямая вставка асм, поддерживается, как вы уже сказали в С++, в Delphi, FPC и в многих других компилируемых языках.