Para que o código-fonte escrito seja compreendido e executado pelo computador, ele deve ser traduzido para linguagem de máquina pelo compilador. Antes de o compilador realmente começar a compilar, ele analisa o código-fonte. Se encontrar algum erro, o processo de compilação será abortado.
Resumo
- O compilador traduz o código-fonte em linguagem de máquina e verifica se há erros no código.
- Mensagens de erro do compilador são normais e devem ser levadas a sério.
- É importante dar suporte ao compilador usando mecanismos específicos da linguagem, como variáveis “somente leitura”.
- O nível de aviso do compilador deve ser definido ao máximo para identificar e corrigir erros potenciais numa fase inicial.
- O compilador pode ajudar a prevenir erros de execução, por isso é importante informá-lo sobre as intenções do código.
Nosso inimigo, os compiladores
Qualquer pessoa que já experimente programar há algum tempo deve saber disso: mensagens de erro do compilador são irritantes! O que ele quer? Está claro o que programei lá! Parece que o compilador está intimidando você. Mas: o compilador está sempre certo!
O compilador está sempre certo
Embora existam bugs de compilador, eles são tão raros que, especialmente para programadores iniciantes, você deve presumir que o compilador está certo. Mensagens de erro do compilador são algo completamente normal na programação cotidiana. Mesmo que o programador experiente cometa poucos erros durante a codificação, um erro de sintaxe ainda ocorrerá de vez em quando, o que o compilador, é claro, terá que corrigir. Tais erros são simplesmente corrigidos e o assunto é resolvido. Porém, de vez em quando acontece que o erro não é tão fácil de encontrar. Depois que é finalmente corrigido, geralmente acontece que o compilador reclamou por um bom motivo.
Apoie o compilador
Para que o compilador possa ajudá-lo de maneira mais direcionada, você deve apoiá-lo se possível. As opções para isso são, obviamente, altamente dependentes da linguagem, mas existem mecânicas na maioria das linguagens de programação para tornar variáveis ou objetos “somente leitura”, por exemplo. Em C++ existe a palavra-chave const para isso. Quando esta palavra-chave é usada corretamente, geralmente é chamada de correção const. Em Java existe a palavra-chave final, que marca uma variável como imutável. Você também deve usar modificadores de acesso (por exemplo, público, protegido, privado) e defini-los da forma mais estrita possível. Quanto mais informações você fornecer ao compilador, maior será a probabilidade de ele detectar um possível problema e, assim, evitar erros de execução.
Nível máximo de aviso
A maioria dos compiladores permite definir um nível de aviso. Isso pode tornar o compilador um pouco menos complicado. Mas isso não é uma boa ideia, porque geralmente há um bom motivo para você receber um aviso do compilador. É por isso que você deve adquirir o hábito de definir o nível de alerta ao máximo desde o início. Geralmente há outra opção que pode ser usada para especificar que os avisos devem ser interpretados como erros. Como resultado, o código-fonte que produz avisos não é mais traduzido em um programa executável. Isso é bom! Isso significa que você pode identificar e corrigir possíveis erros no momento da tradução.
Conclusão
O compilador é na verdade seu amigo. Se você tentar informá-lo de suas intenções, poderá ser poupado de um ou dois erros de execução. E os erros de tempo de execução são muito mais difíceis de corrigir do que as mensagens de erro do compilador (erros de tempo de compilação).
O artigo foi útil para você? Se sim, ajude-nos e compartilhe!
FAQ: Perguntas frequentes
O compilador traduz o código-fonte escrito em linguagem de máquina para que o computador possa entendê-lo e executá-lo.
Mensagens de erro do compilador são normais e devem ser levadas a sério, pois indicam possíveis erros no código e auxiliam na solução de problemas.
Embora seja raro que os compiladores contenham bugs, geralmente você pode assumir que o compilador está certo. Os programadores iniciantes devem assumir que o compilador retorna mensagens de erro corretas.
Para suportar efetivamente o compilador, deve-se usar mecanismos específicos da linguagem, como o uso de variáveis “somente leitura” ou o uso de modificadores de acesso. Quanto mais informações o compilador receber, melhor ele poderá identificar possíveis problemas e evitar erros de tempo de execução.
Para maximizar o desempenho do compilador, é aconselhável definir o nível de aviso ao máximo e interpretar os avisos como erros. Isto permite que potenciais erros sejam identificados e corrigidos numa fase inicial. Também é importante consultar a documentação da linguagem de programação utilizada para utilizar opções específicas de otimização do compilador.
Não, não é recomendado reduzir o nível de aviso do compilador. Os avisos devem ser levados a sério, pois indicam possíveis problemas. É aconselhável definir o nível de aviso do compilador ao máximo para detectar e corrigir potenciais erros antecipadamente.
Corrigir erros do compilador em tempo de compilação é benéfico porque ajuda a evitar erros em tempo de execução. Erros de tempo de execução costumam ser mais difíceis de corrigir e podem levar a falhas ou mau funcionamento indesejados do programa.