Existem várias técnicas, as mais modernas reflection, LLVM, as antigas como parsers e lexers. Pequise sobre metaprogramação. E tem essa linguagem feita para criar linguagens: https://criacaojogos.blogspot.com/search/label/18.01%20Refer%C3%AAncia