Capítulo 1 Linguagens e processadores
|
|
|
- Tomás Barata Leão
- 8 Há anos
- Visualizações:
Transcrição
1 1. Linguagens Capítulo 1 Linguagens e processadores 2. Processamento de Linguagens: DI-UBI 2017/2018 1/28
2 Linguagens Linguagens Processamento de Linguagens: DI-UBI 2017/2018 2/28
3 Linguagens 1. Definição Definição: Uma linguagem L sobre um alfabeto (vocabulário) V é um conjunto de frases, em que uma frase é uma sequência de símbolos de V (vocábulos ou palavras). Uma linguagem apenas admite combinações de vocábulos que são frases válidas. A definição de uma linguagem é feita em dois passos: 1. Estabelecer qual o alfabeto a usar; 2. Indicar as regras que restringem, das combinações possíveis, aquelas que de facto são frases corretas. As regras referidas no passo 2 dividem-se em: - regras sintáticas: definem as formas corretas; - regras semânticas: definem as condições para que as frases sintaticamente corretas possam ser interpretadas. Processamento de Linguagens: DI-UBI 2017/2018 3/28
4 Linguagens As regras sintáticas preocupam-se com a estrutura das frases. As regras semânticas trabalham ao nível dos valores intrínsecos dos símbolos e preocupam-se com o significado das frases (o seu conteúdo semântico). O significado é a informação contida numa frase e é aquilo que realmente interessa conhecer para que a comunicação entre dois agentes tenha algum efeito. Processamento de Linguagens: DI-UBI 2017/2018 4/28
5 Linguagens 2. Linguagens naturais versus linguagens artificiais Linguagens naturais (utilizadas para as pessoas comunicarem): - frases pertencem à linguagem por razões de facto (usam no quotidiana); - regras surgem posteriormente para - sistematizar e ensinar no futuro a linguagem, e - organizar/estruturar as frases; - existe ambiguidade. Linguagens artificiais (suportam a comunicação Homem/Máquina) - só começam a ser usadas após o vocabulário ser escolhido e as regras sintáticas e semânticas serem estabelecidas; - as regras definidas são pensadas para garantir a não-ambiguidade. Processamento de Linguagens: DI-UBI 2017/2018 5/28
6 Linguagens 3. Como se especifica uma linguagem As linguagens artificiais têm de ter a sua sintaxe e semântica rigorosamente definidas à custa de regras apropriadas. As regras devem ser escritas de forma sucinta e objetiva, para garantir a sua interpretação - com facilidade e - sem ambiguidade, pelos agentes presentes na comunicação (Emissor e Recetor). A gramática é aceite universalmente como notação formal para definir linguagens - ensinando como se escrevem (produzem) as frases da linguagem (gerador); - determinando como se podem analisar essas frases (reconhecedor). Processamento de Linguagens: DI-UBI 2017/2018 6/28
7 Processamento de Linguagens: DI-UBI 2017/2018 7/28
8 1. Definição Definição: Seja L(G) a linguagem gerada pela gramática G. Um processador para essa linguagem P L(G), é um programa que, tendo conhecimento da gramática G: - lê um texto (sequência de caracteres); - verifica se esse texto é uma frase válida de L(G); - executa uma ação em função do significado da frase reconhecida. Todos estes programas são caracterizados por dois grandes módulos: - análise, faz o reconhecimento do significado do texto fonte; - síntese, reage ao significado identificado, produzindo um determinado resultado. Processamento de Linguagens: DI-UBI 2017/2018 8/28
9 Exemplos de processadores de linguagens: - compiladores: traduzem linguagens programação alto nível para código máquina; - assemblers: traduzem linguagens programação baixo nível para código máquina; - interpretadores: executam os programas imediatamente a seguir ao seu reconhecimento (realizam ações); - tradutores em geral: transformam textos escritos numa linguagem qualquer para outra linguagem qualquer; - carregadores: reconhecem descrições de dados e carregam essa informação para Base de Dados ou para Estruturas de Dados em memória central; - pesquisadores: reconhecem questões ( query ) e pesquisam em Base de Dados para mostrarem as respostas encontradas; - processadores de documentos: usados para diversos tipos de manipulação de documentos como, por ex., formatação (LATEX). Processamento de Linguagens: DI-UBI 2017/2018 9/28
10 Em termos cronológicos, os primeiros processadores de linguagens foram os - assemblers, - compiladores e - interpretadores. Processamento de Linguagens: DI-UBI 2017/ /28
11 2. Tarefas O processamento divide-se em duas partes: - análise (reconhecimento) e, - síntese (reação). Processamento de Linguagens: DI-UBI 2017/ /28
12 A análise é sempre realizada da mesma forma (qualquer que seja o processador da linguagem) e costuma subdividir-se nas três tarefas seguintes: - análise léxica: - leitura sequencial dos caracteres do texto fonte, - separação em palavras e - reconhecimento dos símbolos terminais representados por cada palavra - análise sintática: - agrupar os símbolos terminais e - verificar se formam uma frase sintaticamente correta (composta segundo as regras sintáticas da linguagem) - análise semântica: - verificar se as regras semânticas da linguagem são satisfeitas e - calcular os valores associados aos símbolos, de modo a poder conhecer-se o significado completo da frase. Processamento de Linguagens: DI-UBI 2017/ /28
13 A síntese não é habitual dividir-se em tarefas, para não ter de se pormenorizar em que consiste a ação de transformação e o significado. Módulos associados às fases de análise e de síntese têm de comunicar entre si - Analisador léxico passa ao analisador sintático os símbolos terminais que reconheceu no texto fonte - Analisador sintático envia ao analisador semântico uma representação interna da forma (estrutura sintática) da frase (usando uma árvore de derivação) - Analisador semântico passa ao transformador (reação) uma árvore de sintaxe decorada que representa o significado da frase Processamento de Linguagens: DI-UBI 2017/ /28
14 3. Estratégias de processamento Para a fase de síntese/reação (transformação da frase de entrada no resultado final), existem duas grandes estratégias que podem ser usadas: - Tradução Orientada pela Sintaxe - Tradução Orientada pela Semântica Processamento de Linguagens: DI-UBI 2017/ /28
15 Tradução Orientada pela Sintaxe: - a mais antiga e a mais usada - todo o processamento é controlado pelo analisador sintático - o analisador semântico vai pedindo o próximo símbolo do texto fonte e, à medida que vai progredindo no reconhecimento, vai fazendo, de forma intercalada, a análise semântica e a transformação - não há uma separação nítida entre todas as tarefas e nunca se chega a construir integralmente a árvore de sintaxe decorada, nem tão pouco a árvore de derivação - formalismo de especificação usado é a gramática tradutora - é mais simples de especificar e menos exigente em termos de requisitos de hardware e de software. Processamento de Linguagens: DI-UBI 2017/ /28
16 Tradução Orientada pela Semântica: - tem vindo a ganhar adeptos, à medida que os recursos-máquina aumentam e o seu preço baixa, tendo atualmente uma grande importância - todas as tarefas referidas são executadas separadamente, não se distinguindo nenhuma em relação às outras - a árvore de derivação é construída explicitamente para todas as restantes etapas trabalharem sobre a árvore de sintaxe decorada - formalismo de especificação usado é a gramática de atributos - corresponde a um maior rigor na descrição formal do processador a desenvolver e trás vantagens do ponto de vista da programação. Processamento de Linguagens: DI-UBI 2017/ /28
17 4. Compiladores Definição: Um compilador é um processador de linguagens construído para reconhecer programas, escritos em linguagens de programação de alto nível, e traduzi-los para código binário (máquina). Texto fonte Compilador Texto alvo Mensagens O compilador visto pelo utilizador Processamento de Linguagens: DI-UBI 2017/ /28
18 Definição: Um transcompilador ( cross-compiler ) é um processador que aceita um texto numa linguagem de alto nível e produz um texto noutra linguagem de alto nível. Os compiladores introduzem problemas específicos na análise semântica e na tradução que, neste caso, tem o nome de geração de código. Um compilador é especifico de um determinado computador, pois produz código máquina que varia entre marcas e entre modelos. Processamento de Linguagens: DI-UBI 2017/ /28
19 Pelo facto de - existir desnível entre - a complexa estrutura da linguagem fonte e - a enorme simplicidade da linguagem máquina (o que implica grande dificuldade na definição dos esquemas de tradução) - os esquemas de tradução serem dependentes do computador escolhido como objeto da tradução, leva à criação de uma representação intermédia que deve - manter a mesma semântica do programa fonte e - permitir algumas otimizações. A linguagem escolhida para código intermédio constitui uma representação do código final ¾ não engloba detalhes (como a gestão de registos e de memória) da máquina onde será executado o código final Processamento de Linguagens: DI-UBI 2017/ /28
20 Com a introdução duma linguagem intermédia, a tarefa de geração de código é dividida em duas sub-tarefas: - geração de código intermédio o significado da frase de entrada é reescrito na linguagem intermédia - geração de código final responsável pela tradução do código intermédio para código máquina Processamento de Linguagens: DI-UBI 2017/ /28
21 A implementação de um compilador requer o desenvolvimento de outros módulos próprios e muito importantes para o sucesso do programa final, como sejam: - para fazer o tratamento dos identificadores recolhe toda a informação associada a cada identificador que surge no programa fonte - para fazer o tratamento de erros depois de detetado um erro, encarrega-se de o reportar ao programador e assegurar a sua correção/recuperação - para fazer a otimização do texto fonte e do texto final (objeto) gerado conduzem à produção dum código máquina bastante eficiente em termos de tamanho, de rapidez de execução e de requisitos de memória Processamento de Linguagens: DI-UBI 2017/ /28
22 A otimização é - uma etapa complementar à geração de código (intermédio e final), - atua frequentemente em simultâneo com esta - tem por objetivo a produção de programas mais eficientes, mas mantendo sempre a correção do código otimizado A otimização do código pode ser classificada segundo a área de código a otimizar: - Local sendo cada instrução observada individualmente - Bloco sendo observada uma sequência de instruções denominada bloco básico - Global sendo observada uma janela do programa Processamento de Linguagens: DI-UBI 2017/ /28
23 Programa fonte Análise léxica Análise sintática Análise semântica Tabela de símbolos Geração de código intermédio Geração de código Otimização de código Programa alvo Etapas de um compilador. Processamento de Linguagens: DI-UBI 2017/ /28
24 5. Assemblers Os assemblers são funcionalmente muito parecidos com os compiladores, na medida em que traduzem um programa fonte para código máquina. A diferença reside no facto de que o texto de entrada, nos assemblers, não é escrito numa linguagem de alto nível, mas sim numa linguagem de mnemónicas estruturalmente tão simples quanto um programa em linguagem máquina. Por isso, não só o reconhecimento das frases se torna muito fácil, como também os esquemas de tradução são simples e intuitivos, e o processo de tradução muito direto Na verdade, o assembler pouco difere do módulo de geração de código final igual ao dos compiladores. Processamento de Linguagens: DI-UBI 2017/ /28
25 6. Interpretadores Estes processadores não geram um texto de saída, mas sim executam as instruções do programa fonte logo que o reconhecem. A execução é feita sobre a representação intermédia de código, tipicamente numa notação em árvore. O uso de interpretadores é muito conhecido pelos programadores das linguagens Basic, Lisp e Prolog (os exemplos mais vulgares desta técnica de processamento). As vantagens dos interpretadores são: - fácil de implementar, - assegura maior rapidez no ciclo edição/compilação/execução, - permitem testar/alterar programas à medida que são executados. Processamento de Linguagens: DI-UBI 2017/ /28
26 As desvantagens são: - acesso limitado a rotinas, - inviáveis em projetos de larga escala. O interpretador - não tem de se preocupar com questões de otimização; - geralmente processa linguagens de programação menos ricas estruturalmente do que o compilador. Texto fonte Interpretador Saída Dados Arquitetura de um interpretador Processamento de Linguagens: DI-UBI 2017/ /28
27 7. Tratamento de erros A capacidade para tratar os erros é de enorme importância para a sua aceitação, pelo utilizador final, como ferramenta de trabalho. Se forem detetados erros ao analisar uma frase, esta não deve simplesmente ser rejeitada e o processamento terminar por aí. Definição: Entende-se por tratamento de erros o processo que é desencadeado pelo reconhecedor logo após a deteção de um erro na frase que está a ser analisada. A reação compreende duas grandes tarefas: - sinalização do erro; - correção/recuperação. A deteção de um erro está inerente à análise. Processamento de Linguagens: DI-UBI 2017/ /28
28 Na analise de uma frase, são três as razões que podem levar à deteção de um erro: - caracteres inválidos (erro léxico); - combinação de símbolos terminais inválida (erro sintático); - aparecimento dum símbolo terminal que infringe as regras que têm de ser verificadas para se poder identificar o significado da frase (erro semântico); Uma frase pode ainda conter outro tipo de erros (por ex. algoritmo incorreto), em que um processador de linguagens não é capaz de os detetar (erros lógicos). A sinalização do erro é de importância crucial para que o programador possa localizar o foco de problemas, interpretá-los e corrigi-los definitivamente. Por isso, a mensagem a ser enviada deve, no mínimo, indicar: - a posição (linha e coluna, em relação ao texto fonte) onde o erro foi encontrado; - símbolo de erro; - a causa provável que justifica esse erro (diagnóstico). Processamento de Linguagens: DI-UBI 2017/ /28
Apresentação. !! Familiarização com os métodos de construção de compiladores de linguagens e com as técnicas de compilação mais habituais.
Apresentação Universidade dos Açores Departamento de Matemática www.uac.pt/~hguerra/!! Aquisição de conceitos sobre a definição de linguagens de programação.!! Familiarização com os métodos de construção
Compiladores. Motivação. Tradutores. Motivação. Tipos de Tradutores. Tipos de Tradutores
Motivação Prof. Sérgio Faustino Compiladores Conhecimento das estruturas e algoritmos usados na implementação de linguagens: noções importantes sobre uso de memória, eficiência, etc. Aplicabilidade freqüente
Compiladores. Introdução
Compiladores Introdução Apresentação Turma Noite Continuada I 20/03 Continuada II 22/05 Atividades Regimental 05/06 Total 1 Ponto 1 Ponto 1 Ponto 7 Pontos 10 Pontos Aulas expositivas teórico-práticas Exercícios
INE5421 LINGUAGENS FORMAIS E COMPILADORES
INE5421 LINGUAGENS FORMAIS E COMPILADORES PLANO DE ENSINO Objetivo geral Conhecer a teoria das linguagens formais visando sua aplicação na especificação de linguagens de programação e na construção de
Universidade de Santa Cruz do Sul UNISC Departamento de informática COMPILADORES. Introdução. Geovane Griesang
Universidade de Santa Cruz do Sul UNISC Departamento de informática COMPILADORES Introdução [email protected] Processadores de linguagem Linguagens de programação são notações para se descrever
Compiladores I Prof. Ricardo Santos (cap 1)
Compiladores I Prof. Ricardo Santos (cap 1) Compiladores Linguagens de programação são notações que permitem descrever como programas devem executar em uma máquina Mas, antes do programa executar, deve
Compiladores. Introdução à Compiladores
Compiladores Introdução à Compiladores Cristiano Lehrer, M.Sc. Introdução (1/2) O meio mais eficaz de comunicação entre pessoas é a linguagem (língua ou idioma). Na programação de computadores, uma linguagem
Conceitos de Linguagens de Programação
Conceitos de Linguagens de Programação Aula 03 Processo de Compilação Edirlei Soares de Lima Métodos de Implementação Arquitetura de Von Neumann: A linguagem de máquina de um computador
Introdução à Programação
Introdução à Programação Linguagens de Programação: sintaxe e semântica de linguagens de programação e conceitos de linguagens interpretadas e compiladas Engenharia da Computação Professor: Críston Pereira
Paradigmas de Linguagem de Programação. Aspectos Básicos
Paradigmas de Linguagem de Programação Aspectos Básicos Introdução Nesta segunda etapa de nossos estudos, veremos: aspectos básicos de programa e linguagem de programação; revisão de conceitos de compilador
Linguagens de Programação Classificação
Classificação Classificação A proximidade que a linguagem de programação tem com a humana determina sua classe (o nível): Linguagem de máquina (primeira geração) Linguagem assembly - de montagem (segunda
Programação: Compiladores x Interpretadores PROF. CARLOS SARMANHO JR
Programação: Compiladores x Interpretadores PROF. CARLOS SARMANHO JR Introdução Compiladores e interpretadores são formas de tradução de um código geralmente de alto nível (escrito em uma linguagem de
Construção de Compiladores. Capítulo 1. Introdução. José Romildo Malaquias. Departamento de Computação Universidade Federal de Ouro Preto 2014.
Construção de Compiladores Capítulo 1 Introdução José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2014.2 1/22 1 Linguagens de programação 2 Compilação 2/22 Tópicos 1
4) Defina o que vem a ser um algoritmo, e porque, o mesmo depende do processo.
Lista de Exercício 1 Algoritmo e Programação 29/08/2018 (Solução) 1) Escreva conforme a premissas computacionais, o que vem a ser, lógica. R: São as premissas básicas para se executar instruções, alocadas
Compiladores. Fabio Mascarenhas
Compiladores Fabio Mascarenhas 2017.1 http://www.dcc.ufrj.br/~fabiom/comp Introdução Compiladores x Interpretadores Offline x Online Um compilador transforma um programa executável de uma linguagem fonte
Conversões de Linguagens: Tradução, Montagem, Compilação, Ligação e Interpretação
Conversões de Linguagens: Tradução, Montagem, Compilação, Ligação e Interpretação Para executar uma tarefa qualquer, um computador precisa receber instruções precisas sobre o que fazer. Uma seqüência adequada
Algoritmos e Programação
Universidade Federal do Vale do São Francisco Curso de Engenharia da Produção / Elétrica Parte 04 Prof. Jorge Cavalcanti [email protected] www.univasf.edu.br/~jorge.cavalcanti www.twitter.com/jorgecav
PROGRAMAÇÃO I. Introdução
PROGRAMAÇÃO I Introdução Introdução 2 Princípios da Solução de Problemas Problema 1 Fase de Resolução do Problema Solução na forma de Algoritmo Solução como um programa de computador 2 Fase de Implementação
Prof. Antonio Almeida de Barros Jr. Prof. Antonio Almeida de Barros Junior
Prof. Antonio Almeida de Barros Jr. Prof. Antonio Almeida de Barros Junior Meio pelo qual se pode indicar os passos que devem ser realizados pelo computador para resolver problemas; Através da linguagem,
Projeto de Compiladores
Projeto de Compiladores FIR Faculdade Integrada do Recife João Ferreira 12 e 13 de fevereiro de 2007 Questionário 1. Em quais linguagens de programação você já programou? 2. O que você sabe sobre compiladores?
EA876 - Introdução a Software de Sistema
A876 - Introdução a Software de Sistema Software de Sistema: conjunto de programas utilizados para tornar o hardware transparente para o desenvolvedor ou usuário. Preenche um gap de abstração. algoritmos
Questões de Paradigmas de Programação Matéria: Prova 1 4ª EDIÇÃO
Questões de Paradigmas de Programação Matéria: Prova 1 4ª EDIÇÃO QUESTÃO 1 : Enviada por: Francisco Carlos Moraes Junior Duvidas: Thaise Domínios de programação são áreas onde os computadores são usados.
Programação de Computadores:
Instituto de C Programação de Computadores: Introdução a Linguagens de Programação Luis Martí Instituto de Computação Universidade Federal Fluminense [email protected] - http://lmarti.com Seis Camadas Problema
Paradigmas de Programação
Paradigmas de Programação Prof.: Edilberto M. Silva http://www.edilms.eti.br Aula 2 Linguagens de Programação Desenvolvimento e execução de programas Características de linguagens Execução de programas
Desenvolvimento de Aplicações Desktop
Desenvolvimento de Aplicações Desktop Conceitos Básicos de Programação Professor: Charles Leite O Desenvolvimento de Programas A programação consiste em indicar como o computador (hardware) deve trabalhar
Compiladores. Conceitos Básicos
Compiladores Conceitos Básicos Processadores de Linguagem De forma simples, um compilador é um programa que recebe como entrada um programa em uma linguagem de programação a linguagem fonte e o traduz
Introdução à Programação Aula 03. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação
Aula 03 Prof. Max Santana Rolemberg Farias [email protected] Colegiado de Engenharia de Computação Linguagens de Programação A primeira linguagem de programação foi criada por Ada Lovelace. Amiga
Linguagens de Programação
Universidade Federal do Rio Grande do Norte Centro de Tecnologia Departamento de Computação e Automação Linguagens de Programação Professor Responsável: Luiz Affonso Henderson Guedes de Oliveira Prof.
Como construir um compilador utilizando ferramentas Java
Como construir um compilador utilizando ferramentas Java p. 1/2 Como construir um compilador utilizando ferramentas Java Aula 1 - Introdução Prof. Márcio Delamaro [email protected] Como construir um
Introdução aos Compiladores
Universidade Católica de Pelotas Introdução aos Compiladores André Rauber Du Bois [email protected] 1 MOTIVAÇÃO Entender os algor ıtmos e estruturas usados para se implementar linguagens de programação
Programação de Sistemas (Sistemas de Programação) Semana 10, Aula 17
PCS3616 Programação de Sistemas (Sistemas de Programação) Semana 10, Aula 17 Linguagens e Compiladores Programação em linguagem de alto nível Escola Politécnica da Universidade de São Paulo Roteiro 1.
Introdução à Computação
UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA Introdução à Computação Prof. Yandre Maldonado - 1 Prof. Yandre Maldonado e Gomes da Costa [email protected] Histórico da Computação Prof. Yandre
Introdução à Computação
Introdução à Computação Jordana Sarmenghi Salamon [email protected] [email protected] http://inf.ufes.br/~jssalamon Departamento de Informática Universidade Federal do Espírito Santo Agenda
Linguagens e Compiladores
Linguagens e Compiladores Aula 1: a) Critérios b) Noções de Compiladores e Interpretadores c) Usos da tecnologia de compilação d) Compiladores, filtros e pré-processadores e) Estruturação lógica de compiladores
Função, interação com o compilador Especificação e reconhecimento de tokens Implementação Tratamento de erros. Prof. Thiago A. S.
Análise léxica Função, interação com o compilador Especificação e reconhecimento de tokens Implementação Tratamento de erros Prof. Thiago A. S. Pardo 1 Estrutura geral de um compilador programa-fonte analisador
Sistema Computacional
Algoritmos e Lógica de Programação Conceitos Básicos Abstração Reinaldo Gomes [email protected] O que é um? Integração de componentes atuando como uma entidade, com o propósito de processar dados, i.e.
Tratamento dos Erros de Sintaxe. Adriano Maranhão
Tratamento dos Erros de Sintaxe Adriano Maranhão Introdução Se um compilador tivesse que processar somente programas corretos, seu projeto e sua implementação seriam grandemente simplificados. Mas os programadores
Introdução à Programação. João Manuel R. S. Tavares
Introdução à Programação João Manuel R. S. Tavares Sumário 1. Ciclo de desenvolvimento de um programa; 2. Descrição de algoritmos; 3. Desenvolvimento modular de programas; 4. Estruturas de controlo de
COMPILAÇÃO. Ricardo José Cabeça de Souza
COMPILAÇÃO Ricardo José Cabeça de Souza www.ricardojcsouza.com.br Programas Código-fonte escrito em linguagem de programação de alto nível, ou seja, com um nível de abstração muito grande, mais próximo
Linguagens de Programação Aula 3
Aula 3 Celso Olivete Júnior [email protected] Na aula passada... Classificação das LPs (nível, geração e paradigma) Paradigmas Imperativo, OO, funcional, lógico e concorrente 2/33 Na aula de hoje...
3. Linguagem de Programação C
Introdução à Computação I IBM1006 3. Linguagem de Programação C Prof. Renato Tinós Departamento de Computação e Matemática (FFCLRP/USP) 1 Principais Tópicos 3. Linguagem de programação C 3.1. Conceitos
Tecnólogo em Análise e Desenvolvimento de Sistemas. Sistemas Operacionais (SOP A2)
Tecnólogo em Análise e Desenvolvimento de Sistemas Sistemas Operacionais (SOP A2) Conceitos de Hardware e Software Referências: Arquitetura de Sistemas Operacionais. F. B. Machado, L. P. Maia. Editora
Programação de Computadores IV. Introdução a Linguagens de Programação Simone Martins SLIDES CEDIDOS POR BRUNO MARQUES 1
Programação de Computadores IV Introdução a Linguagens de Programação Simone Martins [email protected] SLIDES CEDIDOS POR BRUNO MARQUES 1 Arquitetura de programação 2 O Que é um Dado? Dado é o elemento
Compiladores. Prof. Bruno Moreno
Compiladores Prof. Bruno Moreno Apresentação - Professor Bruno Neiva Moreno Graduado em Ciência da Computação (UFPB) 2004 a 2009 Bolsista PIBIC/CNPq LARHENA - Laboratório de Recursos Hídricos e Engenharia
Introdução à Programação
Introdução à Program João Manuel R. S. Tavares Sumário 1. Ciclo de desenvolvimento de um programa; 2. Descrição de algoritmos; 3. Desenvolvimento modular de programas; 4. Estruturas de controlo de um programa.
a) Computador b) Estrutura do sistema i. Hardware ii.software c) Linguagens de Programação i. Paradigmas e Programação 1.
a) Computador b) Estrutura do sistema i. Hardware ii.software c) Linguagens de Programação i. Paradigmas e Programação 1. Estruturada 2. Orientada a eventos 3. Orientada a objetos d) Sistemas Operacionais
Universidade Federal de Goiás Bacharelado em Ciências da Computacão Compiladores
Universidade Federal de Goiás Bacharelado em Ciências da Computacão Compiladores 2013-2 Compilador para a Linguagem Cafezinho Especificação dos trabalhos: T2 (Geração da Representação Intermediária e Análise
INE5416 Paradigmas de Programação. Ricardo Azambuja Silveira INE CTC UFSC E Mail: URL:
INE5416 Paradigmas de Programação Ricardo Azambuja Silveira INE CTC UFSC E Mail: [email protected] URL: www.inf.ufsc.br/~silveira Conceitos Léxica estudo dos símbolos que compõem uma linguagem Sintaxe
TÉCNICO EM MANUTENÇÃO E SUPORTE EM INFORMÁTICA FORMA SUBSEQUENTE. Professora: Isabela C. Damke
TÉCNICO EM MANUTENÇÃO E SUPORTE EM INFORMÁTICA FORMA SUBSEQUENTE Professora: Isabela C. Damke [email protected] Linguagem de Programação Uma linguagem de programação é um conjunto de símbolos (
Capítulo 1. Linguagens e processadores
Capítulo 1. 1. Linguagens 1.1. Definição Definição : Uma linguagem L sobre um alfabeto, também designado com frequência por vocabulário, V, é um conjunto de frases, em que cada frase é uma sequência de
Noções de compilação
Noções de compilação Compilador: o que é, para que serve e estrutura geral Parentes do compilador e programas correlatos Prof. Thiago A. S. Pardo 1 Compilação: por que estudar? (parte 1) Compiladores:
Programação I Apresentação
Programação I Apresentação Prof. Carlos Alberto [email protected] [email protected] Referências JUNIOR, D. P.; NAKAMITI, G. S.; ENGELBRECHT, A. de M. E.; BIANCHI, F. Algoritmos e Programação
Métodos de implementação de linguagens. Kellen Pinagé
Métodos de implementação de linguagens Kellen Pinagé Sumário Métodos de implementação de linguagens Compilação Interpretação pura Híbrido Métodos de implementação de linguagens Principais componentes de
Conteúdo. Introdução a compiladores Tradução x Interpretação Processo de Compilação
Compiladores Conteúdo Introdução a compiladores Tradução x Interpretação Processo de Compilação Quando se inventou o computador criou se uma máquina a mais, quando se criou o compilador criou se uma nova
Curso Profissional de Gestão e Programação de Sistemas Informáticos. Programação e Sistemas de Informação. Módulo 1. 1ª Parte Prof. Sandra Pais Soares
Curso Profissional de Gestão e Programação de Sistemas Informáticos Programação e Sistemas de Informação Módulo 1 1ª Parte Prof. Sandra Pais Soares Linguagens de Programação Linguagens de Programação Uma
Existem três categorias principais de linguagem de programação: linguagem de máquina, linguagens assembly e linguagens de alto nível.
Aula 3 SOFTWARE (programas) Um programa (software) consiste em uma sequência de instruções escritas numa linguagem precisa chamada linguagem de programação. Estas instruções são traduzidas em um compilador,
Gramáticas Livres de Contexto Parte 1
Universidade Estadual de Feira de Santana Engenharia de Computação Gramáticas Livres de Contexto Parte 1 EXA 817 Compiladores Prof. Matheus Giovanni Pires O papel do Analisador Sintático É responsável
Resolução de Problemas com Computador. Resolução de Problemas com Computador. Resolução de Problemas com Computador
Prof. Araken Medeiros [email protected] O processo de resolução de um problema com um computador leva à escrita de um algoritmo ou programa e à sua execução. Mas o que é um algoritmo? Angicos, RN 15/9/2009
UNIDADE 1 CONCEITOS BÁSICOS EM ALGORITMOS
1 UNIDADE 1 CONCEITOS BÁSICOS EM ALGORITMOS 1.1 NOÇÕES DE LÓGICA a) Conceitos: - Lógica é a ciência que estuda as leis do raciocínio; coerência; raciocínio. - Lógica como técnica nos ensina a usar corretamente
SEMÂNTICA. Rogério Rocha. rode = program simples = var x : int := 3 in x := x + 5 end.
SEMÂNTICA program simples = var x : int := 3 in x := x + 5 end. rode =? Rogério Rocha Roteiro Introdução Sintaxe Semântica Dinâmica (Métodos formais) Operacional Axiomática Denotacional Estática Conclusão
Aula 5 Oficina de Programação Introdução ao C. Profa. Elaine Faria UFU
Aula 5 Oficina de Programação Introdução ao C Profa. Elaine Faria UFU - 2017 Linguagem de Programação Para que o computador consiga ler um programa e entender o que fazer, este programa deve ser escrito
Introdução à Computação: Máquinas Multiníveis
Introdução à Computação: Máquinas Multiníveis Beatriz F. M. Souza ([email protected]) http://inf.ufes.br/~bfmartins/ Computer Science Department Federal University of Espírito Santo (Ufes), Vitória,
Compiladores e Computabilidade
Compiladores e Computabilidade Prof. Leandro C. Fernandes UNIP Universidade Paulista, 2013 GERAÇÃO DE CÓDIGO INTERMEDIÁRIO Geração de Código Intermediário Corresponde a 1ª etapa do processo de Síntese
Fundamentos de Programação. Diagrama de blocos
Fundamentos de Programação Diagrama de blocos Prof. M.Sc.: João Paulo Q. dos Santos E-mail: [email protected] Página: http://docente.ifrn.edu.br/joaoqueiroz/ O processo de desenvolvimento (programação),
IV.2 Aspectos Léxicos Convencionais
IV.2 Aspectos Léxicos Convencionais Classes de símbolos Genéricos - Token genérico / Lei de formação bem definida - Limitações de tamanho e/ou valor - Possuem valor semântico o token deve ser acompanhado
Estrutura geral de um compilador programa-fonte
Análise léxica Função, interação com o compilador Especificação e reconhecimento de tokens Implementação Tratamento de erros Prof. Thiago A. S. Pardo 1 Estrutura geral de um compilador programa-fonte analisador
INE5622 INTRODUÇÃO A COMPILADORES
INE5622 INTRODUÇÃO A COMPILADORES PLANO DE ENSINO Objetivo geral Conhecer o processo de especificação e implementação de linguagens de programação, a partir do estudo dos conceitos, modelos, técnicas e
Compiladores Ciência e Tecnologia da Computação Engenharia Informática e de Computadores
Compiladores Ciência e Tecnologia da Computação Engenharia Informática e de Computadores Análise Semântica Universidade dos Açores Departamento de Matemática www.uac.pt/~hguerra Análise semântica 3ª etapa
Autômatos e Linguagens
Autômatos e Linguagens Eduardo Ferreira dos Santos Ciência da Computação Centro Universitário de Brasília UniCEUB Agosto, 2016 1 / 41 Sumário 1 Compiladores 2 Linguagens de programação 3 Ciência dos compiladores
Compiladores. Eduardo Ferreira dos Santos. Fevereiro, Ciência da Computação Centro Universitário de Brasília UniCEUB 1 / 38
Compiladores Eduardo Ferreira dos Santos Ciência da Computação Centro Universitário de Brasília UniCEUB Fevereiro, 2017 1 / 38 Sumário 1 Compiladores 2 Linguagens de programação 3 Ciência dos compiladores
Curso Profissional de Gestão e Programação de Sistemas Informáticos. Programação e Sistemas de Informação. Módulo 1. 2ª Parte Prof. Sandra Pais Soares
Curso Profissional de Gestão e Programação de Sistemas Informáticos Programação e Sistemas de Informação Módulo 1 2ª Parte Prof. Sandra Pais Soares Introdução à Lógica de Programação A elaboração de um
INFORMÁTICA: Informação automática
INTRODUÇÃO INFORMÁTICA: Informação automática Definição: é a ciência que estuda o tratamento automático e racional da informação (encarregada pelo estudo e desenvolvimento de máquinas e métodos para processar
