Ybadoo - Soluções em Software Livre
Tutoriais
Compiladores

(Aho, 2008) Que vantagens existem em um sistema de processamento de linguagem no qual o compilador produz linguagem simbólica em vez de linguagem de máquina?

 

Uma linguagem de máquina é constituída inteiramente por códigos numéricos, representados por números hexadecimais ou binários, tornando as instruções praticamente impossíveis de serem compreendidas diretamente por humanos. Uma linguagem simbólica é constituída por mnemônicos, tornando as instruções mais compreensíveis por humanos. Considerando, por exemplo, o processador hipotético proposto por Ricarte (2008), a instrução em linguagem simbólica LOAD 5, R1 é mais compreensível do que a instrução em linguagem de máquina 00010101, apesar de ambas as instruções transferirem o conteúdo da posição de memória 5 para o registrador R1.

A linguagem de máquina é a linguagem utilizada pelo processador para efetuar diretamente o processamento, estando diretamente relacionada as características do processador. A linguagem simbólica, por sua vez, não é executada diretamente pelo processador, sendo portanto independente do processador, de modo que a linguagem simbólica possa ser traduzida para várias linguagens de máquina, possibilitando que os programas desenvolvidos possam ser executados em diversos processadores com características diferentes, denominado portabilidade. Esse é, por exemplo, o mecanismo utilizado pela linguagem de programação Java, que ao ser compilado não produz linguagem de máquina, mas uma linguagem simbólica chamada de bytecode, que é a linguagem reconhecida pela Máquina Virtual Java (JVM).

Aho, Alfred V. (2008). Compiladores: princípios, técnicas e ferramentas. 2ª edição. São Paulo: Pearson Addison-Wesley. 634 páginas.