Pour créer un langage de programmation, ce qui est presque plus important que la programmation elle même, c´est la réflexion qu´il y a avant.
Si tu veux juste créer un nouveau Basic, avec une ou deux fonctionnalités différentes, alors il suffit de savoir programmer (n´importe quel langage convient) un interpréteur par exemple (écrire un compilo est bien plus complexe (beaucoup plus complexe) car il faut connaitre comment "fonctionne" un programme (le langage machine, mais aussi la machine en elle même, le système d´exploitation, etc.)).
Mais si tu veux créer un vrai langage dans ce cas là il faut avant de commencer à programmer définir chaque point de ton programme, et il vaut mieux connaitre pas mal de langages pour comprendre "comment" ça fonctionne.
En bref, il faut 90% de réflexion et 60% de programmation.
P.S. comme le dit novembre, il y a pas mal d´outils et de langages spécialisés pour aider à écrire des interpréteurs ou des compilateurs, parmis lesquels flex et yacc qui permettent respectivement d´écire des analyseur syntaxique et lexicaux (ou alors c´est le contraire), et beaucoup d´autre que je ne connais pas.