Professional Documents
Culture Documents
Fundamentos
14/3/2005
Introduo
Uma Linguagem de Programao um vocabulrio e um conjunto de regras gramaticais usadas para escrever programas de computador. Esses programas instruem o computador a realizar determinadas tarefas especficas. Cada linguagem possui um conjunto nico de palavras-chave (palavras que ela reconhece) e uma sintaxe (regras) especfica para organizar as instrues (instrues mesmo) dos programas.
14/3/2005
14/3/2005
Linguagem de Mquina
a linguagem de mais baixo nvel de entendimento pelo ser humano e a nica, na verdade, entendida pelo processador (CPU). constituda inteiramente de nmeros, o que torna praticamente impossvel entend-la diretamente. Cada CPU tem seu conjunto nico de linguagem de mquina, definido pelo fabricante do chip. Uma instruo tpica em linguagem de mquina seria algo como: 0100 1111 1010 0110
14/3/2005 Prof. Dr. Paulo Srgio da Silva 4
Linguagem de Mquina
As instrues presentes na linguagem de mquina so as mesmas da linguagem do nvel mais acima (linguagem assembly). Os programas escritos nas linguagens de mais alto nvel so convertidos (compilados ou montados) para a linguagem de mquina especfica, para que possam ser executados pelo computador.
14/3/2005
Linguagem de Mquina
Um programa em linguagem de alto nvel que foi compilado para executar em determinada CPU precisa ser recompilado (e muitas vezes reescrito), para que possa ser executado em outra CPU que no tenha o mesmo conjunto de instrues. Essa linguagem tambm classificada como linguagem de primeira gerao
14/3/2005
Linguagem Assembly
a linguagem de nvel imediatamente acima da linguagem de mquina. Ela possui a mesma estrutura e conjunto de instrues que a linguagem de mquina, porm permite que o programador utilize nomes (chamados mnemnicos) e smbolos em lugar dos nmeros. A linguagem assembly tambm nica para cada tipo de CPU, de forma que um programa escrito em linguagem assembly para uma CPU poder no ser executado em outra CPU de uma famlia diferente.
14/3/2005 Prof. Dr. Paulo Srgio da Silva 7
Linguagem Assembly
Nos primrdios da programao todos os programas eram escritos nessa linguagem. Hoje, a linguagem assembly, utilizada quando a velocidade de execuo ou o tamanho do programa executvel gerado so essenciais. Atualmente a maioria dos programas escrita em linguagens de alto nvel, tal como C, Pascal , Delphi, Kylix, Visual Basic, etc. devido facilidade de criao e manuteno dos programas. Todos os programas escritos nessas linguagens so convertidos para a linguagem de mquina para serem executados pelo processador.
14/3/2005 Prof. Dr. Paulo Srgio da Silva 8
Linguagem Assembly
A converso da linguagem assembly para a linguagem de mquina se chama montagem, e feita por um programa chamado montador (ou assembler). Uma tpica instruo em assembly seria : ORG 100 LDAA # $10 END Essa linguagem tambm classificada como linguagem de segunda gerao, e, assim como a linguagem de mquina, considerada uma linguagem de baixo nvel.
14/3/2005 Prof. Dr. Paulo Srgio da Silva 9
Paradigmas de Programao
Paradigmas de programao refere-se s diferentes formas e estilos de se organizar a lgica de um programa de computador.
Os principais paradigmas so: Programao procedural (Imperativa) Programao Funcional Programao Orientada a Objetos Programao Lgica Programao Concorrente
14/3/2005
12
Programao Procedural
As linguagens procedurais so orientadas a aes; isto e, as instrues da programao so visualizadas como uma seqncia de aes. Por exemplo, comandos de atribuio, comparao, etc. Exemplos: Pascal e C Aplicaes:
Computao Cientfica Desenvolvimento de Aplicativos
14/3/2005
13
Programao Funcional
As linguagens funcionais se caracterizam pela presena de estruturas que permitem a recursividade (valor de uma expresso depende apenas dos valores de suas sub-expresses), coleta de lixo automtica e gerenciamento automtico das alocaes de valores. Exemplos: Lisp, Haskell, Sloth e Scheme Aplicaes:
Inteligncia Artificial Sistemas Especialistas
14/3/2005
14
14/3/2005
15
Programao Lgica
As linguagens lgicas lidam com relaes que constitudas por fatos e regras. A partir desses elementos, possvel deduzir as respostas de um determinado sistema. Exemplos: Prolog Aplicaes:
Processamento em linguagem natural Sistemas especialistas
14/3/2005
16
Programao Concorrente
As linguagens concorrentes so aquelas cujas operaes podem ser executadas em paralelo. Exemplos: ADA Aplicaes:
Sistemas de tempo real
14/3/2005
17
14/3/2005
18
Interpretadores e Compiladores
Interpretadores e Compiladores so programas que operam sobre programas escritos pelo programador (programa fonte). Interpretador: programa que l o programa fonte e executa as suas instrues linha aps linha.
Dessa forma, o interpretador deve sempre estar presente e ativo durante a execuo de um programa; No h gerao de cdigo-objeto (executvel)
Compilador: programa que l todo o programa fonte e o converte para um cdigo-objeto, que uma traduo do cdigo fonte em uma forma que pode ser diretamente executada pelo processador.
H gerao de cdigo-objeto Aps a gerao do cdigo no h mais a necessidade do compilador; Desvantagem: tempo de compilao do programa
14/3/2005 Prof. Dr. Paulo Srgio da Silva 19
14/3/2005
21
Portabilidade de Programas
Um programa que pode ser transferido de um computador para outro, com relativamente pouco esforo dito ser portvel. Algumas das dificuldades para a portabilidade de programas so:
O comprimento das palavras variam de mquina para mquina; O nmero e tipos de dispositivos de E/S diferem de mquina para mquina; Algumas instrues podem depender do sistema operacional; O programa pode ser grande demais para a memria da nova mquina; Os conjuntos de caracteres podem ser incompatveis (um certo padro de bits pode representar um caractere imprimvel em um computador e ser ilegal ou uma marca de fim de registro em outro)
14/3/2005
22