O script de concha é muito comum, pois a concha continua sendo a cola que mantém os sistemas modernos unidos. Por exemplo, instalações modernas, como integração contínua e entrega contínua (IC/CD), são frequentemente escritas no Shell, escrevendo os pesquisadores em seu email. Outros ambientes populares usados ​​para tarefas, como a criação de software, a atendimento de cargas de trabalho de aprendizado de máquina e o fornecimento da nuvem, são todas as embalagens finas em torno de scripts, acrescentaram. No entanto, a linguagem da Shell não se comporta como outros idiomas, disseram eles. Isso deixa usuários inexperientes e experientes cometindo muitos erros, com esses erros tendendo a ser catastróficos. “E como a concha é um idioma antigo, falta muitas das instalações que esperamos nos idiomas modernos”, disseram os pesquisadores. “Além disso, o shell é usado para manipular programas em arquivos em sistemas ao vivo. Os erros podem causar corrupção de dados, interrupção de serviços, perda de dados irreversível e vazamento de informações sensíveis ao usuário.”

A análise estática é uma técnica comprovada para saber coisas sobre um programa antes de ser executado, de acordo com os pesquisadores. “Uma boa análise estática pode detectar muitos insetos antes que eles tenham a chance de morder”, disseram eles. Ao ser orientado semântica, a análise tem como alvo um raciocínio mais profundo do que, digamos, um linhador sintático, eles explicaram. Vários tipos de análises são previstos, operando em conjunto para combater os meandros de um ambiente complexo. Por exemplo, uma análise de efeito tem como alvo as interações do sistema de arquivos, enquanto um sistema de tipos centrado em torno de tipos regulares alvos de interações interprocessantes nos cálculos de tubo e filtro. “O objetivo é fornecer mensagens precisas de erro antes da execução de um programa, semelhante ao que você esperaria de uma linguagem de programação moderna”, disseram os pesquisadores.

A esperança é que a análise semântica descubra mais e os bugs mais profundos, sendo capazes de raciocinar profundamente sobre scripts de shell, os programas que eles invocam, a maneira como interagem e o que fazem com o sistema de arquivos. Os pesquisadores estão atualmente implementando vários sistemas que abordam partes de sua visão. “Temos que criar nosso mecanismo de raciocínio de fluxo, efeitos de direcionamento do mecanismo de execução simbólica, um idioma de especificação para comandos UNIX e Linux e modelos semânticos para que possamos ter certeza de que nossa análise está correta”, disseram eles. “Vários outros trabalhos e ferramentas públicas estarão disponíveis muito em breve.”