ALP Algoritmos e Programação Iniciação aos computadores. Linguagens para Computadores. Compiladores, Interpretadores. Ambientes de Programação 1
Linguagens para Computadores. Linguagem binária: Dispositivos eletrônicos que compõe o computador distinguem com precisão apenas 2 sinais elétricos, caracterizados pela passagem de corrente elétrica por esses dispositivos. Assim, dados e operações são representados em linguagem binária, ou seja, em um alfabeto que tem apenas dois símbolos: geralmente 1 e 0. Cada um desses símbolos é chamado de bit. Uma sequência de bits pode representar dados ou instruções que a CPU pode executar. Exemplo: 10101101010000 Pode constituir um código usado para representar a operação (instrução) de somar dois números em um determinada arquitetura de hardware. 2
Linguagens para Computadores. Linguagem de Máquina: A linguagem constituída pelas instruções que podem ser diretamente executadas pela CPU (somar, carregar valores, comparar valores, movimentar valores na memória, desviar de uma instrução para a outra), representadas na forma de sequências de bits, é chamada de linguagem de máquina. Assim, a sequência de bits abaixo pode representar a instrução que a CPU 8086 executa para somar 2 números inteiros. Ela representará então a linguagem de máquina para a soma. 10101101010000 Inicialmente os programadores de computador só dispunham da linguagem de máquina para desenvolver seus programas. Continua 3
Linguagens para Computadores. Linguagem de Máquina: Para facilitar, os programadores passaram a usar nomes (apelidos) para as instruções e dados que a CPU podia executar: Ex:. MOV R1, x. ADD R1, R2. JNZ L O programa era então manualmente traduzido para linguagem de máquina e depois carregado na memória para ser executado. A evolução seguinte foi passar para o próprio computador a tarefa de montar (transformar) aqueles apelidos em linguagem de máquina. O programa responsável por isso é chamado montador. 4
Linguagens para Computadores. Linguagens de Médio e Alto Nível Para facilitar a tarefa de programação foram desenvolvidas linguagens que oferecem um conjunto mais rico de operações e construções sintáticas adequadas para expressar, de maneira mais natural, algoritmos usados na solução de problemas. Assim, as linguagem de máquina e de montagem são chamadas de linguagens de baixo nível. Um exemplo de linguagem de montagem é o assembly, portanto de baixo nível. A linguagem C é de médio nível. Para que um programa escrito em linguagem de alto nível possa ser executado pelo computador, ele precisa ser primeiro traduzido para um programa equivalente em linguagem de máquina. Esse processo de tradução é chamado compilação e o programa que faz isso de compilador 5
ALP Algoritmos e Programação Iniciação aos computadores. Linguagens para Computadores. Compiladores, Interpretadores. Ambientes de Programação 6
Compiladores, Interpretadores. Compilador É um programa tradutor, de programas escritos em uma determinada linguagem, chamada de linguagem fonte, para um programa equivalente em outra linguagem, chamada linguagem objeto. A junção do programa objeto (no processo de compilação) com as bibliotecas de linkagem, gera o programa executável pelo sistema operacional. Esse último processo é chamado linkedição. O compilador verifica o texto do programa fonte, para ver se ele está sintaticamente correto, isto é, em conformidade com as regras da gramática da linguagem. Caso haja erro, compilador emite mensagens que auxiliam o programador na identificação e correção dos erros existentes. 7
Compiladores, Interpretadores. Interpretador É um programa que interpreta diretamente as frases do programa fonte diretamente. Ou seja, simula a execução dos comandos desse programa sobre um conjunto de dados, fornecidos como entrada para o interpretador. A interpretação é mais lenta que a execução de um programa compilado. Entretanto, é mais fácil desenvolver um interpretador que um compilador para um determinada linguagem de alto nível. 8
ALP Algoritmos e Programação Iniciação aos computadores. Linguagens para Computadores. Compiladores, Interpretadores. Ambientes de Programação 9
Ambiente de Programação. Editor de Texto: Permite editar o programa fonte, eventualmente ressaltando as palavras reservadas da linguagem de programação.. Depurador: É um programa que oferece funções específicas para o acompanhamento da execução de um programa, com o objetivo de auxiliar o programador na detecção e identificação da origem dos erros que possam existir em um programa. Editores de texto, compiladores, interpretadores e depuradores podem ser programas independentes. Em um ambiente integrado de desenvolvimento (IDE) as tarefas de edição, compilação, interpretação e depuração são oferecidas como opções disponíveis em um mesmo programa. Ex. de IDE: Dev-C++, Eclipse, etc... 10