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