Вам придется написать компилятор.Если ваша семантика подходит, вы можете скомпилировать непосредственно в C-код;в противном случае вам придется также написать какое-то время выполнения для кусочков вашего языка, которые нелегко и напрямую переводить на C. Учитывая, что вы говорите о небольшом языке на основе C, это, вероятно, не проблема.
Как ты это делаешь?Ой.Человек.
Существуют десятки книг, статей, учебных пособий и т. Д. По теме написания компилятора .Хотя ни одна отдельная часть компилятора не является особенно сложной (по крайней мере, для наивных, неоптимизирующих компиляторов), есть множество вещей, с которыми приходится бороться различными способами, часто способами, которые слегка несовместимы друг с другом.
По крайней мере, вам понадобится лексер (обычно с помощью автоматизированного инструмента, такого как flex , или как часть набора компиляторов, такого как ANTLR * 1014.*), синтаксический анализатор (обычно через автоматизированные инструменты, такие как Bison и вышеупомянутый ANTLR) и генератор кода (обычно генерируется вручную).В действительности вам, вероятно, захочется вставить дерево абстрактного синтаксиса между анализатором и генератором кода, чтобы предоставить вам (или кому-то еще) пространство для реализации различных оптимизаций и для генерации кодапроще.
На эту тему доступно много книг , не говоря уже о научных статьях.Повеселись.То, что вы пытаетесь сделать, - это сложная задача, но полезная, когда вы ее выполняете.