Escolar Documentos
Profissional Documentos
Cultura Documentos
Compvs Interp
Compvs Interp
I.
Execuo de Programas
Uma linguagem de programao um conjunto de ferramentas, regras de sintaxe e smbolos ou cdigos que nos permitem escrever programas de computador. A primeira e mais primitiva linguagem de computador a prpria linguagem mquina (0s e 1s). Um programa era difcil, longo e principalmente caro de o construir.
I.
Execuo de Programas
Linguagem de Montagem
A resoluo do problema passou pela criao de uma linguagem em que os cdigos numricos foram substitudos por mnemnicos. O nome dessa linguagem ASSEMBLY LANGUAGE.
Ento ser necessrio um outro programa que leia o programa escrito nessa linguagem alternativa e o traduza para a linguagem nativa do computador!!!
O processo de traduo da linguagem de montagem para a linguagem de mquina realizada por um programa chamado ASSEMBLER.
I.
Execuo de Programas
Linguagem Assembler
;****************************************************** ;*** INTERFACE ROUTINES *** ;****************************************************** ; Read_Char PROC ;read char from input buffer ; ;Entry: CL = port number ; ;Exit: AL = char (z set if none) ; push cx ;preserve registers push bx ; cmp cl,0 ;only port 0 allowed jz rc_1 ; _Int_Error 03301h ;invalid port number ; rc_1: mov al,Rx_InPtr sub al,Rx_OutPtr ;inptr - outptr = num. chars jz rc_zex ;if zero exit
I.
Execuo de Programas
Linguagem de Programao
Estas novas linguagens foram afastando cada vez mais o programador do nvel de mquina.
I.
Traduo
Execuo de Programas
Os programas em linguagem de alto nvel tambm precisam de ser traduzidos para linguagem de mquina.
Traduo
Cdigo Fonte Cdigo Objecto
I.
Montagem
Execuo de Programas
O processo de montagem traduz um programa escrito numa LP num programa equivalente em linguagem maquina.
Processo de Montagem
Cdigo Fonte
Traduo
Linguagem de Mquina
II . Compiladores
O que um compilador
Um compilador tem a finalidade de converter uma linguagem Linguagem Fonte de fcil escrita e leitura para os programadores, numa linguagem Linguagem alvo ou objecto que possa ser executada pelas mquinas.
O cdigo executvel gerado pelo compilador dependente do sistema operacional e da linguagem de mquina para o qual o cdigo fonte foi traduzido. A enorme variedade de compiladores existentes bem vinda, visto que existem milhares de linguagens fonte, e as linguagens alvo so tambm muito variadas.
II . Compiladores
O que um compilador
Os compiladores so por vezes classificados como uni-passo, multi-passo, optimizador, ou corrector de erros, dependendo da forma como foram construdos ou da funcionalidade para que so pretendidos.
Comearam a aparecer no incio da dcada de 50. Muito do trabalho inicial dos compiladores resumia-se a traduo de frmulas aritmticas para cdigo mquina.
II . Compiladores
O que um compilador
O primeiro compilador de FORTRAN, por exemplo, demorou 18 trabalhosos meses para implementar.
Boas linguagens de implementao, ambientes de programao, e ferramentas de software tm tambm vindo a ser desenvolvidas. Com estes avanos, um bom compilador pode ser implementado at por alunos!!! num projecto de um semestre de um curso de desenho de compiladores.
II . Compiladores
O que um compilador
II . Compiladores
Modelo Anlise- sntese da compilao
II . Compiladores
Modelo Anlise- sntese da compilao
Anlise
Anlise Lxica
Anlise Sintctica
Anlise Semntica
II . Compiladores
Modelo Anlise- sntese da compilao
Sntese
Gerao do Cdigo
Optimizao do Cdigo
II . Compiladores
Contexto de um compilador
Muitos outros programas podem ser necessrios para criar um programa alvo executvel.
II . Compiladores
Primos de um compilador
Pr-processadores: produzem o input para os compiladores; Montadores: Alguns compiladores produzem cdigo Assembler que passado para um montador para posterior processamento. Alguns compiladores produzem o trabalho dos montadores;
II . Compiladores
Primos de um compilador
Montagens bi-passo:
I Passo - todos os identificadores que denotam localizaes de armazenamento, so encontrados e armazenados numa tabela de smbolos II Passo - traduz cada cdigo de operao para sequncias de bits representando essa operao na linguagem mquina
Carregar consiste em tomar o restabelecimento do cdigo mquina, alterando os endereos restabelecidos e colocando as instrues alteradas e dados na memria nas localizaes convenientes. O editor de unio permite-nos fazer um nico programa dos vrios ficheiros de cdigo de mquina relocalizvel;
II . Compiladores
Primos de um compilador
Bibliotecas:
O desenvolvimento de um programa certamente utilizar diversas operaes que so comuns a muitos outros programas. Um programa de alto nvel possivelmente conter diversas chamadas de biblioteca. Essas funes no devem ser confundidas com as instrues da linguagem na realidade, so pequenos programas externos que so chamados atravs de instrues especiais chamado biblioteca.
II . Compiladores
Anlise do programa fonte
Em que a cadeia de caracteres que forma a estrutura do programa fonte lido da esquerda para a direita e agrupado em tokens que so sequncias de caracteres tendo o sentido colectivo.
A sua funo bsica o reconhecimento e a classificao das estruturas elementares ou classes sintcticas das linguagens.
II . Compiladores
Anlise do programa fonte
Na qual caracteres ou tokens so agrupados hierarquicamente em coleces aninhadas com sentido colectivo. Verifica se a estrutura geral do texto ou programa fonte est correcta.
II . Compiladores
Anlise do programa fonte
Anlise semntica:
Na qual so executadas certas paragens para assegurar que os componentes de um programa so juntamente ajustados em sentido absoluto. Verifica se o programa fonte tem erros semnticos e rene a informao dos tipos para a fase de gerador de cdigo subsequente. Uma componente importante da anlise semntica a verificao do tipo.
II . Compiladores
Fases de um compilador
II . Compiladores
Fases de um compilador
II . Compiladores
Fases de um compilador
Tabela de cdigos:
uma estrutura criada pela anlise semntica de um compilador, que mantm registadas as linhas cdigo intermedirio geradas por algum tempo. Em geral as linhas de cdigo geradas permanecem nesta tabela enquanto no esto totalmente preenchidas.
II . Compiladores
Fases de um compilador
As fases de anlise sintctica e semntica normalmente tratam de uma grande fraco dos erros detectveis pelo compilador.
II . Compiladores
Fases de um compilador
II . Compiladores
Fases de um compilador
Optimizao do cdigo:
Esta fase tenta melhorar o cdigo intermdio, de forma a que resulte num cdigo de mquina mais rpido a executar.
Gerao do cdigo:
A fase final do compilador a gerao de cdigo alvo, consistindo normalmente no restabelecimento no cdigo mquina. Neste ponto, aps o programa fonte ter sido analisado e aprovado, segundo a sua sintaxe, e livre de erros semnticos, o compilador tem condies de escrever um programa equivalente na linguagem alvo.
II . Compiladores
Factores condicionantes da organizao fsica dos compiladores
Dividir o processo de compilao em diversas fases "lgicas" permite um melhor entendimento do processo como um todo e leva a uma implementao mais estruturada. A eficincia e os recursos disponveis na mquina hospedeira do compilador influenciam de maneira decisiva um item importantssimo na implementao de um compilador: o nmero de passos de compilao, para poder optimizar o tempo de compilao.
II . Compiladores
Os compiladores e os autmatos
III . Interpretadores
Como funcionam os interpretadores
III . Interpretadores
Os Exemplos de interpretadores
IV . Comparao
Vantagens
Execuo mais rpida
Desvantagens
Vrias etapas de traduo Programao final maior, necessitando mais memria para a sua execuo Processo de correco de erros e depurao mais demorado Execuo do programa mais lenta Estruturas de dados demasiado simples Necessrio fornecer o programa fonte ao utilizador
Compiladores
Permite estruturas de programao mais completas Permite a optimizao do cdigo fonte Depurao do programa mais simples
Interpretadores
V . Exemplos de Linguagens
Compiladas e Interpretadas
Java;
Basic .
Fim Da Apresentao