Как создать свой язык программирования, но без другого языка программирования? Полностью с нуля. Думаю, это возможно! Ведь как-то создали первый ЯП
Есть такая техника. Бутстрап называется. Это когда пишется сначала некое минимальное ядро. На базе него пишется первая версия языка (или ОС) и далее поверх этого стека пишется уже вторая версия. И так далее. Так например первая версия С++ была предположительно на С. А дальше уже следующие версии С++ пишутся на С++.
Вообще в наше время нет никакого смысла изучать ассемблер например лишь ТОЛЬКО для создания компиллятора. Например семейства Clang, Rust и другие относительно новые языки использовали LLVM (это такой себе высокоуровневый ассемблер). Он отличается от ассемблера x86 тем что не привязан к конкретному процессору а считает что все процессоры примерно похожи и у них есть регистры и т.п.
Многие языки семейства Java (Clojure, Groovy) тоже не используют ассемблер. Но тем не менее они называют себя языками.
Интереснее всего изучать историю создания Lisp и Forth. Они настолько не похожи на классические языки что в них почти невозможно сказать где собственно язык и где среда и где грамматика.