Pragmática das Linguagens de
|
|
- Ronaldo Alvarenga de Sá
- 7 Há anos
- Visualizações:
Transcrição
1 Instituto Superior Técnico Pragmática das Linguagens de Programação 2004/2005 Primeiro Exame/Segundo Teste 17/12/2004 Número: Turma: Nome: Escreva o seu número em todas as folhas do teste. O tamanho das respostas deve ser limitado ao espaço fornecido para cada pergunta. Pode usar os versos das folhas para rascunho. O exame tem 5 páginas e a duração é de 2.0 hora. A cotação de cada questão encontra-se indicada entre parêntesis. Boa sorte. 1. (1.5) Podemos classificar os erros de um programa de acordo com o momento em que são detectados e de acordo com a parte do compilador que os detecta. Mostre fragmentos de programas (escritos nas linguagens que preferir) que demonstrem: (a) (0.3) Um erro léxico. Em C um identificador tem de começar por uma letra: int 1b = 5; (b) (0.3) Um erro sintático. Em C uma divisão necessita de dois operandos: printf("result:%d", a /); (c) (0.3) Um erro semântico estático. visível em compile time. int quo = 123 / 0; Em C uma divisão por zero (d) (0.3) Um erro semântico dinâmico. Em C uma divisão por zero invisível em compile time. int quo = 123 / x; //com x = 0 (e) (0.3) Um erro que o compilador não detecta nem gera código para detectar. Em C a indexação de arrays.
2 Número: 2 int v[5] = { 1, 3, 5, 7,9 ;... printf("%d", v[x]); //com x > 4 ou x < 0 2. (3.0) Em Fortran 77 as variáveis locais são tipicamente alocadas estaticamente. Em Algol e seus descendentes (Pascal, C, Ada) as variáveis locais são tipicamente alocadas no stack. Em Common Lisp e Scheme as variáveis locais são alocadas no heap (embora possam ser alocadas no stack em certos casos). (a) (1.5) Dê um exemplo de um fragmento de programa em C (ou Pascal ou Ada) que não funcionará correctamente se as variáveis locais forem alocadas estaticamente. int fact (int n) { if (n == 0) { return 1; else { return n * fact(n - 1); (b) (1.5) Dê um exemplo de um fragmento de programa em Common Lisp (ou Scheme) que não funcionará correctamente se as variáveis locais forem alocadas exclusivamente no stack. (define (make-adder n) (lambda (x) (+ x n))) (define add3 (make-adder 3)) (add3 5) 3. (2.0) O compilador GCC da GNU permite compilar programas escritos usando algumas extensões à linguagem C. Uma dessas extensões é a possibilidade de ter funções dentro de outras funções. Eis um resumo da documentação dessa extensão: 5.4 Nested Functions A nested function is a function defined inside another function. The nested function s name is local to the block where it is defined. The nested function can access all the variables of the containing function that are visible at the point of its definition. For example, here we show a nested function which uses an inherited variable named offset:
3 Número: 3 bar (int *array, int offset, int size) { int access (int *array, int index) { return array[index + offset]; int i; /*... */ for (i = 0; i < size; i++) /*... */ access (array, i) /*... */ It is possible to call the nested function from outside the scope of its name by storing its address or passing the address to another function: hack (int *array, int size) { void store (int index, int value) { array[index] = value; intermediate (store, size); Here, the function intermediate receives the address of store as an argument. If intermediate calls store, the arguments given to store are used to store into array. (a) (1.0) Dadas as características da linguagem C explique as limitações que são expectáveis relativamente à utilização desta extensão. Quando se invoca uma função interna a outra função, é necessário que a função que a contém ainda esteja em execução, caso contrário as referências às variáveis livres da primeira não terão significado. (b) (1.0) Esquecendo as questões de performance, explique as implicações da eliminação das limitações que referiu no ponto anterior. Seria necessário que o ambiente da função interna permanecesse activo mesmo depois da função que a contém ter terminado. Isto implica que esse ambiente passe a ter duração indefinida, só podendo ser eliminado quando se perdem todas as referências para a função interna. Isto sugere ainda a necessidade de ter um mecanismo de recolha de lixo.
4 Número: 4 4. (3.0) Considere o seguinte programa Scheme: (define (misterio i) (define (f1 i f) (if (> i 1) (f) (f1 2 (f3)))) (define (f3) (define (f2) i) f2) (f1 1 f1)) (a) (1.0) Admitindo que Scheme é uma linguagem de âmbito léxico, qual o valor da expressão (misterio 3)? Justifique. Quando f1 é aplicada como resultado da expressão (misterio 3), o teste do if falha e a função f1 invocase recursivamente usando como argumento o resultado da invocação da função f3 que é a função f2. No momento em que esta função é criada, é-lhe associado o ambiente léxico em que i diz respeito ao parâmetro do procedimento misterio que, como não foi alterado, tem o valor 3. Na invocação recursiva de f1, o teste é bem sucedido e é invocada a função f que designa f2 que devolve o valor de i que era 3. (b) (1.0) Admitindo que Scheme era uma linguagem de âmbito dinâmico com shallow binding, qual o valor da expressão (misterio 3)? Justifique. Com shallow binding, a associação entre uma função e o seu ambiente envolvente é feita no momento da aplicação da função. Neste caso, quando f1 é aplicada, o teste do if falha e a função f1 invoca-se recursivamente usando como argumento o resultado da invocação da função f3 que é a função f2. Nesta segunda invocação recursiva, o teste é bem sucedido e é invocada a função f que designa f2 mas é apenas neste momento que se estabelece a associação entre a função f2 e o ambiente envolvente. Neste ambiente, f2 devolve o valor de i que,
5 Número: 5 neste momento, é 2. (c) (1.0) Admitindo que Scheme era uma linguagem de âmbito dinâmico com deep binding, qual o valor da expressão (misterio 3)? Justifique. Com deep binding, a associação entre uma função e o seu ambiente envolvente é feita no momento da criação da função. Neste caso, quando f1 é aplicada, o teste do if falha e a função f1 invoca-se recursivamente usando como argumento o resultado da invocação da função f3 que é a função f2 mas com o ambiente associado contendo a ligação i=1 que é o último valor de i ainda visível em f2. Nesta segunda invocação recursiva, o teste é bem sucedido e é invocada a função f que designa f2 mas cujo valor devolvido é o valor de i no momento em que a função tinha sido criada, que era (0.5) Considere a seguinte expressão escrita em notação infixa: (a + (b - c)) * d A mesma expressão escrita em notação prefixa fica com a seguinte forma: * + a - b c d No entanto, as linguagens da família Lisp empregam uma notação prefixa ligeiramente diferente denominada notação prefixa com parêntesis: (* (+ a (- b c)) d) Explique qual a vantagem da notação prefixa com parêntesis das linguagens Lisp sobre a notação prefixa simples e dê um exemplo onde essa vantagem seja visível por comparação com o mesmo exemplo escrito em notação prefixa simples. A vantagem está na utilização de operadores que podem receber um número variável de operandos. Como exemplo, temos: (* (+ a b (- c d e) f) g h) Em notação infixa simples teríamos de escrever: * * + a + b c d e f g h
Pragmática das Linguagens de Programação 2004/2005
Instituto Superior Técnico Pragmática das Linguagens de Programação 2004/2005 Segundo Exame 11/2/2005 Número: Turma: Nome: Escreva o seu número em todas as folhas do teste. O tamanho das respostas deve
Leia maisFundamentos de Programação
Fundamentos de Programação Primeiro Teste 21 de Abril de 2012 11:30 13:00 Nome: Número: Esta prova, individual e sem consulta, tem 5 páginas com 10 perguntas. A cotação de cada pergunta está assinalada
Leia maisInstituto Superior Técnico 2009/2010. Segundo Exame 13/7/2010
Instituto Superior Técnico Programação Avançada 2009/2010 Segundo Exame 13/7/2010 Nome: Número: Escreva o seu número em todas as folhas da prova. O tamanho das respostas deve ser limitado ao espaço fornecido
Leia maisFundamentos de Programação
Fundamentos de Programação Primeiro Teste 16 de Abril de 2011 09:00 10:30 Nome: Número: Esta prova, individual e sem consulta, tem 7 páginas com 9 perguntas. A cotação de cada pergunta está assinalada
Leia maisCapítulo 7. Expressões e Sentenças de Atribuição
Capítulo 7 Expressões e Sentenças de Atribuição Introdução Expressões são os meios fundamentais de especificar computações em uma linguagem de programação Para entender a avaliação de expressões, é necessário
Leia maisO que é uma variável?
Escopo, Ligação e Ambiente de Execução mleal@inf.puc-rio.br 1 O que é uma variável? Uma variável pode ser definida como uma tupla r nome é um string usado para
Leia maisFundamentos de Programação
Fundamentos de Programação Soluções do primeiro teste 13 de Novembro de 2004 9:00-10:30 Nota Número: 20 Nome: Turma: Escreva o seu número em todas as folhas do teste. O espaço das respostas deve ser limitado
Leia mais02. [Sebesta, 2000] Qual é o perigo potencial dos nomes que fazem distinção entre maiúsculas e minúsculas?
01. [Sebesta, 2000] Quais são as questões de projeto referentes a nomes? Nomes, Vinculações, Verificação de Tipos e Escopos 02. [Sebesta, 2000] Qual é o perigo potencial dos nomes que fazem distinção entre
Leia maisSecond Exam 13/7/2010
Instituto Superior Técnico Programação Avançada Second Exam 13/7/2010 Name: Number: Write your number on every page. Your answers should not be longer than the available space. You can use the other side
Leia maisAnálise Semântica e Representação Intermédia
Análise Semântica e Representação Intermédia Compiladores, Aula Nº 22 João M. P. Cardoso 1 Representação do fluxo de controlo Nós de enunciados Nó if Árvore de expressão para a condição Nó para o corpo
Leia maisFundamentos de Programação
Fundamentos de Programação Segundo Teste 6 de Janeiro de 2010 09:00 10:30 Nome: Número: Esta prova, individual e sem consulta, tem 8 páginas com 9 perguntas. A cotação de cada pergunta está assinalada
Leia maisLinguagens de Programação Funcional
Linguagens de Programação Funcional Conceitos de Linguagens de Programação Pedro Libório Setembro de 2013 2 Roteiro Introdução Funções matemáticas Fundamentos das linguagens de programação funcionais A
Leia maisEssencialmente, um ponteiro nada mais é do que uma variável que ao invés de conter um valor, contém um endereço de memória.
Ponteiros e Arrays Ponteiros são fundamentais para a programação bem sucedida em C: Passagem de parâmetros por referência; Alocação dinâmica de memória; Aumentar a eficiência de certar rotinas. Essencialmente,
Leia maisConceitos de Linguagens de Programação
Faculdade de Ciências e Tecnologia Departamento de Matemática e Computação Bacharelado em Ciência da Computação Conceitos de Linguagens de Programação Aula 07 (rogerio@prudente.unesp.br) Aula 7 Implementação
Leia maisNomes, vinculações e escopos
Nomes, vinculações e escopos Marco A L Barbosa malbarbo.pro.br Departamento de Informática Universidade Estadual de Maringá cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual
Leia maisAnálise Semântica e Representação Intermédia
Análise Semântica e Representação Intermédia Compiladores Cristina C. Vieira 1 Representação do fluxo de controlo Nós de enunciados Nó if Árvore de expressão para a condição Nó para o corpo do then e nó
Leia maisLinguagens de Programação Conceitos e Técnicas. Amarrações
Linguagens de Programação Conceitos e Técnicas Amarrações Conceituação Amarração (ou binding) é uma associação entre entidades de programação, tais como entre uma variável e seu valor ou entre um identificador
Leia maisFundamentos de Programação
Fundamentos de Programação Segundo Teste 9 de Junho de 2012 9:00 10:30 Nome: Número: Esta prova, individual e sem consulta, tem 6 páginas com 12 perguntas. A cotação de cada pergunta está assinalada entre
Leia maisLista de Linguagens de Programação 7
Lista de Linguagens de Programação 7 Nome: Matrícula: 1. Dizemos que uma linguagem é segura quando esta linguagem não permite que operações sejam aplicadas a argumentos que não possuam os tipos previstos
Leia maisAmbientes de Execução
Ambientes de Execução Organização da memória Ambientes totalmente estáticos, baseados em pilhas e totalmente dinâmicos Passagem de parâmetros Prof. Thiago A. S. Pardo 1 Ambientes de execução na estrutura
Leia maisAmbientes de Execução
Ambientes de execução na estrutura do compilador programa-fonte Ambientes de Execução Tabela de símbolos analisador léxico analisador sintático Organização da memória Ambientes totalmente estáticos, baseados
Leia maisProgramação em Sistemas Computacionais
Programação em Sistemas Computacionais Linguagem C Introdução, tipos Centro de Cálculo Instituto Superior de Engenharia de Lisboa Jorge Martins (jmartins@isel.pt) baseado no slides de Pedro Pereira Enquadramento
Leia maisSegundo Exame 8/7/2008
Instituto Superior Técnico Programação Avançada Segundo Exame 8/7/2008 Nome: Número: Escrevaoseu número em todas as folhas da prova. O tamanho das respostas deve ser limitado ao espaço fornecido para cada
Leia maisCompiladores Ambiente de Execução
Compiladores Ambiente de Execução Fabio Mascarenhas 2015.1 http://www.dcc.ufrj.br/~fabiom/comp O Back-end Até agora vimos as fases do front-end do compilador: Análise Léxica Análise Sintática Análise Semântica
Leia maisParadigmas de Linguagens de Programação. Nomes, Vinculações, Verificação de Tipos e Escopos
Nomes, Vinculações, Verificação de Tipos e Escopos Cristiano Lehrer Nomes (1/6) Um nome é uma string de caracteres usada para identificar alguma entidade de um programa. O termo identificador é utilizado
Leia maisConceitos de Linguagem de Programação - 2
Conceitos de Linguagem de Programação - 2 Arthur Jovita Guerra Thalles Santos Silva Universidade Estadual de Santa Cruz - Ilhéus, BA 1 de novembro de 2011 1 Revisão Natureza das linguagens de Programação
Leia maisFundamentos da Programação
Fundamentos da Programação Solução da Repescagem do Primeiro Teste 31 de Janeiro de 2013 09:00 10:30 1. De um modo sucinto, (a) (0.5) Diga o que é um processo computacional. Um processo computacional é
Leia maisUniversidade Estadual da Paraíba - UEPB Curso de Licenciatura em Computação
Universidade Estadual da Paraíba - UEPB Curso de Licenciatura em Computação Análise Semântica Disciplina: Compiladores Equipe: Luiz Carlos dos Anjos Filho José Ferreira Júnior Compiladores Um compilador
Leia maisParadigmas de Linguagens de Programação. Expressões e Instruções de Atribuição
Expressões e Instruções de Atribuição Cristiano Lehrer Introdução Expressões são o meio fundamental de especificar computações em uma linguagem de programação: Familiarização com as ordens de avaliação
Leia maisConceitos de Linguagens de Programação
Faculdade de Ciências e Tecnologia Departamento de Matemática e Computação Bacharelado em Ciência da Computação Conceitos de Linguagens de Programação Aula 03 (rogerio@fct.unesp.br) Aula 3 Variáveis: Nomes
Leia maisNomes, vinculações e escopos
Nomes, vinculações e escopos Marco A L Barbosa malbarbo.pro.br Departamento de Informática Universidade Estadual de Maringá cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual
Leia maisExpressões e Instruções de Atribuição. George Darmiton da Cunha Cavalcanti
Expressões e Instruções de Atribuição George Darmiton da Cunha Cavalcanti (gdcc@cin.ufpe.br) Tópicos Introdução Expressões Aritméticas Operadores Sobrecarregados Conversões de Tipo Expressões Relacionais
Leia maisLinguagens de Programação. Marco A L Barbosa
Expressões e sentença de atribuição Linguagens de Programação Marco A L Barbosa cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual 4.0 Internacional. http://github.com/malbarbo/na-lp-copl
Leia maisLinguagem de Programação e Compiladores
Linguagem de Programação e Compiladores Fernando Antônio Asevedo Nóbrega Instituto de Ciências Matemáticas e de Computação USP SCC-206 Introdução à Compilação 24 de abril de 2012 1 / 20 Sumário 1 Introdução
Leia maisExpressões e sentença de atribuição
Expressões e sentença de atribuição Marco A L Barbosa malbarbo.pro.br Departamento de Informática Universidade Estadual de Maringá cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual
Leia maisUNIVERSIDADE LUSÓFONA DE HUMANIDADES E TECNOLOGIAS 2º Semestre 2013/2014
UNIVERSIDADE LUSÓFONA DE HUMANIDADES E TECNOLOGIAS 2º Semestre 2013/2014 Programação em C 18/06/2014 Leia com atenção as perguntas e justifique cuidadosamente todas as respostas 1. Qual o objetivo de uma
Leia maisConceitos de Linguagens de Programação
Faculdade de Ciências e Tecnologia Departamento de Matemática e Computação Bacharelado em Ciência da Computação Conceitos de Linguagens de Programação Aula 06 (rogerio@fct.unesp.br) Aula 6 Subprogramas
Leia maisBruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP. Alocação Dinâmica de Memória
Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP Alocação Dinâmica de Memória Alocação Estática x Dinâmica C: dois tipos de alocação de memória: Estática e Dinâmica Na alocação estática, o espaço
Leia maisCompiladores. 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
Leia maisUNIVERSIDADE LUSÓFONA DE HUMANIDADES E TECNOLOGIAS 2º Semestre 2013/2014
UNIVERSIDADE LUSÓFONA DE HUMANIDADES E TECNOLOGIAS 2º Semestre 2013/2014 Programação em C 30/06/2014 Leia com atenção as perguntas e justifique cuidadosamente todas as respostas 1. Qual o objetivo de um
Leia maisLinguagem C. Brian W. Kernighan, Dennis Ritchie (K&R) Slides adaptados, inspirados, muitos copiados dos slides do professor Pedro Pereira
Linguagem C Brian W. Kernighan, Dennis Ritchie (K&R) Slides adaptados, inspirados, muitos copiados dos slides do professor Pedro Pereira Centro de Cálculo Instituto Superior de Engenharia de Lisboa João
Leia mais02. [Sebesta, 2000] Quais são as vantagens e as desvantagens dos tipos de dados decimais?
01. [Sebesta, 2000] O que é um descritor? 02. [Sebesta, 2000] Quais são as vantagens e as desvantagens dos tipos de dados decimais? 03. [Sebesta, 2000] Quais são as questões de projeto relativas aos tipos
Leia mais- Mapa de memória de um processo - Ponteiros
1 MCTA028 Programação Estruturada - Mapa de memória de um processo - Ponteiros Material preparado a partir de slides dos profs. Jesús Mena-Chalco e Fabrício Olivetti Luiz Rozante 3Q-2018 2 Alocação de
Leia maisCCM0118 Computação I Curso de Ciências Moleculares Turma 22 Segundo Semestre de 2012 Segunda Prova 25 de outubro de 2012
CCM0118 Computação I Curso de Ciências Moleculares Turma 22 Segundo Semestre de 2012 Segunda Prova 25 de outubro de 2012 Nome: Instruções: Assinatura: N ō USP: 1. Preencha o cabeçalho acima. 2. Não destaque
Leia maisLayout. Módulos. Normalmente, cada módulo está armazenado num ficheiro com o mesmo nome do módulo. Exemplo.hs
Layout Ao contrário de quase todas as linguagens de programação, o Haskell não necessita de marcas para delimitar as diversas declarações que constituem um programa. Em Haskell a identação do texto (isto
Leia mais16. Compilação no Linux
16. Compilação no Linux 16.1 Compilador X Interpretador Um código fonte pode ser compilado ou interpretado. Compiladores e interpretadores tratam o código de maneira diferente. Interpretador: Lê o código
Leia maisFundamentos de Programação
Licenciatura em Engenharia Informática e de Computadores Fundamentos de Programação Trabalho para casa 22 de Setembro de 2008 Este trabalho corresponde à instalação, no seu computador, do interpretador
Leia maisProgramação. MEAer e LEE. Bertinho Andrade da Costa. Instituto Superior Técnico. Argumentos da linha de comando Funções recursivas
Programação MEAer e LEE Bertinho Andrade da Costa 2010/2011 1º Semestre Instituto Superior Técnico Argumentos da linha de comando Funções recursivas Programação 2010/2011 DEEC-IST Arg. da linha de comando;
Leia maisCompiladores Ambiente de Execução
Compiladores Ambiente de Execução Fabio Mascarenhas 2015.2 http://www.dcc.ufrj.br/~fabiom/comp O Back-end Até agora vimos as fases do front-end do compilador: Análise Léxica Análise Sintática Análise Semântica
Leia mais1º Exame de INTRODUÇÃO À PROGRAMAÇÃO Licenciatura em Engenharia Mecânica 30 de Junho de º Semestre
º Exame de INTRODUÇÃO À PROGRAMAÇÃO Licenciatura em Engenharia Mecânica de Junho de 6 º Semestre Exame sem consulta : 6: h Nome: Número: Escreva o seu número e nome em todas as folhas de exame. O exame
Leia maisCompiladores. Análise Semântica
Compiladores Análise Semântica Cristiano Lehrer, M.Sc. Atividades do Compilador Arquivo de origem Análise léxica Análise semântica Síntese Análise sintática Análise Gramáticas Estruturas internas Arquivo
Leia maisMAC 0316/5754 Conceitos de Linguagens de Programação Primeiro Semestre de 2011 Terceira Prova 21 de junho de 2011
MAC 0316/5754 Conceitos de Linguagens de Programação Primeiro Semestre de 2011 Terceira Prova 21 de junho de 2011 Nome do aluno: Assinatura: N ō USP: Instruções: 1. Preencha o cabeçalho acima. 2. Não destaque
Leia maisLinguagens de Programação. Nomes, Escopos e Vinculações (Bindings) Carlos Bazilio
Linguagens de Programação Nomes, Escopos e Vinculações (Bindings) Carlos Bazilio carlosbazilio@id.uff.br http://www.ic.uff.br/~bazilio/cursos/lp Nomes Forma mais simples de abstração Um nome é um caracter
Leia maisAmbientes de Execução (Run-time system)
Ambientes de Execução (Run-time system) Organização da memória 3 tipos: totalmente estático (Fortran77), baseado em pilhas (C, C++, Pascal), totalmente dinâmico (LISP) Características de Fortran77, C,
Leia maisDAS5102 Fundamentos da Estrutura da Informação
Ponteiros e Funções Funções ou sub-rotinas são parcelas de código que podem ser invocadas a partir do programa principal ou até mesmo por outras sub-rotinas. Elas têm como objetivo a execução de uma tarefa
Leia maisA máquina SECD. Pedro Vasconcelos. 20 de Fevereiro de 2014
A máquina SECD Pedro Vasconcelos 20 de Fevereiro de 2014 O que é a máquina SECD? Um interpretador da linguagem funcional ISWIM (Landin, 1964) Máquina virtual para compilação LISP/Scheme (Henderson, 1980)
Leia maisFundamentos de Programação
Fundamentos de Programação ET43I Aula 5 Prof. Daniel Cavalcanti Jeronymo Orientada a Objetos e instâncias. Construtores, destrutores e operador de atribuição de cópia. Objetos, atributos, operações: mensagens
Leia maisAmbientes de Execução (Run-time system): Como acessar corretamente os objetos definidos pelos nomes dos identificadores em um programa?
Ambientes de Execução (Run-time system): Como acessar corretamente os objetos definidos pelos nomes dos identificadores em um programa? Organização da memória na máquina alvo 3 tipos: totalmente estático
Leia maisao paradigma imperativo
PARADIGMA FUNCIONAL PARADIGMA FUNCIONAL: INTRODUÇÃO G Exemplos de linguagens funcionais LISP - Início: LP puramente funcional - Depois: acréscimo de alguns recursos imperativos (aumentaram eficiência de
Leia maisLEIA ATENTAMENTE AS INSTRUÇÕES PARA A RESOLUÇÃO DO
Nome:... B.I. :... Nº de Estudante:... Curso:... Turma:... Unidade Curricular:...Programação por Objectos Código: 21093 Data: 22 de Julho 2010 Assinatura do Vigilante:... Classificação ( ) Assinatura do
Leia maisFundamentos de Programação 2
Fundamentos de Programação 2 ET43G Aula 9 Prof. Daniel Cavalcanti Jeronymo e instâncias. Construtores, destrutores e operador de atribuição de cópia. Objetos, atributos, operações: mensagens e métodos,
Leia maisAnálise Semântica e Representação Intermédia
Análise Semântica e Representação Intermédia Compiladores Cristina C. Vieira 1 Descritores O que contêm? Informação utilizada para geração de código e análise semântica Descritores locais - nome, tipo,
Leia maisComputação e Programação
Computação e Programação 10ª Aula de Problemas Tópicos Avançados sobre Funções Instituto Superior Técnico, Dep. de Engenharia Mecânica - ACCAII Problema 1 3. The velocity of sound in air is 49.02xT^(1/2)
Leia maisCorreção do 1º Exame de INTRODUÇÃO À PROGRAMAÇÃO Licenciatura em Engenharia Mecânica 30 de Junho de 2006, 2º Semestre
Correção do º Exame de INTRODUÇÃO À PROGRAMAÇÃO Licenciatura em Engenharia Mecânica 3 de Junho de 26, 2º Semestre. (2.) Perguntas de resposta rápida de Fortran (.4 valores cada).. Todos os componentes
Leia maisFundamentos de Programação
Fundamentos de Programação Primeiro Teste 6 de Novembro de 200 09:00 0:30 SOLUÇÃO. (.0) Escolha a única afirmação incorrecta. Uma resposta certa vale valor e uma resposta errada desconta 0.4 valores. A.
Leia maisEngenharia da Programação 2003/2004
Instituto Superior Técnico Engenharia da Programação 2003/2004 Primeiro Teste 31/10/2003 Número: Turma: Nome: Escreva o seu número em todas as folhas do teste. O tamanho das respostas deve ser limitado
Leia maisCANape/vSignalyzer. Data Mining and Report Examples Offline Analysis V
CANape/vSignalyzer Data Mining and Report Examples Offline Analysis V16.0 2018-07-30 Offline Evaluation Tools On-line Tools CANalyzer. Messages CANoe. Messages CANape. Signals Off-line Tools vsignalyzer
Leia maisLista 02: Pilhas & Filas
MAC122 Princípios de Desenvolvimento de Algoritmos DCC IME USP 2º Semestre de 2018 Prof.: Dr. Paulo Miranda pmiranda@vision.ime.usp.br Lista 02: Pilhas & Filas Para as questões envolvendo pilhas, assuma
Leia maisTópicos avançados sobre funções (cont.)
Tópicos avançados sobre funções (cont.) Definição de function handle Utilização de function handles Funções anónimas Funções em que os argumentos são funções (function functions) Funções com número de
Leia maisConstruçã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
Leia maisImplementando subprogramas
Implementando subprogramas Linguagens de Programação Marco A L Barbosa cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual 4.0 Internacional. http://github.com/malbarbo/na-lp-copl
Leia maisPrimeira Prova de Linguagens de Programação - DCC024B -
Primeira Prova de Linguagens de Programação - DCC024B - Ciência da Computação Nome: Eu dou minha palavra de honra que não trapacearei neste exame. Número de matrícula: As regras do jogo: A prova é sem
Leia maisCompiladores Análise Semântica
Compiladores Análise Semântica Fabio Mascarenhas 2018.1 http://www.dcc.ufrj.br/~fabiom/comp Análise Semântica Muitos erros no programa não podem ser detectados sintaticamente, pois precisam de contexto
Leia maisLinguagens de Programação Conceitos e Técnicas. Amarrações Prof. Tiago Alves de Oliveira
Linguagens de Programação Conceitos e Técnicas Amarrações Prof. Tiago Alves de Oliveira Conceituação Amarração (ou binding) é uma associação entre entidades de programação, tais como entre uma variável
Leia maisExercícios. Alocação Dinâmica. Alocação dinâmica de memória. Alocação de memória. Alocação da Memória Principal. Alocação da Memória Principal
Exercícios 1) Crie uma função que recebe os coeficientes de uma função do 2o. grau e retorna as raízes sem usar vetor. 2) Faça um programa que acha o maior e o menor inteiro dentro de um vetor de 10 inteiros,
Leia maisProgramação Imperativa. Lição n.º 16 A pilha de execução
Programação Imperativa Lição n.º 16 A pilha de execução A pilha de execução Registos de execução. Arrays locais. Caso da alocação dinâmica. Segmento de dados. 11/17/16 Programação Imperativa 2 A pilha
Leia maisSEMÂNTICA 02/09/2013. Conceitos de LPs - Semântica
UNIVERSIDADE ESTADUAL DE SANTA CRUZ CURSO: CIÊNCIA DA COMPUTAÇÃO DISCIPLINA: CONCEITOS DE LINGUAGENS DE PROGRAMAÇÃO DOCENTE: ROGÉRIO VARGAS DISCENTE: MARIANNA NOVAES Semântica SEMÂNTICA Semântica é a área
Leia maisArgumentos da linha de comando Exemplos Recursividade de funções Exemplos
Sumário Argumentos da linha de comando Exemplos Recursividade de funções Exemplos Programação 2007/2008 DEEC-IST 1 Argumentos da linha de comando Motivação: Nas aulas de laboratório foi utilizado o compilador
Leia maisFundamentos de Programação
Fundamentos de Programação Solução do Segundo Teste 23 de Janeiro de 2012 09:00 10:30 Nome: Número: 1. (1.0) Explique em que consiste a abstracção de dados, usando os termos barreiras de abstracção, encapsulação
Leia maisCompiladores Geração de Código
Compiladores Geração de Código Fabio Mascarenhas - 2013.2 http://www.dcc.ufrj.br/~fabiom/comp O Back-end Até agora vimos as fases do front-end do compilador: Análise Léxica Análise Sintática Análise Semântica
Leia maisTrabalho Linguagem e Programação de Compiladores
Trabalho Linguagem e Programação de Compiladores Responda as questões. Os exercícios deverão ser desenvolvidos utilizando as estruturas apresentadas em aula e adequadas para cada problema. Forma de entrega:
Leia maisProgramaçã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 simone@ic.uff.br SLIDES CEDIDOS POR BRUNO MARQUES 1 Arquitetura de programação 2 O Que é um Dado? Dado é o elemento
Leia maisUNIVERSIDADE LUSÓFONA DE HUMANIDADES E TECNOLOGIAS 1º Semestre 2011/2012
UNIVERSIDADE LUSÓFONA DE HUMANIDADES E TECNOLOGIAS 1º Semestre 2011/2012 Introdução à Programação em C 31/01/2012 Leia com atenção as perguntas e justifique cuidadosamente todas as respostas 1. Explique
Leia maisLinguagens de Programação
Linguagens de Programação Fabio Mascarenhas - 2015.2 http://www.dcc.ufrj.br/~fabiom/lp Introdução Quais das expressões abaixo têm o mesmo significado? (vector-ref a 42) Introdução Quais das expressões
Leia maisUm Compilador Simples. Definição de uma Linguagem. Estrutura de Vanguarda. Gramática Livre de Contexto. Exemplo 1
Definição de uma Linguagem Linguagem= sintaxe + semântica Especificação da sintaxe: gramática livre de contexto, BNF (Backus-Naur Form) Especificação Semântica: informal (textual), operacional, denotacional,
Leia maisIntrodução à Programação em C (I)
Introdução à Programação em C (I) IAED Tagus, 2009/2010 Organização de Ficheiros em C Organização Típica de Ficheiros em C Inclusão de bibliotecas de sistema Inclusão de bibliotecas locais Definição de
Leia maisPró-Reitoria Acadêmica Diretoria Acadêmica Assessoria Pedagógica da Diretoria Acadêmica
FACULDADE: CENTRO UNIVERSITÁRIO DE BRASÍLIA UniCEUB CURSO: CIÊNCIA DA COMPUTAÇÃO DISCIPLINA: CONSTRUÇÃO DE COMPILADORES CARGA HORÁRIA: 75 H. A. ANO/SEMESTRE: 2017/02 PROFESSOR: EDUARDO FERREIRA DOS SANTOS
Leia maisCompiladores 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
Leia maisProgramação Estruturada Prof. Rodrigo Hausen Organização e Gerenciamento de Memória
Programação Estruturada Prof. Rodrigo Hausen http://progest.compscinet.org Organização e Gerenciamento de Memória 1 AULA PASSADA - vetores ou arrays Declaração de um vetor (array) em C: tipo nome[tamanho];
Leia maisProgramação I Aula 17 Correção de programas Pedro Vasconcelos DCC/FCUP
Programação I Aula 17 Correção de programas DCC/FCUP DCC/FCUP 2019 1/ 30 Nesta aula 1 Classes de erros 2 Execução passo-a-passo 3 Testes na documentação 4 Asserções 5 Outros erros comuns DCC/FCUP 2019
Leia maisV.2 Especificação Sintática de Linguagens de Programação
V.2 Especificação Sintática de Linguagens de Programação Deve ser baseada: No planejamento da Linguagem / Compilador Objetivos, Filosofia, Potencialidades,... Nos critérios de projeto/avaliação Legibilidade,
Leia maisParadigmas. Fortran, Algol, Algol-68, Pascal, C, Cobol, PL/I
Paradigmas Paradigmas Tradicional Fortran, Algol, Algol-68, Pascal, C, Cobol, PL/I Paradigmas Tradicional Fortran, Algol, Algol-68, Pascal, C, Cobol, PL/I OO Simula-67, Smalltalk, C++, Eiffel, Object Pascal,
Leia maisImplementação de Linguagens
Implementação de Linguagens Pedro Vasconcelos DCC/FCUP 11 de Abril de 2016 Objectivos Introdução à implementação de linguagens de programação funcionais. Enfoce sobre técnicas de interpretação/compilação
Leia maisMCTA028 Programação Estruturada Aula 01: - Introdução à linguagem C - Teste de avaliação
MCTA028 Programação Estruturada Aula 01: - Introdução à linguagem C - Teste de avaliação Prof. Jesús P. Mena-Chalco jesus.mena@ufabc.edu.br 3Q-2017 1 Linguagens de programação 2 Linguagem de programação
Leia maisPonteiros. Introdução
Ponteiros Introdução Conceito Um PONTEIRO ou APONTADOR é uma variável usada para armazenar um endereço de memória. Normalmente, o endereço armazenado em um PONTEIRO é a posição de uma outra variável na
Leia maisUSP - ICMC - SSC SSC o. Semestre Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria
USP - ICMC - SSC SSC 0501-1o. Semestre 2011 Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria Prof. Fernando Santos Osório Email: fosorio [at] { icmc. usp. br, gmail. com } Página Pessoal:
Leia maisErros de Tipo em Pascal Simplifificado
Checagem de Tipos Erros de Tipos em Pascal Simplificado não capturados pela gramática Tarefas de um Type Checker e Conversões de Tipos Sistema de Tipos Checagem Estática X Dinâmica Linguagens Fortemente
Leia mais