Introdução às Linguagens de Programação

Propaganda
Introdução às Linguagens de
Programação
Histórico de Linguagens de Programação
• O computador não faz nada sozinho
• Precisamos informar, de forma clara, como ele deve executar as tarefas
• Ou seja, o computador precisa ser programado
Histórico de Linguagens de Programação
Histórico de Linguagens de Programação
• A linguagem nativa dos computadores (no nível de máquina) é muito
limitada
• Todas as construções são representadas por 0’s e 1’s
• Cada computador (CPU) só entende um conjunto relativamente pequeno de
instruções (seu conjunto de instruções)
Histórico de Linguagens de Programação
• Exemplos de instruções de CPU
• “mova este número de uma posição para outra em memória”
• “some esses dois números inteiros”
Histórico de Linguagens de Programação
• Programas na linguagem de máquina são ditos programas em
linguagem de máquina
• Esse tipo de programação é considerada programação de baixo nível
• São programas difíceis de escrever, ler e modificar (para os humanos)
Linguagem Assembly
• Também conhecida como linguagem de montagem
• Melhoramento sobre a linguagem de máquina
• Usa mnemônicos para representar as instruções de linguagem de
máquina
• “10011011” (linguagem de maquina) pode virar apenas “ADD” (em assembly)
Linguagem Assembly
• Também permite que sejam atribuídos nomes a variáveis (ou seja,
posições de memória do computador)
• Por exemplo, a posição “00111010” pode ser definida pelo programador (e ao
seu critério) como simplesmente “X”
Linguagem Assembly
• No entanto, o que o computador entende é linguagem de máquina e
não assembly
• Programas escritos em assembly precisam então de um programa especial,
chamado “assembler” (ou montador)
• Traduz de assembly para a linguagem de máquina
• Um para cada tipo de CPU
Linguagem Assembly
• Apesar de ter sido um melhoramento para o programador, assembly
ainda é difícil
• Ainda é considerada linguagem de baixo nível
• Entre meados da década de 40 até meados da década de 50, todos
programas de computador eram de baixo nível
Linguagem Assembly
Histórico de Linguagens de Programação
• Uma facilidade maior para os programadores foi a introdução das
linguagens de alto nível
• Programas passaram a ser escritos em linguagem mais próxima da linguagem
humana
• Mas essa linguagem é específica para ser usada com os computadores
Histórico de Linguagens de Programação
Histórico de Linguagens de Programação
• O programador pode usar uma linguagem mais simples para passar
tarefas para o computador
• As instruções podem ser especificadas sem se preocupar com os detalhes do
computador que vai executar
Compiladores e Interpretadores
• Todo programa escrito em alguma linguagem de programação precisa
de uma tradução para a linguagem de máquina do computador que
vai executar
• Como o assembler
• Tipo mais simples de tradutor que apenas substitui as instruções para a linguagem de
máquina
Compiladores e Interpretadores
• Linguagens de alto nível requerem tradutores mais complicados
• Usualmente, uma única instrução em linguagem de alto nível pode
corresponder a muitas instruções em linguagem de máquina
• Existem dois tipos: compiladores e interpretadores
Compiladores
• Traduz programas escritos em linguagem de alto nível (programas fonte)
em programas (programas objeto) em uma linguagem de baixo nível
(linguagem de máquina ou assembly)
• Depende da linguagem para qual foi projetado e também para qual
computador deve ser feita a tradução
• Existe compilador (da linguagem) X (ex. Pascal) para o computador Y (ex. Mac)
Compiladores
• Usualmente, um programa escrito em alto nível possui várias partes
que são compiladas separadamente
• Para unir utiliza-se um programa chamado link editor (editor de ligações).
• Une todas as partes do programa em um único programa integrado
Interpretadores
• Não produz um programa objeto
• Simula um computador cuja linguagem de máquina seria aquela sendo traduzida
• Cada instrução do programa (em alto nível) é traduzida exatamente antes de ser
executada, de acordo com o fluxo do programa
• Requerem um interpretador para o programa funcionar
Tipos de Linguagens
• As linguagens de alto nível oferecem vantagens aos programadores, que
podem ser analisadas segundo as algumas propriedades:
• Portabilidade
• Legibilidade
• Manutenibilidade
• Eficiência
Portabilidade
• O programa fonte pode ser transportado para qualquer computador
que tenha o tradutor apropriado
• Já os programas escritos em linguagens de baixo nível são específicos para
cada tipo de computador
• Ou seja, para transportar para outro computador, precisaria ser reescrito
Legibilidade
• A linguagem é próxima à humana
• Fáceis de serem lidos e escritos
• No entanto, depende muito do programador
Manutenibilidade
• A facilidade do programa ser mantido (modificado)
• Relacionada à legibilidade
• Quanto mais fácil de ser lido (e entendido), mais fácil de ser modificado
Eficiência
• É medida pelo espaço de memória ocupado e pela rapidez de execução
• Um programa eficiente ocupa pouco espaço e produz as saídas rapidamente
• Diferentes sequencias de instruções podem produzir o mesmo resultado
• Algumas são mais eficientes que outras
• O programador deve se preocupar em construir o programa da melhor forma
Tipos de Linguagens
• Linguagens de caráter específico
• Construídas visando uma área de aplicação
• Exemplo: COBOL para área comercial
• Dificilmente pode ser utilizada em outra área
• Linguagens de caráter geral
• Podem escrever programas em qualquer área
• Exemplo: Pascal, C, etc
Paradigmas de Linguagens de Programação
• Indica a filosofia ou conceitos teóricos do desenvolvimento da linguagem
• Paradigma Funcional
• Paradigma Lógico
• Paradigma orientado à objetos
• Paradigma modular
Download