Когда-то сам хотел писать язык, даже начинал, но быстро забросил из-за нехватки времени.
Концепции были следующими:
1. язык, построенный по принципу элементарного текстового анализатора, т. е. к примеру существует текстовый файл, в котором написано примерно следующее:
nop = 0x90
mov ax, bx = ... (не помню точных цифр, а по сему врать не буду :) )
и т. д.
в другом текстовом файле может быть написано примерно следующее:
swap (int a, int b) = {mov cx, bx; mov bx, ax; mov ax, cx} (ну что-нибудь типа такого)
и так файлами вплоть до объектов, и прочей современной лабуды
компилятор ищет в программе ТОЧНОЕ соответствие строке и подставляет соответствующий код в выходной файл, причем возможна многоуровневая компиляция с любого уровня абстракции ( кто хочет, может на асме писать, кто хочет на C или C++ и т. д. разница только в кол-ве обратных шагов, т. е. сначала перебирается с c++ в C, потом из C в asm, потом из asm в файл с текстовой записью кодов, а потом в бинарник соответсвенно если на C написано, остаются последние три шага)
2. Главный плюс такого подхода - масштабируемость (одним компилятором можно обработать прогу фактически на любом языке программирования фактически для любого процессора (только текстовые файлы подавай))
3. универсальность синтаксиса. Собственно на этом и остановился, разработал даже правила какие-то. :) Надо придумать так, чтобы одними правилами любую строку описать можно было единственным образом
Вот такое хотел бы видеть лично я :)