Documente Academic
Documente Profesional
Documente Cultură
www.exsto.com.br 1
ANE0004
um compilador é usado o código Assembly conjunto de instruções, com pouco tempo para
produzido sai do controle do desenvolvedor. o estudo detalhado de cada caso.
No passado, compiladores pouco confiáveis
apresentavam erros de implementação difíceis A solução então é utilizar uma linguagem de
de serem depurados. E ainda, se o conjunto de mais alto nível, que por princípio são
instruções não possuir certas características o independentes do hardware. O desenvolvedor
uso de compiladores gera um código concentra seu trabalho na criação de
significativamente maior e mais lento que um algoritmos e funcionalidades no projeto e
de mesmas funções em Assembly. deixa o trabalho de implementação para o
compilador. Surge então outro problema: qual
Por outro lado, é mais difícil de se desenvolver linguagem usar?
algoritmos complexos em Assembly, tornando
o trabalho de desenvolvimento mais lento e Para muitas pessoas a resposta é: o C!
mais caro. Realizar operações matemáticas Vejamos por que.
complexas (por exemplo, com variáveis do
tipo ponto flutuante) torna-se bastante confuso. Em primeiro lugar, o C é considerado uma
Como a linguagem nativa e os modelos de linguagem de médio nível, isto é, mais
memória de cada arquitetura de amigável para o ser humano, mas mantendo
microcontroladores diferem, é exigido um recursos de baixo nível. Em virtude disso, o C
tempo muito longo de estudo para se adaptar a permite gerar códigos mais eficientes quando
um novo conjunto de instruções. Instruções de comparado com outros compiladores. Há
mesma função podem ter mnemônicos também a vantagem da independência do
totalmente diferentes em diferentes conjuntos hardware que permite que um projeto seja
de instrução. A grande quantidade de linhas de portado de uma arquitetura para outra com
código e a pouca inteligibilidade tornam os poucas alterações no código. Essas
processos de depuração demorados e difíceis. características do C não são por acaso. A
Sendo o Assembly uma linguagem de linguagem foi desenvolvida no início dos anos
programação não estruturada os custos de 70 por Dennis Ritchie especificamente para o
desenvolvimento, depuração e manutenção desenvolvimento do sistema operacional
tendem a ser maiores. Por fim, o UNIX. Na época o dilema era quase o mesmo:
reaproveitamento de código e a portabilidade construir sistemas operacionais em assembly
de programas entre uma arquitetura e outra é era demorado e dispendioso e todo o trabalho
quase impossível, resultando na reescrita de tinha que ser refeito a cada novo processador
várias centenas ou milhares de linhas de criado. Os computadores da época tinham
programa. pouca memória e os modelos usados por
Ritchie não eram capazes de implementar
No passado era possível a um desenvolvedor operações de ponto flutuante diretamente.
especializar-se nessa ou naquela arquitetura, Ritchie desenvolveu uma linguagem simples,
tornando-se cada vez mais experiente no uso fácil de ser aprendida, mas com recursos que
de um set de instruções e realizando todos seus permitem o desenvolvimento de programas
projetos com alguns poucos complexos, como sistemas operacionais, que
microcontroladores compatíveis. Hoje, porém, permite portabilidade de código sem prejudicar
a variedade de microcontroladores é muito as funcionalidades de baixo nível, gerando um
grande. Praticamente todos os fabricantes de código bastante “enxuto”, isto é, eficiente no
circuitos integrados digitais têm suas famílias uso da memória.
de microcontroladores. A concorrência de
preço entre esses fabricantes e a diversidade de Por ser uma linguagem estruturada, o C exige
configurações dos microcontroladores exige que o programador siga boas práticas de
que as empresas optem por usar diferentes programação, evitando assim erros que, em
arquiteturas em diferentes projetos, ou mesmo Assembly, poderiam passar despercebidos.
substituir componentes em produtos já
existentes. É necessário que o desenvolvedor A portabilidade de código fica garantida, pois
de sistemas microcontrolados seja capaz de se existe uma norma que rege a linguagem C.
adaptar aos diferentes modelos de memória e Todo compilador que segue o padrão ANSI
deve conseguir reconhecer o mesmo código
www.exsto.com.br 2
ANE0004