Вам нужно будет выучить некоторый язык ассемблера (или байт-код), чтобы перевести скомпилированную программу во что-то, что действительно может быть выполнено.
В частности, для C (++) вам также понадобится копия стандарта (ов) C (++).
Вы можете сделать несколько коротких путей, таких как интерпретация вместо полной компиляции или перевода на другой язык и компиляции с другим компилятором.
Кроме того, вы должны сначала создать компилятор для небольшого или тупого языка, такого как Forth, Basic или так называемый small C (не поддерживающего все типы, конструкции и ключевые слова и не имеющего большей части стандартной библиотеки).
Я могу оценить, что мне, довольно сведущему программисту C, который хорошо знает x86, понадобится несколько месяцев (~ 3), чтобы создать работающий небольшой компилятор C-ish. Только минимальная стандартная библиотека, никаких оптимизаций, минимальная проверка ошибок (то есть не генерация всех полезных предупреждений). Это должно дать вам представление о том, как много времени может занять даже в не очень сложных случаях. Быстрое изготовление чего-то маленького может быть более полезным.