domingo, 29 de junho de 2008

Linguagens de programação II

Existem diversas linguagens de programação, meu objectivo é dar algumas noções básicas sobre as peculiaridades e utilidade de cada uma: 
Assembly

O Assembly foi provavelmente a primeira linguagem de programação da história, surgida na década de 50, época em que os computadores ainda usavam válvulas. A ideia do assembly é usar um comando em substituição a cada instrução de máquina.
No assembly, cada uma destas instruções, equivale a uma instrução do processador. Ao invés de usar instruções como 10101011 você pode usar outras bem mais fáceis de entender e de memorizar, como add, div, mul, and, or, not, etc. Você também pode criar variáveis, que são pequenos espaços na memória RAM reservados para guardar algum tipo de dado, que o programa precisará mais tarde. Você pode usar aquelas instruções que citei para lidar com elas. Por exemplo, a instrução "add" faz com que o processador some duas variáveis; "add x, y" por exemplo, soma os valores de x e y.
Apesar de ser exaustivamente trabalhoso, você pode perfeitamente desenvolver pequenos programas em assembly, para isso só vai precisar de um compilador e bastante paciência para aprender. Você pode baixar um gratuito em http://www.web-sites.co.uk/nasm/ nesta mesma página você vai encontrar alguns manuais que podem ajudar bastante.
O compilador transforma o código escrito em assembly em linguagem de máquina, que finalmente poderá ser entendida pelo processador.
Existem também os decompiladores, que fazem o trabalho inverso, de transformar um programa já compilado, em um código em linguagem assembly. Este recurso é chamado de engenharia reversa. É assim que conseguem crackear programas, quebrar códigos de protecção (como o do DVD), etc. Claro que para isso, é preciso alguém que conheça muito de assembly e que tenha disposição para ficar estudando o código até encontrar o que procura.
Por causa desta característica de permitir trabalhar directamente com as instruções do processador, o assembly é chamado de linguagem de baixo nível. Existem também linguagens de alto nível, como C++ ou Pascal, onde é possível usar várias funções já prontas ou mesmo linguagens visuais, como o Visual Basic ou o Delphi, que são ainda mais fáceis.
Como o compilador utiliza instruções específicas para o processador da máquina, é preciso desenvolver uma versão diferente da linguagem para cada sistema onde se desejar usa-la.

1 comentário:

Vítor Galvão Rodrigues disse...

Adorei seu blog, sou brasileiro e estou aprendendo sobre Arquiteturas de computadores e linguagens de programação para o curso de Engenharia. Muito obrigado pela leitura, boa sorte e Live Long and Prosper...