Você não precisa usar C, até porque a linguagem que você vai criar vai ser puramente didática e longe de algo realmente funcional, então basta usar o que você sabe.

Nesse caso, eu recomento estudar um pouco sobre teoria da computação, mas não precisa se aprofundar muito, principalmente porque isso é chato demais. Depois veja algo sobre compiladores em si, e aqui eu recomendo esse web-book chamado Crafting Interpreters, em que o autor começa usando Java, mostra o básico, explica o motivo de Java não ser adequado e reescreve em C, aí sim, usando algoritmos, não diria avançados, pois são relativamente simples, mas mais adequados.

Valeu man, tenho um pouco de noção de java, acho que vendo tudo isso vou estudar mais um pouco antes de começar a realmente criar algo.

exato, criar uma realmente funcional com alta escalabilidade e eficiência tá um tanto distante dos meu conhecimentos kskskks. mas é um trabalho de meses, então tenho bastante carinho, apesar de ser apenas pro meu portfólio.