ces 41 compiladores n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
CES-41 COMPILADORES PowerPoint Presentation
Download Presentation
CES-41 COMPILADORES

Loading in 2 Seconds...

play fullscreen
1 / 28

CES-41 COMPILADORES - PowerPoint PPT Presentation


  • 109 Views
  • Uploaded on

CES-41 COMPILADORES. Prof. Fábio Carneiro Mokarzel 2014 http://www.comp.ita.br/~mokarzel. CES-41 COMPILADORES. Capítulo Zero Apresentação. Capítulo Zero - Apresentação. 0.1 – Professor e alunos 0.2 – Objetivos da disciplina 0.3 – Comentários sobre a disciplina

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

CES-41 COMPILADORES


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
ces 41 compiladores

CES-41 COMPILADORES

Prof. Fábio Carneiro Mokarzel

2014

http://www.comp.ita.br/~mokarzel

ces 41 compiladores1

CES-41 COMPILADORES

Capítulo Zero Apresentação

cap tulo zero apresenta o
Capítulo Zero - Apresentação

0.1 – Professor e alunos

0.2 – Objetivos da disciplina

0.3 – Comentários sobre a disciplina

0.4 – Programa da disciplina

0.5 – Metodologia e carga horária

0.6 – Critérios de avaliação

0.7 – Bibliografia

0 1 professor e alunos
0.1 - Professor e Alunos
  • Nome do Professor: Fábio Carneiro Mokarzel
  • Graduação: Engenharia Elétrica – UNIFEI – Itajubá, MG – 1973
  • Mestrado: Ciência da Computação – ITA – São José dos Campos, SP – 1984
  • Doutorado: Ciência da Computação – ITA – São José dos Campos, SP – 1995
0 1 professor e alunos1
0.1 - Professor e Alunos
  • Professor no ITA: desde 1979 – IEC
  • Área de Pesquisa: Compiladores para Processamento Paralelo
  • Sala: No 109 – Prédio da Computação do ITA
  • E-mail: mokarzel@ita.br, fabiomokarzel@gmail.com
  • Telefone no ITA: (12) 3947-5982 ou 3947-5899
  • Celular: (12) 9-9714-7538
0 2 objetivos da disciplina
0.2 – Objetivos da Disciplina

0.2.1 – Objetivo Geral

  • Estudo teórico e prático de técnicas para a construção de compiladores de linguagens de programação
slide7
0.2.2 – Objetivos específicos
  • Conhecimento do contexto onde se insere um compilador
  • Estudo da organizaçãode compiladores
  • Estudo de princípios, técnicas e ferramentas para a implementação de cada componente de um compilador
  • Construção de um compilador para uma linguagem de programação simplificada
0 3 coment rios sobre a disciplina
0.3 – Comentários sobre a Disciplina
  • O Engenheiro de Computação deve estar preparado para projetar novas linguagens de programação, bem como para disponibilizar linguagens conhecidas para novas máquinas
  • Compiladores e interpretadores dessas linguagens são importantes ferramentas para torná-las disponíveis
  • Na realidade, poucos especialistas em Computação executam tarefas de construir ou manter um compilador ou um interpretador de uma linguagem de programação
slide9
No entanto o estudo do processo de compilação é valioso:
  • Aprimora muito os conhecimentos sobre linguagens de programação
  • Ajuda o programador alcançar eficiência em seus programas
  • Forma uma boa ponte entre os conhecimentos de hardware e de software
slide10
E ainda:
  • Dá boas diretrizes para o projeto de novas linguagens, evitando construções difíceis de serem compiladas e geradoras de código ineficiente
  • Apresenta ao engenheiro de computação as ferramentas Lex e Yacc, importantes para o desenvolvimento de sistemas de software
  • Princípios sobre construção de compiladores são usados também em outras áreas da computação
slide11
Exemplos de utilidade em outras áreas:
  • Análise léxica faz reconhecimento de cadeias, também usado em:
    • Editores de texto, sistemas de recuperação de informações e reconhecimento de padrões
  • Gramáticas livres de contexto e definições orientadas pela sintaxe são usadas na implementação de pequenas linguagens tais como:
    • Formatadores de texto, sistemas de computação gráfica, linguagens para banco de dados, linguagens para simulação, etc.
slide12
Exemplos de utilidade em outras áreas:
  • Otimização de código é usada em validação de programas, transformação de programas desestruturados e paralelização de programas sequenciais
  • Análise sintática orienta a construção da árvore de controle de um programa, que é base para a otimização e paralelização de programas
slide13
Nos anos 50, a construção de um compilador era uma tarefa extremamente difícil
  • Ao longo do tempo, foram desenvolvidas:
    • Técnicas bem engenhosas
    • Linguagens bem organizadas
    • Ambientes de programação
    • Ferramentas automáticas
  • Hoje, um pequeno compilador é projetado em disciplinas de um ano
slide14
Um conjunto de técnicas básicas pode ser usado na construção de compiladores para várias linguagens e várias máquinas
  • Construção de compiladores abrange e integra conhecimentos de:
      • Linguagens de programação
      • Arquitetura de computadores
      • Teoria de autômatos
      • Estruturas de dados
      • Engenharia de software
0 4 programa da disciplina
0.4 – Programa da Disciplina

Cap. I - Introdução - 1 sem

Cap. II - Gramáticas e linguagens - 0.5 sem

Cap. III - Diagramas de transições - 2 sem

Cap. IV - Complementos de análise léxica - 0.5 sem

Cap. V - Análise sintática - 4 sem

Cap. VI - Análise semântica - 3 sem

Cap. VII - Código intermediário - 2 sem

Cap. VIII - Organização em tempo de execução - 1 sem

Cap. IX - Geração de código - 1 sem

Cap. X - Otimização de código - 1 sem

slide16
0.5 – Metodologia e Carga Horária
  • Pré-requisitos de CES-41:
    • CTC-34 Autômata e Linguagens Formais
    • CES-11 Algoritmos e Estruturas de Dados
  • Carga horária semanal: 3-0-2-5
  • Aulas teóricas: expositivas e em sala comum
  • Aulas de laboratório: em sala com microcomputadores; ferramentas Lex e Yacc
0 6 crit rios de avalia o
0.6 – Critérios de Avaliação

Os tipos de trabalhos a serem propostos são:

  • Séries de exercícios sobre a teoria da disciplina, sem necessidade de programação
    • As questões podem ser práticas ou até teóricas
  • Séries de exercícios envolvendo programação de algoritmos ou técnicas apresentadas
  • Laboratórios visando a implementação de um compilador, usando ferramentas automáticas
  • Não haverá provas bimestrais nem de Exame
slide18
Os objetivos dos laboratórios poderão ser a implementação de:
    • Analisador léxico
    • Analisador sintático
    • Analisador semântico
    • Gerador de código intermediário
    • Gerador de código objeto
    • Interpretador do código intermediário
slide19
A nota final da disciplina será uma média ponderada das notas dos trabalhos
    • Os pesos dos trabalhos dependem do esforço exigido e da importância do assunto abordado
  • Trabalhos individuais e em grupos:
    • As análises léxica e sintática são de caráter individual
    • Os outros laboratórios poderão ser feitos em grupos de no máximo dois alunos
    • As séries poderão ou não ser de caráter individual
0 7 bibliografia
0.7 – Bibliografia

0.7.1 – Bibliografia básica

  • A.V.Aho, M.S.Lam, R.Sethi e J.D.Ullman – Compiladores: Princípios, Técnicas e Ferramentas– 2a Edição – São Paulo – Pearson/Addison Wesley – 2008.

É a 2ª edição, traduzida para Português, do conhecido livro do dragão

0 7 bibliografia1
0.7 – Bibliografia

0.7.1 – Bibliografia básica

  • A.V.Aho, R.Sethi e J.D.Ullman – Compilers: Principles, Techniques and Tools– Reading – Addison Wesley – 1986.

É a 1ª edição do livro do dragão

0 7 bibliografia2
0.7 – Bibliografia

0.7.1 – Bibliografia básica

  • K.C.Louden – Compiladores: Princípios e Práticas –São Paulo – Thomson – 2004.
0 7 bibliografia3
0.7 – Bibliografia

0.7.1 – Bibliografia básica

  • J.P.Tremblay e P.G.Sorenson – TheTheory and PracticeofCompilerWriting –Singapore – McGraw Hill – 1989.
0 7 bibliografia4
0.7 – Bibliografia

0.7.1 – Bibliografia básica

  • Slides de CES-41 – Prof. Mokarzel, 2014
0 7 bibliografia5
0.7 – Bibliografia

0.7.2 – Bibliografia suplementar

  • A.I.Holub – Compiler Design in C– Englewood Cliffs – Prentice Hall – 1990.
0 7 bibliografia6
0.7 – Bibliografia

0.7.2 – Bibliografia suplementar

  • P.Rechenberg e H.Mössenböck – A Compiler Generator for Microcomputers – Englewood Cliffs – Prentice-Hall – 1989.
0 7 bibliografia7
0.7 – Bibliografia

0.7.2 – Bibliografia suplementar

  • I.Ricarte – Introdução à Compilação – Rio de Janeiro – Campus/Elsevier – 2008.
0 7 bibliografia8
0.7 – Bibliografia

0.7.2 – Bibliografia suplementar

  • J.R. Levine, T. Mason e D. Brown – Lex & Yacc– 2ndEdition – Sebastopol – O’Reilly & Associates – 1992.