Desenvolva suas habilidades e seu portfólio
Na minha opinião, seria uma experiência de aprendizado muito boa, pois:
- forçá-lo a olhar sob o capô ,
- orientá-lo a aprender como as coisas são feitas internamente ,
- encorajamos você a olhar e comparar outras implementações ,
- mantenha suas habilidades de algoritmo atualizadas,
- fazer você codificar (e espero documentar ) muito, o que também não é ruim,
- oferece um projeto e uma base de código significativos que você pode compartilhar on-line para que todos vejam, para:
- prazer pessoal e gratificação ,
- mostrando suas habilidades para potenciais empregadores,
- comunicar e trocar informações com colegas interessados na mesma área,
- potencialmente deixá-lo crescer em algo mais ...
Então, eu vejo isso como produto, útil e geral "vale a pena".
Iniciar
Agora você pode usar abordagens diferentes, dependendo de quanto tempo planeja gastar com isso ...:
- Se você tiver um prazo limitado, eu diria que mergulhe e codifique a coisa.
- Se você tiver um período de tempo mais amplo, poderá realmente seguir o caminho mais longo e escrever especificações, tutoriais, manuais, etc.
Comece pequeno
Prefiro recomendar que você comece pequeno . Eu nunca soube que ninguém escreveu diretamente uma linguagem incrível assim. Você tropeça e cai, e falha, e falha e falha . Então você obtém sucesso, na medida em que funciona, mas ainda é péssimo, para começar de novo. E você adiciona novos recursos e finalmente está ficando legal, mas de repente você percebe que há um conceito fundamental que você estragou no começo. Então você começa de novo ...
Parece muito educativo para mim.
Vá em frente (e compartilhe o link conosco).
Pequeno, como em "curto"
Mas, novamente, eu recomendo que você comece pequeno . Não tenha medo se as pessoas disserem que vai demorar muito código e tempo. Não necessariamente, se você não busca uma linguagem complicada. Alan Kay e outros
engenheiros do Xerox PARC supostamente desenvolveram uma versão inicial do
Smalltalk que cabe em uma única folha de papel , como um objetivo de concisão (leia Xerox PARC: Dealers of Lightning para obter detalhes sobre a história do PARC ). Parece uma abordagem boa, educacional e restrita o suficiente (desde que não sacrifique a legibilidade).
Pequeno, como em "restrito"
Você não precisa oferecer suporte imediato a um sistema de tipo avançado, funções de ordem superior e uma mistura de 42 paradigmas diferentes. Poderia ser apenas uma linguagem de expressão matemática.
Reutilize (e espreite) o Conhecimento de Outros
Você também pode querer dar uma olhada nas ferramentas usadas para escrever idiomas do zero. Você pode reimplementar tudo sozinho, mas talvez também valha a pena examinar os lexers e geradores de analisadores existentes, por exemplo.
E, obviamente, você pode querer ler sobre a construção do compilador em geral.
Agora, se modificarmos sua pergunta para "seria o uso mais produtivo do seu tempo?" torna-se uma questão totalmente diferente :)
Existem muitos outros projetos de aprendizado que você poderia enfrentar, e isso treinaria e mostraria suas habilidades igualmente bem, se não melhores. Depende do que você deseja buscar.