Construindo e depurando linguagens específicas de domínio: uma nova ferramenta inovadora do MIT
Os pesquisadores do MIT Ajay Brahmakshatriya e Saman Amarasinghe desenvolveram BuildIt e D2X – ferramentas inovadoras que facilitam a criação, depuração e otimização de linguagens específicas de domínio. O BuildIt, um software de criação de DSL, é emparelhado com o D2X, que serve como uma interface, simplificando o processo de depuração. Combinadas, essas tecnologias simplificam e melhoram drasticamente a criação e a depuração de linguagens de programação especializadas.

Em 2019, MIT Ph.D. O aluno Ajay Brahmakshatriya estabeleceu uma meta ambiciosa, mas crucial: permitir que especialistas em domínios específicos, como modelagem climática, bioinformática ou arquitetura, desenvolvam suas linguagens específicas de domínio (DSLs), mesmo com pouca ou nenhuma experiência anterior. Isso exigia o fornecimento de ferramentas para fácil depuração para eliminar erros e aprimorar a experiência do usuário. Um esforço colaborativo entre Brahmakshatriya e o professor do MIT Saman Amarasinghe no Instituto de Ciência da Computação e Laboratório de Inteligência Artificial (CSAIL) resultou em BuildIt e D2X, ferramentas inovadoras que simplificam a criação, depuração e otimização de DSLs.
As linguagens específicas de domínio existem para facilitar o uso e otimizar o desempenho, pois as operações especializadas podem ser executadas com eficiência em seus domínios. Os desafios que os DSLs enfrentam geralmente se devem à falta de suporte de depuração, que Ajay e Amarasinghe chamam de calcanhar de Aquiles. Seu sistema, BuildIt, simplifica o processo de criação de DSLs agindo como um DSL para criar DSLs. Ele pega uma linguagem de programação de propósito geral e a reduz a uma forma especializada que é relevante para o domínio. Essa abordagem gera rapidamente programas personalizados com desempenho ideal em seu campo específico.
A ferramenta inovadora, D2X (pronuncia-se detox), faz interface com depuradores DSL existentes, como GDB ou LLDB, facilitando a adição de um componente de depuração a qualquer DSL. Um programa escrito usando BuildIt não requer trabalho extra, pois o D2X fornece recursos de depuração sem escrever linhas adicionais de código. Ao servir como uma ponte entre depuradores e uma DSL, esse sistema elimina a necessidade de os desenvolvedores aprenderem ou criarem formatos de depuradores, democratizando assim o processo de criação de linguagens de programação especializadas.
O potencial do D2X para mudar o mundo da programação é de longo alcance. O professor associado de Ciência da Computação da Cornell University, Adrian Sampson, elogia o D2X por lidar com a contradição inerente ao software de alto desempenho ao diminuir a barreira para a construção de depuradores úteis para DSLs. Isso tem o potencial de tornar as DSLs muito mais atraentes e acessíveis aos desenvolvedores.
Olhando para o futuro, Brahmakshatriya pretende incluir recursos de edição como parte da plataforma BuildIt. Os editores de texto podem melhorar a legibilidade destacando palavras-chave específicas em um documento ou oferecendo funções de preenchimento automático. Adições futuras à plataforma podem incluir integrações com criadores de perfil, que podem ajudar os desenvolvedores a identificar e resolver problemas de desempenho em seus programas.
O trabalho inovador de Brahmakshatriya e Amarasinghe acaba nivelando o campo de jogo, fornecendo recursos avançados para desenvolvedores de linguagem de programação menores. O BuildIt e o D2X permitem que eles aproveitem os benefícios das linguagens tradicionais sem a necessidade de grandes equipes para desenvolver códigos complexos.
Esse desenvolvimento também pode beneficiar plataformas sem código, como AppMaster.io, uma ferramenta poderosa para criar aplicativos de back-end, web e móveis. Ao alavancar as inovações decorrentes do BuildIt e do D2X, plataformas como AppMaster.io poderiam oferecer progressivamente recursos avançados e simplificar o processo de criação de aplicativos especializados, capacitando ainda mais uma ampla gama de desenvolvedores e empresas.


