Conceitos de Linguagens de Programação
|
|
- Ana Júlia Lage Amarante
- 5 Há anos
- Visualizações:
Transcrição
1 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 2 1
2 Linguagens de Programação: hierarquia de componentes Tipos de Dados representação e operações Expressões Comandos ambientes: abstrações de valores e comandos obtenção de valores fluxo de controle Unidades unidade de execução Programas 3 Unidades [Ghezzi] Estruturas de controle no nível de unidades Unidades subordinadas chamadas explicitamente Procedimentos, funções, métodos Unidades chamadas implicitamente Tratamento de exceções Unidades simétricas Co-rotinas Unidades concorrentes 4 2
3 Semântica t1 P call Q síncrono t3 t1 P ret call t2 Q t2 assíncrono 5 Semântica 6 t1 t3 t1 t3 P P call ack call data Q t2 Q t2 t4 "handshake" "future" 3
4 Semântica t1 P call yield Q t2 cooperativo t3 t5 call yield t4 8 7 Unidades [Sebesta] Blocos Subprogramas Co-rotinas Unidades concorrentes Tratadores de exceções 4
5 Mecanismos de Abstração em LPs Mecanismos de abstração Abstração de processo Abstração de dados Um subprograma é um tipo de abstração de processo Instruções para realizar uma tarefa são agrupadas e tratadas como uma unidade lógica O conceito economiza espaço e esforço de desenvolvimento e codificação 9 Subprogramas Características fundamentais Cada subprograma possui um único ponto de entrada O chamador tem a sua execução suspensa durante a execução do subprograma O fluxo de controle sempre retorna ao ponto de chamada quando termina a execução do subprograma mesmo ambiente, único fluxo 10 5
6 Subprogramas: Definições básicas A definição de um subprograma consiste na descrição de seu cabeçalho e de seu corpo O cabeçalho de um subprograma inclui tipo do subprograma, nome, parâmetros formais, tipo de retorno O corpo de um subprograma é a descrição das ações da abstração do subprograma A chamada de um subprograma é uma requisição explícita para que o subprograma seja executado 11 Subprogramas: Definições básicas A declaração de um subprograma é uma descrição do tipo de abstração (função/procedimento), seu nome e seus parâmetros formais (cabeçalho) Um parâmetro formal é uma variável que aparece no cabeçalho do subprograma e é usada no corpo do subprograma Um parâmetro real representa um valor ou endereço usado na chamada do subprograma 12 6
7 Tipos de Subprogramas: procedimentos e funções Um procedimento atua como um novo comando definido pelo usuário Resultados produzidos via parâmetros ou variáveis não locais Uma função atua como um novo operador definido pelo usuário Função sem efeitos colaterais 13 Questões de Projeto de Subprogramas 14 Variáveis locais: estáticas ou semi-estáticas? Parâmetros Correspondência Métodos de passagem Verificação de tipos Subprogramas passados para outro subprograma Ambiente de referência Verificação de tipos em parâmetros Definição de unidades aninhadas Sobrecarga de subprogramas Subprogramas genéricos 7
8 Variáveis Locais Semi-estáticas (dinâmicas de pilha): Vantagens: a. Suporte a recursão b. Memória para variáveis locais é compartilhada entre alguns subprogramas Desvantagens: Estáticas a. Tempo de alocação, desalocação b. Endereçamento Indireto c. Subprogramas não podem manter "história" Variáveis Locais Exemplos: 1. FORTRAN 77 - estáticas 2. C - static, default é semi-estática 3. Pascal, Java e Ada - semi-estática 8
9 Parâmetros: Correspondência Correspondência entre parâmetros Por posição (positional parameters): mapeiam parâmetros formais e reais em função de sua ordem na lista de parâmetros Por palavra-chave (keyword parameters): mapeiam parâmetros formais e reais através de nomes Exemplo: por posição 17 Correspondência por palavra-chave Exemplo Declaração: procedure SORT(LIST : LIST_TYPE; LENGTH : INTEGER := 100); Chamada 1: SORT(LIST => A, LENGTH => N); Chamada 2: SORT(LIST => A); Avaliação Correspondência por palavra-chave promove maior legibilidade e confiabilidade 18 9
10 Métodos de passagem de parâmetros Modelos semânticos in mode, out mode, inout mode Modelos conceituais de transferência Mover o valor ("fisicamente") Mover um caminho de acesso par o valor 19 Modelos de Passagem de Parâmetros "mover valor" 20 10
11 Métodos de passagem de parâmetros Modelos de implementação Passagem por valor Passagem por resultado Passagem por valor-resultado Passagem por referência Passagem por nome 21 Passagem por valor Ou por passagem física ou por caminho Desvantagem de acesso por caminho: Deve-se proteger contra gravação no subprograma chamado Acessos custam mais (endereçamento indireto) Desvantagem em cópia física: Requer maior armazenamento (espaço duplicado) Custo de transferência (para parâmetros grandes) 22 11
12 Passagem por valor Modo de entrada Parâmetros são copiados em um novo local (armazenamento) no subprograma quando ele começa. Do ponto de vista do subprograma, o acesso é eficiente, mas a cópia não 23 Passagem por resultado Modo de saída O resultado em um subprograma é copiado no parâmetro atual quando o subprograma retorna Pode causar problema quando o mesmo parâmetro é mapeado para múltiplos parâmetros formais, ou quando o parâmetro atual é uma constante, que pode ser alterada quando o programa retorna 24 12
13 Passagem por valor-resultado Modo In-out Combina passagem por valor e passagem por resultado. Também chamado passagem por cópia Passagem por referência Modo In-out Diferente da passagem-por-valor-resultado, um caminho de acesso a dado é passado para o subprograma, não o dado em si Passagem de parâmetros é eficiente, mas o acesso não Pode introduzir alias inesperado quando um parâmetro atual é mapeado para diferentes parâmetros formais, ou quando uma variável global é passada a um subprograma onde a própria variável global é visível 13
14 27 Passagem por nome Modo In-out A ocorrência de um parâmetro formal é textualmente trocada pelo parâmetro atual O método de acesso é ligado à invocação do subprograma, mas a avaliação acontece cada vez que o parâmetro formal é encontrado Se o parâmetro atual é uma variável escalar, então a passagem por nome tem o mesmo comportamento da passagem por referência Se o parâmetro atual é uma constante, é equivalente a passagem por valor Se o parâmetro atual é a referência para um array ou uma expressão com variáveis, então ela é avaliada cada vez que é encontrada. Isso é chamado de avaliação preguiçosa ou ligação tardia (late binding) 28 Implementação Todos os principais métodos de passagem de parâmetro podem ser implementados por meio de pilhas Há diferenças entre passagem por referência e por valor-resultado, sendo que neste último é alocado espaço para o armazenamento (completo) do parâmetro formal. As alterações feitas no parâmetro atual são visíveis somente quando o subprograma termina, mas na passagem por referência reflete as alterações passo a passo Passagem por nome é implementada como uma máscara em segmento de código, que é ligada ao ambiente de referência quando o subprograma é chamado, e é avaliado para cada ocorrência do parâmetro formal 14
15 Exemplo 29 Funções como parâmetros O protótipo de ver checado para o parâmetro atual, que é um subprograma A referência para o subprograma A que é passado para outro subprograma B pode ser: Binding Superficial o ambiente (em B) A é chamado Binding em profundidade o ambiente A é definido Binding Ad Hoc o ambiente onde A é passado para B (onde B é chamado) Bloco estruturado geralmente usa deep binding para facilitar a adoção de escopo estático 30 15
16 Parâmetros que são Subprogramas Questões: 1. Os parâmetros são checados? Primeiras versões de Pascal e FORTRAN 77 não Versões posteriores de Pascal e FORTRAN 90 sim Ada não permite parâmetros em subprogramas Java não permite nomes de métodos serem passados como parâmetros C e C++ passam ponteiros para funções; parâmetros podem ser checados F(g): g é um ponteiro para a função g(parametros) int f(*p()) { Chama-se p } int g(int x) {... } main() { f(g) } 16
17 33 Parâmetros que são Subprogramas 2. Qual é o ambiente de referência correto para um subprograma que foi mandado como parâmetro? Possibilidades: a. É aquele que executou o subprograma Binding Superficial (shallow binding) b. É aquele que declarou o subprograma Binding em Profundidade (deep binding) c. É aquele que passou Binding Ad hoc (nunca usado) Parâmetros que são subprogramas Para linguagens de escopo estático, deep binding é mais natural Para linguagens de escopo dinâmico shallow binding é mais natural 34 17
18 35 Parâmetros que são subprogramas Exemplo: sub1 sub2 sub3 call sub4(sub2) sub4(subx) call subx call sub3 Qual é o ambiente de referencia do sub2 quando ele é chamado em sub4? Shallow binding => sub2, sub4, sub3, sub1 Deep binding => sub2, sub1 Sobrecarga de subprogramas Subprogramas que têm o mesmo nome, mas diferentes protótipos Em Ada o compilador pode distinguir o uso pelo tipo de retorno, portanto o protótipo completo deve ser considerado 36 18
19 Subprogramas Genéricos 37 Polimorfismo significa que a mesma construção pode ter significado diferente de acordo com o contexto Polimorfismo Ad hoc sobrecarga de operadores Polimorfismo Paramétrico um programa genérico que funciona com diferentes tipos de variáveis, de acordo com os parâmetros recebidos Em Ada Unidade genérica para um programa que implementa polimorfismo paramétrico Em C++ Chamado de template em C++ e provê flexibilidade de programação As funções são construídas pelo uso (no header file, não no código fonte) Aspectos de Projetos para Funções 1. Efeitos colaterais são permitidos? a. Parâmetros Two-way (Ada não permite) b. Referência não-local (todas pertmitem) 2. Quais tipos de retorno são permitidos? 38 19
20 Co-rotinas O controle é trocado entre vários processos Um processo é resumed, e não há retorno Geralmente um processo master cria outros processos, e distribui o controle entre eles 39 Esquema 40 20
21 Exemplo 41 Exemplo 42 21
22 Abstrações: suporte Abstração procedimental (subprogramas/ métodos) modos de passagem de parâmetros ambientes de referência: local e global, escopo e visibilidade de componentes proteção de componentes locais sobrecarga de operadores e polimorfismo unidades genéricas 43 Semântica de chamadas e retornos A ligação de subprogramas exige armazenamento de informações sobre: estado da execução no ponto de chamada passagem de parâmetros, dependendo do modo ambiente global de execução ambiente local de execução endereço de retorno Informações são organizadas em um registro de ativação A cada ativação é criada uma instância do registro de ativação e colocada na pilha de execução 44 22
23 Abstração procedimental: execução Requisição A execução ocorre quando é feita uma chamada Uma unidade requisita a execução de outra unidade (chamada) A unidade requisitante suspende sua execução e aguarda o término da execução da unidade chamada Parâmetros As definições/chamadas podem ser parametrizadas Parâmetros reais: valores passados à unidade chamada (argumentos) Parâmetros formais: descrição dos tipos de dados que a abstração pode receber Tipo da abstração: tipo de resultado da execução 45 23
Paradigmas de Linguagens de Programação. Subprogramas
Cristiano Lehrer Características Gerais dos Cada subprograma tem um único ponto de entrada Toda unidade de programa chamadora é suspensa durante a execução do programa chamado, o que implica na existência
Leia maisCapítulo 9. Subprogramas
Capítulo 9 Subprogramas Introdução Dois recursos fundamentais de abstração Abstração de processos Desde o início da história das linguagens de programação Abstração de dados Desde o início dos anos 1980
Leia maisUniversidade Federal Rural de Pernambuco Departamento de Estatística e Informática Subprogramas
Universidade Federal Rural de Pernambuco Departamento de Estatística e Informática Subprogramas Prof. Gláucya Carreiro Boechat glaucyacboechat@gmail.com Paradigmas de Linguagem de Programação Características
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 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 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 maisCompiladores. Gerência de Memória
Compiladores Gerência de Memória Cristiano Lehrer, M.Sc. Atividades do Compilador Arquivo de origem Arquivo de destino Análise Otimização Geração de Código Intermediário Geração de Código Final Síntese
Leia maisLinguagens de Programação Subprogramas
Linguagens de Programação Subprogramas Andrei Rimsa Álvares Sumário Abstrações Subprogramas Parâmetros Passagem de parâmetros Direção da passagem Mecanismos de passagem Momento da passagem ABSTRAÇÕES Linguagens
Leia maisImplementação de subprogramas
Implementação de subprogramas 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 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 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 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 maisLinguagens de Programação Aula 11
Linguagens de Programação Aula 11 Celso Olivete Júnior olivete@fct.unesp.br Na aula passada Uma definição de subprograma descreve as ações representadas pelo subprograma Subprogramas podem ser funções
Leia maisCapítulo 5. Nomes, Vinculações e Escopos
Capítulo 5 Nomes, Vinculações e Escopos Tópicos do Capítulo 5 Introdução Nomes Variáveis O conceito de vinculação Escopo Escopo e tempo de vida Ambientes de referenciamento Constantes nomeadas Introdução
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 maisVerificação de Tipo. Unions. Verificação de tipo estática. Verificação de tipo dinâmica
Verificação de Tipo Atividade que certifica que os operandos de um operador são de tipos compatíveis. São considerados operadores e operandos: operadores usuais (aritméticos, relacionais, etc) subprogramas
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 maisEstruturas de Controle: Nível de Unidades de Programação
Paradigmas de Linguagens I 1 1.5... Estruturas de Controle: Nível de Unidades de Programação As estruturas de controle no nível de unidades de programação são mecanismos de linguagens utilizados para especificar
Leia maisParadigmas de Programação
Paradigmas de Programação Aula 6 Nomes, Vinculações, Verificação de Tipos e Escopos Prof.: Edilberto M. Silva http://www.edilms.eti.br Prof. Edilberto Silva / edilms.eti.br Introdução As linguagens de
Leia maisLinguagens de Programação Nomes, Amarrações e Escopo
Linguagens de Programação Nomes, Amarrações e Escopo Andrei Rimsa Álvares Sumário Nomes Amarrações Escopo NOMES Linguagens de Programação Nomes Conceito mais amplo que variáveis Podem representar Variáveis
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 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 maisNomes, Vinculações, Verificação de Tipos e Escopos. George Darmiton da Cunha Cavalcanti
Nomes, Vinculações, Verificação de Tipos e Escopos George Darmiton da Cunha Cavalcanti (gdcc@cin.ufpe.br) Tópicos Introdução Nomes Variáveis O conceito de vinculação (binding) Verificação de tipos Tipificação
Leia maisVariáveis. Prof. Alberto Costa Neto Linguagens de Programação. Departamento de Computação Universidade Federal de Sergipe
Variáveis alberto@ufs.br de Programação Departamento de Computação Universidade Federal de Sergipe Variáveis Uma vez que o programador tenha entendido o uso de variáveis, ele entendeu a essência da programação.
Leia maisAULA 8 Polimorfismo de: coerção, overloading, inclusão e paramétrico Prof. Dr. Fernando Henrique Campos
Câmpus Santa Helena Curso: Ciência da Computação Disciplina: Programação Orientada a Objetos AULA 8 Polimorfismo de: coerção, overloading, inclusão e paramétrico Prof. Dr. Fernando Henrique Campos Tema
Leia maisUniversidade 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
Leia maisParadigmas de Linguagens de Programação. Suporte para Programação Orientada a Objeto
Suporte para Programação Orientada a Objeto Cristiano Lehrer Categoria das Linguagens que Suportam POO Suporte a POO acrescentado a uma linguagem já existente: C++ (também suporta programação procedural
Leia maisAula 6.
Aula 6 Celso Olivete Júnior olivete@fct.unesp.br Nomes, vinculações e escopos Cap. 5 -Sebesta 2 Introdução LP s imperativas são abstrações da arquitetura de Von Neumann Memória: armazena instruções e dados
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 maisClasses e Objetos. Sintaxe de classe em Java
Classes e Objetos Classes e Objetos A Programação Orientada a Objetos (POO) é uma técnica de programação que se baseia na construção de classes e utilização de objetos. Os objetos são formados por dados
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 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 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 maisPonteiros de Variáveis
Ponteiros de Variáveis C++ permite o armazenamento e a manipulação de valores de endereços de memória. Para cada tipo existente, há um tipo ponteirocapaz de armazenar endereços de memória em que existem
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 maisCompiladores. Análise Semântica
Compiladores Análise Semântica Análise semântica A semântica define o significado dos programas sintaticamente corretos; Por exemplo, em C, a instrução if(a>b) max = a; else max = b; Diz que a expressão
Leia maisNomes, Amarração, Verificação de Tipos, e Escopo
5 Nomes, Amarração, Verificação de Tipos, e Escopo Concepts of Programming Languages, 5/e Robert W. Sebesta Agenda Objetivo desta aula: Introduzir os principais aspectos semânticos de variáveis Palavras-chave
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 maisTipos Abstratos de Dados. Estrutura de Dados
Tipos Abstratos de Dados Tipo Abstrato de Dados ou TAD Idéia principal: desvincular o tipo de dado (valores e operações) de sua implementação: O que o tipo faz e não como ele faz! Vantagens da desvinculação:
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 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 maisPLANO DE UNIDADE DIDÁTICA- PUD
Professor: Marcus Vinícius Midena Ramos Coordenação: Ricardo Argenton Ramos Data: 03/08/2010 Página: 1 de 5 EMENTA: Conceitos básicos de linguagens. Histórico, classificação e principais aplicações de
Leia maisCapítulo 8. Estruturas de Controle no Nível de Sentença
Capítulo 8 Estruturas de Controle no Nível de Sentença Níveis de fluxo de controle Computações são realizadas por meio da avaliação de expressões e da atribuição dos valores a variáveis Para tornar a computação
Leia maisPolimorfismo. O que é polimorfismo?
O que é polimorfismo? Polimorfismo Significa que variáveis podem referenciar mais do que um tipo. Não é um conceito novo e várias linguagens de programação aplicam. Funções são polimórficas quando seus
Leia maisIntrodução à Programação Aula 09. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação
Introdução à Programação Aula 09 Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia de Computação A linguagem C, como qualquer outra linguagem de programação, permite
Leia maisEstudos de Linguagens de Programação - Revisão
Estudos de Linguagens de Programação - Revisão (marinho.mlm@gmail.com) O que é uma Linguagem de Programação? Linguagem usada por uma pessoa para expressar um processo através do qual um computador pode
Leia maisLinguagens de Programação 10 Avaliação de Linguagens
Linguagens de Programação 10 Avaliação de Linguagens Vítor E. Silva Souza (vitorsouza@inf.ufes.br) http://www.inf.ufes.br/ ~ vitorsouza Departamento de Informática Centro Tecnológico Universidade Federal
Leia maisProjeto de Linguagem. Linguagens de Programação
Projeto de Linguagem Renato Ferreira Linguagens de Programação Linguagens são adotadas para preencher uma demada Facilitar uma aplicação outrora difícil/impossível Independente da qualidade da linguagem
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 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 maisParadigmas de Linguagens de Programação. Tipos de Dados Abstratos
Tipos de Dados Abstratos Cristiano Lehrer Conceito de Abstração O conceito de abstração é fundamental em programação. Quase todas as linguagens suportam abstração de processos, através de subprogramas:
Leia maisLinguagens de Programação Aula 12
Linguagens de Programação Aula 12 Celso Olivete Júnior olivete@fct.unesp.br Na aula passada Implementando subprogramas 2 Na aula de hoje Suporte para a programação orientada a objetos 3 Roteiro Introdução
Leia maisCAP. VI ANÁLISE SEMÂNTICA
CAP. VI ANÁLISE SEMÂNTICA VI.1 Introdução Semântica SIGNIFICADO, SENTIDO LÓGICO, COERÊNCIA,... Diferença entre SINTAXE e SEMÂNTICA Sintaxe : descreve as estruturas de uma linguagem; Semântica : descreve
Leia maisLinguagens de Programação
Linguagens de Programação Fabio Mascarenhas - 2015.2 http://www.dcc.ufrj.br/~fabiom/lp Ambientes Substituição é uma semântica inspirada na forma como calculamos expressões algébricas, mas vimos que ela
Leia maisPOO e C++: Herança e Polimorfismo
POO e C++: Herança e Polimorfismo Márcio Santi Luiz Fernando Martha Conceito de Herança em POO Recurso que torna o conceito de classe mais poderoso; Permite que se construa e estenda continuamente classes
Leia maisLinguagens de Programação. Introdução. Carlos Bazilio
Linguagens de Programação Introdução Carlos Bazilio carlosbazilio@id.uff.br http://www.ic.uff.br/~bazilio/cursos/lp ??? Pascal aux := 0 for i:=1 to 10 do aux := aux + i 10: i = 1 20: if i > 10 goto 60
Leia maisProgramação Orientada a Objetos. Métodos e Atributos. Métodos. Métodos. Alexandre César Muniz de Oliveira. Parte III
Programação Orientada a Objetos Alexandre César Muniz de Oliveira Métodos e Atributos Parte III Métodos [mod] tipo nome ([tipo arg]) [throws exc]{ [mod]: zero ou mais modificadores separados por espaços
Leia maisPersistência. Prof. Alberto Costa Neto Linguagens de Programação. Departamento de Computação Universidade Federal de Sergipe
Persistência alberto@ufs.br de Programação Departamento de Computação Universidade Federal de Sergipe Retrospectiva Quanto ao Tempo de Vida Variáveis Estáticas Variáveis Stack-Dinâmicas Variáveis Heap-Dinâmicas
Leia maisGabriel Giorisatto De Angelo Luiz Otávio Gerhardt Fernandes
Gabriel Giorisatto De Angelo Luiz Otávio Gerhardt Fernandes Histórico Desenvolvida em 2012 por Jeff Bezanson, Stefan Karpinski, Viral B. Shah, Alan Edelman Gratuita, Open Source e licenciada sob a Licença
Leia maisLinguagem de Programação I. Aula 10 Funções
Linguagem de Programação I Aula 10 Funções Da Aula Anterior Tipos de dados básicos e operadores em C Declaração de variáveis e modificadores de tipo Estruturas de Controle Arrays unidimensionais Geração
Leia maisParadigmas de Linguagens
Paradigmas de Linguagens Aula 2: Tipos de dados Professora Sheila Cáceres Tipos de dados Dados são a matéria prima da computação junto com os programas. LPs precisam manipular dados. LPS utilizam os conceitos
Leia maisCONCEITOS DE LINGUAGENS DE PROGRAMAÇÃO
CONCEITOS DE LINGUAGENS DE PROGRAMAÇÃO ROTEIRO 1. INTRODUÇÃO 2. LINGUAGENS IMPERATIVAS 1. CONCEITO 2. PARADIGMA IMPERATIVO 3. ORIGENS 4. MODELO COMPUTACIONAL 1. ARQUITETURA DE VON NEUMANN 2. CARACTERISTICAS
Leia maisModularidade - Funções e Procedimentos
Modularidade - Funções e Procedimentos José Gustavo de Souza Paiva Problema Em diversas situações, é preciso executar uma tarefa específica diversas vezes em um programa, variando apenas os dados de entrada
Leia maisParadigmas de Linguagens de Programação. Tipos de Dados
Tipos de Dados Cristiano Lehrer Introdução (1/2) 1956: FORTRAN I 1983: ADA INTEGER, REAL, arrays. Usuário pode criar um único tipo para cada categoria de variáveis no espaço de problemas e deixar o sistema
Leia maisINF1005: PROGRAMAÇÃO I. Capítulo 12. Ivan Mathias Filho Funções Matemáticas
INF1005: PROGRAMAÇÃO I Capítulo 12 Ivan Mathias Filho ivan@inf.puc-rio.br 1 Funções Matemáticas Função é uma relação de um ou vários valores de argumentos de entrada em um ÚNICO resultado de saída. O conjunto
Leia maisParadigmas de Linguagem de. Programação Profª. Roberta B Tôrres de programação referem-se a:
Paradigmas de Linguagem de Programação Conceitos Elementares Profª. Roberta B Tôrres rbtorresiff@gmail.com Conceitos Elementares de uma Linguagem de Programação Os conceitos mais elementares, suportados
Leia maisLinguagens de Programação. Rotinas, Modos e Tipos de Passagem de Parâmetros. Carlos Bazilio
Linguagens de Programação Rotinas, Modos e Tipos de Passagem de Parâmetros Carlos Bazilio bazilio@ic.uff.br http://www.ic.uff.br/~bazilio/cursos/lp Passagem de Parâmetros Os parâmetros são um canal de
Leia maisRESUMO DA DISCUSSÃO SOBRE LINGUAGENS DE PROGRAMAÇÃO DO DIA 26 DE OUTUBRO DE 2006
Universidade Federal do Rio Grande do Sul Instituto de Informática Bacharelado em Ciência da Computação Disciplina de Modelos de Linguagens de Programação Profa. Dra. Érika Cota RESUMO DA DISCUSSÃO SOBRE
Leia maisLinguagens de Programação Conceitos e Técnicas. Variáveis e Constantes
Linguagens de Programação Conceitos e Técnicas Variáveis e Constantes Variáveis Uma vez que o programador tenha entendido o uso de variáveis, ele entendeu a essência da programação. [Dijkstra] Abstração
Leia maisProgramação Avançada C++ Slide 12 Nielsen Castelo Damasceno
Programação Avançada C++ Slide 12 Nielsen Castelo Damasceno Visibilidade de membros Membro da classe derivada pode usar os membros públicos ( public ) e protegidos ( protected ) da sua classe base (como
Leia maisDISCIPLINA: Programação de Computadores II
DISCIPLINA: Programação de Computadores II CÓDIGO: ECOM.007 Validade: a partir do 1º Semestre de 007 Carga Horária: Total: 30 horas-aula Semanal: 0 aulas Créditos: 0 Modalidade: Teórica Classificação do
Leia maisEstruturas de Dados. Módulo 4 Funções. 9/8/2005 (c) Dept. Informática - PUC-Rio 1
Estruturas de Dados Módulo 4 Funções 9/8/2005 (c) Dept. Informática - PUC-Rio 1 Referências Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora Campus (2004)
Leia maisUniversidade Federal de Uberlândia Faculdade de Computação. Linguagem C: funções
Universidade Federal de Uberlândia Faculdade de Computação Linguagem C: funções Prof. Renato Pimentel 1 Subprogramas Subprograma: programa que auxilia o programa principal na realização de uma determinada
Leia mais3. 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.7. Funções 3.7.1. Introdução 3.7.2. Uso de
Leia maisGroovy. Cleisson Santos Guterres Lucas Augusto Santos Renato Menezes Machado
Groovy Cleisson Santos Guterres Lucas Augusto Santos Renato Menezes Machado Introdução Groovy é uma linguagem de programação orientada a objeto para a plataforma Java. É dinamicamente compilada na JVM,
Leia maisEderson Luiz da Silva Ciência da Computação. Algoritmos e Programação
Ederson Luiz da Silva Ciência da Computação Algoritmos e Programação Linguagem de programação Linguagem de Programação Linguagem de máquina http://www.assemblyprogressivo.net/p/curso.html Linguagem de
Leia maisSumário. 1.1 Variáveis Globais e Locais Passagem de Parâmetro (por valor por referência) 1
Sumário Sobre as Autoras ix Introdução xi 1 Sub-rotinas 1 1.1 Variáveis Globais e Locais 1 1.2 Passagem de Parâmetro (por valor por referência) 1 2 Vetores e Matrizes 7 2.1 Vetores 7 2.2 Matrizes 8 2.2.1
Leia maisLinguagens de Programação
Linguagens de Programação Prof. Miguel Elias Mitre Campista http://www.gta.ufrj.br/~miguel Parte IV Introdução à Programação em C++ (Continuação) Relembrando da Última Aula... Polimorfismo Mais exemplos
Leia maisLinguagens de Programação Aula 10
Linguagens de Programação Aula 10 Celso Olivete Júnior olivete@fct.unesp.br Na aula passada As sentenças de controle das LP imperativas ocorrem em diversas categorias: seleção, seleção múltipla, iteração
Leia maisRotinas, Modos e Tipos de Passagem de Parâmetros
Linguagens de Programação Rotinas, Modos e Tipos de Passagem de Parâmetros Carlos Bazilio carlosbazilio@id.uff.br http://www.ic.uff.br/~bazilio/cursos/lp Chamada de Rotinas Rotina f Rotina g(w) g (k) Passagem
Leia maisDEM-Sec.Sistemas Tipos Abstractos de Informação 2006 / Programação
Funções DEM-Sec.Sistemas Tipos Abstractos de Informação 2006 / 07 1 Programação modular Programação modular: divir um programa em módulos mais pequenos Função: um conjunto de instruções que desempenham
Leia maisRedes de Computadores. Fundamentos de Sistemas Operacionais - 2º Período
Redes de Computadores Fundamentos de Sistemas Operacionais - 2º Período PARTE II: PROCESSOS E THREADS SUMÁRIO 6. THREAD: 6.1 Introdução; 6.2 Ambiente Monothread; 6.3 Ambiente Multithread; 6.4 Arquitetura
Leia maisThe Cyclops Project. Introdução: C++
The Cyclops Project Introdução: C++ Aula 1 Visão Geral Histórico da Linguagem Programa C++: header, source função main() GCC Arquivos objeto, bibliotecas dinâmicas e estáticas #include, #define, namespaces,
Leia maisProcessos Concorrentes
Processos Concorrentes Walter Fetter Lages w.fetter@ieee.org Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Engenharia Elétrica ENG04008 Sistemas de Tempo Real Copyright
Leia maisImplementação da programação modular II
Implementação da programação modular II - 1 Implementação da programação modular II Aula 11 Agenda Declaração e definição de dados Os conceitos relacionados com a ligação de programas Os elementos essenciais
Leia maisIntrodução. Paradigmas de Linguagens. Introdução. Tipos de Dados Primitivos. Prof. Ms. Luiz Alberto Contato:
Paradigmas de Linguagens Prof. Ms. Luiz Alberto Contato: lasf.bel@gmail.com Baseada no material do prof. Celso Olivete Júnior Introdução Um tipo de dado define uma coleção de dados e um conjunto de operações
Leia maisExplicação do programa:
Disciplina: Introdução à Programação. IPRJ/UERJ Professora: Sílvia Mara da Costa Campos Victer Índice: Aula10 Sub-rotina: Em algoritmos Em C Sub-rotinas subprograma - programação modularizada Definição:
Leia maisLinguagens de Programação 2 Amarrações
Linguagens de Programação 2 Amarrações Vítor E. Silva Souza (vitor.souza@ufes.br) http://www.inf.ufes.br/~vitorsouza Departamento de Informática Centro Tecnológico Universidade Federal do Espírito Santo
Leia maisAula 05. Modularização Função Subrotina Recursividade
Logo Aula 05 Modularização Função Subrotina Recursividade 2 Modularização A modularização é um processo que aborda os aspectos da decomposição de algoritmos em módulos. Módulo é um grupo de comandos, constituindo
Leia maisLinguagem de Programação III
Linguagem de Programação III Aula-5 Estruturas de Decisão e Controle. Arrays em Java Prof. Esbel Tomás Valero Orellana Até Aqui Modelos e POO Classes e sua implementação em Java Encapsulamento Tipos de
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 maisUm Modelo Semântico para a Linguagem Java Jorge Henrique Cabral Fernandes CIC-UnB Junho de Introdução
Um Modelo Semântico para a Linguagem Java Jorge Henrique Cabral Fernandes CIC-UnB Junho de 2004 Introdução Este texto apresenta um modelo semântico inicial para um subconjunto da linguagem Java. A Figura
Leia maisConceitos de Linguagens de Programação - Características. Paavo Soeiro
Conceitos de Linguagens de Programação - Características Paavo Soeiro Motivação Para que possa escolher uma linguagem apropriada ao problema. Melhorar o entendimento da linguagem utilizada. Facilitar o
Leia mais3) A função de Fibonacci, F: N N, no conjunto dos naturais, é definida recursivamente por F(0) = 0, F(1) = 1, e F(n) = F(n-1) + F(n-2) para n > 1
1) Analise a(s) afirmativa(s) abaixo. Universidade Federal do Estado do Rio de Janeiro Processo Seletivo Discente Transferência Externa 009 Centro de Ciências Exatas e Tecnologia - CCET I) Correção - os
Leia maisTipos de Dados. George Darmiton da Cunha Cavalcanti
Tipos de Dados George Darmiton da Cunha Cavalcanti (gdcc@cin.ufpe.br) Tópicos Introdução Tipos de Dados Primitivos Tipos Cadeia de Caracteres Tipos Definidos pelo Usuário Tipos Matriz Matrizes Associativas
Leia maisIntrodução à Ciência da Computação. Sumário. Modularização de Algoritmos. Agradecimentos. Modularização de Algoritmos e Funções em C
Agradecimentos Introdução à Ciência da Computação e Funções em C Parte dos slides a seguir são adaptações dos originais: de A. L. V. Forbellone e H. F. Eberspächer do Prof. Rudinei Goularte Prof. Ricardo
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 mais