Introduzindo um Ambiente de Programação Visual para a Máquina Geométrica

Tamanho: px
Começar a partir da página:

Download "Introduzindo um Ambiente de Programação Visual para a Máquina Geométrica"

Transcrição

1 Introduzindo um Ambiente de Programação Visual para a Máquina Geométrica Marcos B. Cardoso, Renata H. Sander Reiser, Antônio C. da R. Costa, Lucas L. Borba, Diego G. Prestes Escola de Informática Universidade Católica de Pelotas (UCPEL) Rua Félix da Cunha, Pelotas RS Brazil {mbcardo,reiser,rocha,lucaslb,dprestes}@atlas.ucpel.tche.br Abstract. This paper continues the work done on the specification of a visual programming language for the Geometric Machine. The recursive processes are specified, with emphasis in the spatial and temporal constructors. It is also presented the environment of visual programming that is in development. Resumo. Este trabalho dá continuidade à especificação da linguagem de programação visual para o modelo de Máquina Geométrica. São especificados os processos recursivos, com ênfase nos construtores espacial e temporal. Apresenta-se também o ambiente de programação visual que está em desenvolvimento. 1. Introdução Esse trabalho introduz uma Linguagem Visual para a Máquina Geométrica (LVMG), com enfoque na especificação de processos recursivos e no desenvolvimento de um ambiente de programação visual. A especificação dos processos segue o modelo sugerido por GENGED [Bardohl e Ermel 2001], que propõe a especificação de um alfabeto visual (AV) e uma gramática visual (GV). No modelo MG, os processos são rotulados por posições do espaço geométrico e indexados por expressões indicando seus construtores. A representação gráfica facilita esta caracterização e a função posição Γ torna explícito o subconjunto de posições de memória envolvidas na definição de cada processo. Neste sentido, o modelo permite dois tipos de recursão: a temporal - induzida pela construção indutiva e a completação da estrutura ordenada do modelo MG; e a espacial - obtida pela modelagem da memória por um espaço geométrico. A especificação da LVMG é construída com o objetivo de explorar a programação paralela síncrona dos processos representados no modelo MG incluindo a recursão espacial e a temporal. Está sendo modelado um ambiente visual implementado na linguagem de programação Python. 2. LVMG As linguagens visuais [Marriott and Meyer 1998] são usadas em muitas áreas de aplicação, incluindo aprendizagem de conhecimento, aplicações de técnicas de programação, adaptação de programas, desenvolvimento de interfaces gráficas e ainda análise e desenvolvimento de sistemas paralelos e distribuídos como o modelo MG. Uma linguagem visual é um conjunto de todos os diagramas que podem ser derivados da aplicação das regras gramaticais a um diagrama inicial.

2 A especificação da LVMG consiste na construção do AV, composto de símbolos e conexões, e da GV, onde ocorre a especificação das regras de construção. Uma GV é representada por uma gramática de grafos que consistem num diagrama inicial e um conjunto de regras que geram outros diagramas. Estas especificações encerram a etapa que precede a especificação do editor gráfico, responsável pela construção de diagramas sintáticos e dirigidos da LVMG. São considerados dois tipos de sintaxe para construção do alfabeto e da gramática de uma LV. A sintaxe abstrata (SA) é responsável pela estrutura lógica das expressões da linguagem, consistindo de diagramas especiais definidos por grafos dirigidos. A sintaxe concreta (SC), orienta a definição do layout de cada diagrama para manipulação do usuário. Nesta abordagem, o AV é representado por um grafo, e a GV é representada por uma gramática de grafos. A construção de cada símbolo do AV consiste na construção de um grafo onde os objetos (nodos, arestas) estão relacionados por atributos e conexões Alfabeto para LVMG Serão apresentados nesta seção, grafos do AV representando os processos resultantes dos produtos seqüencial e paralelo, incluindo suas versões recursiva e parcial Processos Seqüenciais Resumidamente, apresenta-se o objeto-processo seqüencial resultante da aplicação do construtor produto seqüencial. A Fig. 1 mostra o grafo do tipo processo seqüencial. Figura 1. Processo Seqüencial Pela sintaxe abstrata, o diagrama de representação do produto seqüencial é definido sempre que se puder explicitar os dois objetos e os conectores que o constroem. Tanto o primeiro (identificado por um objeto-processo acrescido do conector para ) quanto o segundo fator (identificado por um objeto-processo acrescido do conector de ) são subgrafos gerados pela LV representando processos parciais ou elementos do alfabeto visual. Na sintaxe concreta o produto seqüencial é representado por dois nodos onde eles se concatenam formando um novo processo. O diagrama é composto também pelas funções de inclusão, de dois argumentos, identificados neste caso pelas expressões incluir_nome e comb_desl. A instanciação de um processo seqüencial a processos elementares está descrita em [Cardoso et al., 2002].

3 Processos Seqüenciais Parciais O grafo que modela um produto seqüencial parcial é representado por dois sub-grafos onde um deles é equivalente ao Processo Identidade Skip. Neste caso, reduz-se a representação, sendo o processo seqüencial parcial representado por um grafo que possui um subgrafo representando um objeto-processo (subgrafo gerados pela LV representando processos ou elementos do alfabeto visual) e uma conexão (subentendida como o Processo Identidade). Pela sintaxe abstrata, o diagrama de representação do processo seqüencial parcial é definido sempre que se puder explicitar um dos objetos e o conector. Neste caso, tem-se o objeto-processo é acrescido do conector para tem-se a representação do processo seqüencial parcial à direita; e o objeto-processo é acrescido do conector de tem-se a representação do processo seqüencial parcial à esquerda. Na sintaxe concreta as transformações são definidas por funções unárias, no caso funções deslocamento (desl_dir e desl_esq) e funções de inclusão (inclui_ndir e inclui_nesq). O diagrama da Fig. 3 representa processo seqüencial parcial à direita (PSPD). Da mesma forma, na Fig. 4, tem-se o diagrama para representação do processo seqüencial parcial à esquerda(pspe) na LVMG. Figura 3. PSPD Figura 4. PSPE Processos Recursivos Seqüenciais Pela metodologia indutiva de construção, a execução de um processo define um subconjunto enumerável K (p.ex., o conjunto dos naturais estendidos), cujos elementos expressam o tempo de execução dos processos parciais que representam suas aproximações na estrutura ordenada do modelo MG. Considerando-se o conjunto enumerável K (indexadores de recursão) e o conjunto de processos (identificando os fatores de recursão), define-se o operador recursivo seqüencial. A seguir, mostra-se a representação dos processos recursivos seqüenciais no alfabeto da LVMG. O objeto-processo define o fator de recursão e possui um conector fator_rec_seq a fim de se identificar o nome do fator. O objeto-atributo identifica o indexador de recursão e possui dois conectores: o conector n que identifica a variável (nome) e conector controle_rec_seq que indica o intervalo (n). A sintaxe concreta é dada através de um grafo, o qual é representado por um nodo e um fator de recursão K. O diagrama é composto pela função de inclusão dos argumentos identificados, neste caso, pelas expressões ins_rec_seq e nome_rec_seq, e pelo fator de recursão. Na Fig. 5 está representando o processo recursivo seqüencial.

4 Figura 5. Processo recursivo seqüencial Processos Concorrentes O grafo que representa processos concorrentes (resultante do produto paralelo) é apresentado na Fig. 6. Pela SA, o diagrama de um processo concorrente é definido sempre que se puder explicitar os dois objetos-processo, as correspondentes posições de memória afetadas pelas suas execuções e os conectores que o constroem. Tanto o primeiro (identificado por um objeto-processo acrescido do conector fator_inf ) quanto o segundo (identificado por um objeto-processo acrescido do conector fator_sup ) são subgrafos gerados pela LV. Na SC o diagrama para processos concorrentes consiste num grafo formado por dois subgrafos definindo objetosprocesso. Cada objeto_processo P possui um objeto-atributo Γ (P) representado por uma janela. Nesta janela é indicado o conjunto de posições de memória afetadas quando de sua execução. O grafo que representa o produto paralelo só pode ser construído quando os conjuntos, obtidos pela aplicação da função posição Γ, são disjuntos. Neste caso, os subgrafos estão limitados por barras grifadas, verticais e paralelas e a especificação do diagrama é completada pela composição das funções de dois argumentos que retornam um argumento: inserepp e incluipp_nome. Figura 6. Processo concorrente Processo Concorrente Parcial No modelo MG, um processo concorrente parcial é definido como um processo concorrente em que um dos seus objetos-processo é um processo identidade. Por definição, Γ(Skip) = Ø, ou seja, o Processo Identidade é sempre concorrente com os demais processos computacionais. Neste caso, reduz-se a representação, sendo o processo concorrente parcial representado por um diagrama que possui um subgrafo representando um objeto-processo (subgrafo gerados pela LV representando processos ou elementos do AV). Pela SA, o diagrama de representação do processo concorrente

5 parcial é definido sempre que se puder explicitar um dos objetos e o conector que o constrói. Neste caso, 1. se o objeto-processo é acrescido do conector fator_sup, tem-se a representação do processo concorrente parcial superior; e 2. se objeto-processo é acrescido do conector fator_inf, tem-se a representação do processo concorrente parcial inferior. Cada subgrafo está limitado por barras grifadas, verticais e paralelas. As transformações são definidas por funções unárias, no caso funções inspp_sup e inspp_inf e as funções nomepp_sup e nomepp_inf. Veja Fig. 7, que mostra um processo concorrente parcial superior instanciado ao processo elementar d k. Figura 7. Processo concorrente parcial superior Processo Recursivo Concorrente A definição recursiva espacial de processos concorrentes é obtida pela escolha de um conjunto enumerável de indexadores de posições do espaço geométrico do modelo MG. A representação na SA de um processo recursivo concorrente é definida por dois objetos e dois arcos conectores. O primeiro é o objeto-processo representando um processo concorrente parcial denominado fator de recursão. Cada fator de recursão possui um arco conexão, identificado pela expressão fator_rec_para, com destino no objeto-processo resultante. O outro é um objeto-atributo denominado iteração, que possui dois arcos de conexão (ambos com origem no objeto-atributo): o arco identificado por n que liga este atributo ao conjunto indutivo que controla a recursão (por exemplo N ), e o arco controle_recur_para que liga este atributo ao objetoprocesso resultante. Na SC as funções de inclusão, são dadas pelas expressões ins_rec_para e nome_rec_para, como se pode ver no diagrama da Fig. 8. Figura 8. Processo recursivo paralelo

6 2.2. Especificação da Gramática para LVMG As regras de construção apresentadas nesta seção referem-se aos produtos seqüencial e paralelo e estão divididas em duas etapas, identificadas como a preparação e a realização. Cada etapa é modelada por uma transformação entre subgrafos definidos no vocabulário da LVMG. Salienta-se, entretanto, que para todos os construtores representados no modelo MG tem-se a correspondente regra na gramática da LVMG Especificação da Regra de Construção do Processo Recursivo Seqüencial Na preparação da regra de construção do processo recursivo seqüencial tem-se a construção dos grafos que modelam os dois objetos, um referente ao fator de recursão e outro referente ao indexador de recursão. Na sintaxe concreta os objetos são representados por subgrafos identificados por funções, sendo o objeto-processo representado por nomerec_seqproc e insrec_seqproc, e o objeto-atributo representado por nomerec_seqindex e insrec_seqindex. Esta etapa define uma restrição (condição previamente satisfeita) para aplicação da etapa de realização da regra gramatical que define o produto recursivo seqüencial. A construção gráfica desta etapa está representada na Fig. 9. Figura 9. Preparação da construção do processo recursivo seqüencial A execução propriamente dita da regra, ocorre na etapa de realização, no lado esquerdo desta regra estão o processo recursivo seqüencial sem indexador de recursão e um processo recursivo seqüencial sem fator de recursão, ambos resultantes da etapa de preparação. A fase de realização torna explícita a fase de conclusão desta regra gramatical que define o operador recursivo seqüencial (veja Fig. 10). Figura 10. Realização da construção do processo recursivo seqüencial As funções de dois argumentos que retornam um argumento e estão envolvidas na especificação desta etapa são: incluirecseq e combrecseq.

7 2.2.2 Especificação da Regra de Construção do Produto Recursivo Concorrente Na preparação da regra de construção referente à recursão espacial paralela, são definidos as representações para processos parciais relacionadas com o fator de recursão e o controle de recursão. Desta fase resultam o objeto-processo denominado recursão paralela sem controle (RPSC) e o objeto-atributo, denominado recursão paralela sem fator (RPSF). Na SC os diagramas representando processo tais parciais são identificados por barras verticais paralelas entre as quais está o objeto-processo, acrescido de uma flecha quebrada introduzindo o objeto-atributo. O objeto-processo é identificado pelas funções nomerec_paraproc e insrec_paraproc. O objeto-atributo possui como funções nomerec_paraindex e insrec_paraindex. Na Fig. 11, mostram-se os objetos e suas respectivas conexões envolvidas na transformação dos grafos desta etapa e da etapa de realização, onde efetivamente é aplicada a regra. Figura 11. A regra de construção do processo recursivo seqüencial 3. Implementação do ambiente visual para o modelo MG Optou-se pela linguagem interpretada Python, puramente orientada a objetos, possibilitando que usuários sem experiência em programação possam facilmente desenvolver aplicações. Além disso, é uma linguagem não tipada onde não existe o conceito de variável (uma variável no Python é apenas um nome que faz referência a um ou mais objetos). O interpretador de Python e sua extensa biblioteca padrão estão disponíveis na forma de código fonte ou binário para a maioria das plataformas, e podem ser distribuídos livremente. Além disso, este interpretador é facilmente extensível incorporando novas funções e tipos de dados implementados em C ou C++ (ou qualquer outra linguagem acessível a partir de C. A linguagem também oferece vários módulos contendo bibilotecas gráficas como wxframe, wxmenu, wxpanel, wxshapecanvas e wxpython, que disponibilizam ferramentas com o intuito de agrupar os seguintes componentes: 1. Barra de menus: permite o acesso as opções do ambiente; 2. Barra de status: informa ao usuário a função de cada menu; 3. Barra de ferramentas: localiza os botões que acessam os objetos gráficos; 4. Ambiente de trabalho: ambiente onde são criados os processos do modelo MG.

8 5. Módulo MyApp: usa a função wxapp para a inicialização do programa. Dentro dessa classe é feita a chamada para a outra classe denominada MyFrame contendo os dados de criação da tela e a base do programa. 6. Módulo MyFrame: contém basicamente toda a informação do programa. Pela aplicação da função wxframe, é permitido inserir objetos na tela. Além disso, criou-se um menu de opções na parte superior e uma barra de status na parte inferior, para deter informações adicionais sobre os itens do menu. Foi modelada uma barra de ferramentas à esquerda, utilizando a função wxpanel (função de criação de tela), usada para colocação dos botões para criação dos objetos. No wxshapecanvas, posicionado à direita da tela, serão colocados os objetos gráficos. 7. Módulo MyEvent: é uma extensão do wxshapecanvas que usa a função wxshapeevthandler, para manipular eventos do módulo OGL. A princípio, funciona somente para a seleção de objetos e seus redimensionamentos. Na última etapa de preparo do ambiente de programação visual foram usados os eventos, que são comandos pré-definidos, executados quando alguma ação na tela é realizada, viabilizando o gerenciamento das funções dentro do programa. 4. Conclusão O modelo GM é uma máquina abstrata, com memória infinita e tempo de acesso constante, desenvolvida com o objetivo de prover uma análise semântica para computações (parciais) de algoritmos (recursivos) da científica envolvendo concorrência e não-determinismo. A linguagem de programação textual induzida pela estrutura ordenada do modelo MG podem ser facilmente transcritos por diagramas em LVMG. Para implementação do ambiente está sendo criado na linguagem Python e utilizando a biblioteca gráfica WXPython. Referência Bardohl, R. and Ermel, C. (2001) Visual Specification and Parsing of a Statechart Variant using GENGED. In: Symposium on Visual Languages and Formal Methods, Stresa, Italy, September, p Cardoso, M. and Reiser, R. and Costa, A. (2002) Uma Linguagem Visual para Processos Computacionais Modelados na Máquina Geométrica In: Encontro Regional de Matemática Aplicada e Computacional, Brasil, Junho. Marriott, K. and Meyer, B. (1998) Visual Language Theory. Springer.

Utilizando a Programação Visual no Modelo de Máquina Geométrica

Utilizando a Programação Visual no Modelo de Máquina Geométrica Utilizando a Programação Visual no Modelo de Máquina Geométrica Renata S. Reiser, Marcos B. Cardoso, Graçaliz P. Dimuro Universidade Católica de Pelotas, Escola de Informática - NAPI, Pelotas, Brazil,

Leia mais

Especificação dos Padrões de Controle de Fluxo em NPDL

Especificação dos Padrões de Controle de Fluxo em NPDL Especificação dos Padrões de Controle de Fluxo em NPDL MAC5861 - Modelagem de Dados kellyrb@ime.usp.br Departamento de Ciência da Computação Instituto de Matemática e Estatística (IME) Universidade de

Leia mais

Linguagens Formais e Autômatos P. Blauth Menezes

Linguagens Formais e Autômatos P. Blauth Menezes Linguagens Formais e Autômatos P. Blauth Menezes blauth@inf.ufrgs.br Departamento de Informática Teórica Instituto de Informática / UFRGS Linguagens Formais e Autômatos - P. Blauth Menezes 1 Linguagens

Leia mais

Introdução. Compiladores Análise Semântica. Introdução. Introdução. Introdução. Introdução 11/3/2008

Introdução. Compiladores Análise Semântica. Introdução. Introdução. Introdução. Introdução 11/3/2008 Compiladores Análise Semântica Fabiano Baldo Análise Semântica é por vezes referenciada como análise sensível ao contexto porque lida com algumas semânticas simples tais como o uso de uma variável somente

Leia mais

sumário 1 introdução e conceitos básicos 1 2 noções de lógica e técnicas de demonstração introdução à matemática discreta...

sumário 1 introdução e conceitos básicos 1 2 noções de lógica e técnicas de demonstração introdução à matemática discreta... sumário 1 introdução e conceitos básicos 1 1.1 introdução à matemática discreta... 2 1.2 conceitos básicos de teoria dos conjuntos... 3 1.2.1 conjuntos...3 1.2.2 pertinência...5 1.2.3 alguns conjuntos

Leia mais

Linguagens Regulares. Prof. Daniel Oliveira

Linguagens Regulares. Prof. Daniel Oliveira Linguagens Regulares Prof. Daniel Oliveira Linguagens Regulares Linguagens Regulares ou Tipo 3 Hierarquia de Chomsky Linguagens Regulares Aborda-se os seguintes formalismos: Autômatos Finitos Expressões

Leia mais

CAP. VI ANÁLISE SEMÂNTICA

CAP. 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 mais

Mecanismos de Interrupção e de Exceção, Barramento, Redes e Sistemas Distribuídos. Sistemas Operacionais, Sistemas

Mecanismos de Interrupção e de Exceção, Barramento, Redes e Sistemas Distribuídos. Sistemas Operacionais, Sistemas Arquitetura de Computadores, Arquitetura de Computadores Organização de Computadores, Conjunto de Instruções, Sistemas Operacionais, Sistemas Operacionais, Sistemas Mecanismos de Interrupção e de Exceção,

Leia mais

Programação de Computadores

Programação de Computadores Programação de Computadores Instituto de Computação UFF Departamento de Ciência da Computação Otton Teixeira da Silveira Filho Conteúdo Alguns Conceitos sobre Linguagens Conceito de Algoritmo Pseudocódigo

Leia mais

Linguagens Formais e Autômatos P. Blauth Menezes

Linguagens Formais e Autômatos P. Blauth Menezes Linguagens Formais e Autômatos P. Blauth Menezes blauth@inf.ufrgs.br Departamento de Informática Teórica Instituto de Informática / UFRGS Matemática Discreta para Ciência da Computação - P. Blauth Menezes

Leia mais

FACULDADE LEÃO SAMPAIO

FACULDADE LEÃO SAMPAIO FACULDADE LEÃO SAMPAIO Paradigmas de Programação Curso de Análise e Desenvolvimento de Sistemas Turma: 309-5 Semestre - 2014.2 Paradigmas de Programação Prof. MSc. Isaac Bezerra de Oliveira. 1 PARADIGMAS

Leia mais

Algoritmos e Programação

Algoritmos e Programação ESTADO DE MATO GROSSO SECRETARIA DE ESTADO DE CIÊNCIA E TECNOLOGIA UNIVERSIDADE DO ESTADO DE MATO GROSSO CAMPUS UNIVERSITÁRIO DE SINOP FACULDADE DE CIÊNCIAS EXATAS E TECNOLÓGICAS CURSO DE ENGENHARIA ELÉTRICA

Leia mais

Introdução à Programação

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

Leia mais

Introdução Diagrama de Classes Diagrama de Seqüência Diagrama de Atividades. Diagramas UML. Classe, Seqüência e Atividades. Marcio E. F.

Introdução Diagrama de Classes Diagrama de Seqüência Diagrama de Atividades. Diagramas UML. Classe, Seqüência e Atividades. Marcio E. F. Diagramas UML Classe, Seqüência e Atividades Marcio E. F. Maia Disciplina: Engenharia de Software Professora: Rossana M. C. Andrade Curso: Ciências da Computação Universidade Federal do Ceará 15 de maio

Leia mais

Linguagens de Programação Funcional

Linguagens 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 mais

CP Compiladores I Prof. Msc.. Carlos de Salles

CP Compiladores I Prof. Msc.. Carlos de Salles CP 5017.9 Prof. Msc.. Carlos de Salles 1 - EMENTA O Processo de Compilação. Deteção e Recuperação de Erros. Introdução à geração de Código Intermediário. Geração de Código de Máquina. Otimização. Uma visão

Leia mais

CAPÍTULO 5 LINGUAGEM LEGAL E EXTENSÕES PROPOSTAS

CAPÍTULO 5 LINGUAGEM LEGAL E EXTENSÕES PROPOSTAS CAPÍTULO 5 LINGUAGEM LEGAL E EXTENSÕES PROPOSTAS Os operadores de manipulação de campos geográficos implementados neste trabalho tiveram como ambiente de desenvolvimento a Linguagem Espacial para Geoprocessamento

Leia mais

Algoritmos e Programação

Algoritmos e Programação ESTADO DE MATO GROSSO SECRETARIA DE ESTADO DE CIÊNCIA E TECNOLOGIA UNIVERSIDADE DO ESTADO DE MATO GROSSO CAMPUS UNIVERSITÁRIO DE SINOP FACULDADE DE CIÊNCIAS EXATAS E TECNOLÓGICAS Algoritmos e Programação

Leia mais

SUMÁRIO. Fundamentos Árvores Binárias Árvores Binárias de Busca

SUMÁRIO. Fundamentos Árvores Binárias Árvores Binárias de Busca ÁRVORES SUMÁRIO Fundamentos Árvores Binárias Árvores Binárias de Busca 2 ÁRVORES Utilizadas em muitas aplicações Modelam uma hierarquia entre elementos árvore genealógica Diagrama hierárquico de uma organização

Leia mais

ÍNDICE. PREFÁCIO xv. 3 PROCESSOS GERADOS POR PROCEDIMENTOS Recursão Linear Cálculo de potências Cálculo de factoriais 91

ÍNDICE. PREFÁCIO xv. 3 PROCESSOS GERADOS POR PROCEDIMENTOS Recursão Linear Cálculo de potências Cálculo de factoriais 91 ÍNDICE PREFÁCIO xv 1 NOÇÕES BÁSICAS 1 1.1 Algoritmos 5 1.2 O Desenvolvimento de Programas 8 1.3 Programas em Scheme 11 1.3.1 Sintaxe e semântica 13 1.3.2 Construção de formas 15 1.4 Expressões 16 1.4.1

Leia mais

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO TEORIA DA COMPUTAÇÃO Aula 03 Programas (Monolítico e Iterativo) Prof.ª Danielle Casillo Programas, Máquinas e Computações Diferentes

Leia mais

Linguagem de Programação I Prof. Tiago Eugenio de Melo.

Linguagem de Programação I Prof. Tiago Eugenio de Melo. Linguagem de Programação I Prof. Tiago Eugenio de Melo tmelo@uea.edu.br www.tiagodemelo.info 1 Sumário Introdução Conceitos preliminares Introdução Variáveis Comandos Condicionais 2 Por que aprender a

Leia mais

Apresentação do Capítulo 4 MDA (Model-Driven Archtecture) ALUNO: DOMENICO SCHETTINI FILHO NÚMERO USP:

Apresentação do Capítulo 4 MDA (Model-Driven Archtecture) ALUNO: DOMENICO SCHETTINI FILHO NÚMERO USP: Apresentação do Capítulo 4 MDA (Model-Driven Archtecture) ALUNO: DOMENICO SCHETTINI FILHO NÚMERO USP: 8429016 Definição de MDA OMG (Object Management Group) propôs uma aplicação abrangente das práticas

Leia mais

Especificações Gerais do Compilador e Definição de FRANKIE

Especificações Gerais do Compilador e Definição de FRANKIE Especificações Gerais do Compilador e Definição de FRANKIE 1. Especificações Gerais do Compilador (Decisões de projeto) 2. Especificações da Linguagem Fonte Definição Informal Considerações Léxicas Considerações

Leia mais

Máquinas de Turing para construção: Foram encontrados dois modelos que se destacaram em nossas pesquisas.

Máquinas de Turing para construção: Foram encontrados dois modelos que se destacaram em nossas pesquisas. Máquina de Turing É um dispositivo imaginário que formou a estrutura para fundamentar a ciência da computação moderna. Seu inventor, o matemático Alan Mathison Turing, mostrou que a computação das operações

Leia mais

UMA FERRAMENTA PARA A ANÁLISE DE CIRCUITOS ELÉTRICOS

UMA FERRAMENTA PARA A ANÁLISE DE CIRCUITOS ELÉTRICOS UMA FERRAMENTA PARA A ANÁLISE DE CIRCUITOS ELÉTRICOS José Ubirajara N. de Nunes 1, Pablo S. Grigoletti 2, Graçaliz P. Dimuro, Luciano V. Barboza, Renata H. S. Reiser Universidade Católica de Pelotas -

Leia mais

Aula 01 Conceito de Banco de Dados e SGBD

Aula 01 Conceito de Banco de Dados e SGBD Aula 01 Conceito de Banco de Dados e SGBD Dado: conjunto de símbolos arranjados a fim de representar a informação fora da mente humana. Elemento de Dado: subconjunto de símbolos que compõem um dado com

Leia mais

Universidade Federal do ABC Rua Santa Adélia, Bairro Bangu - Santo André - SP - Brasil CEP Telefone/Fax:

Universidade Federal do ABC Rua Santa Adélia, Bairro Bangu - Santo André - SP - Brasil CEP Telefone/Fax: Universidade Federal do ABC Rua Santa Adélia, 166 - Bairro Bangu - Santo André - SP - Brasil CEP 09.210-170 - Telefone/Fax: +55 11 4996-3166 1. CÓDIGO E NOME DA DISCIPLINA MC3201 - COMPILADORES 2. DISCIPLINA

Leia mais

Modelagem Usando Orientação à Objetos (Programação Orientada a Objetos) Prof. Responsáveis Wagner Santos C. de Jesus

Modelagem Usando Orientação à Objetos (Programação Orientada a Objetos) Prof. Responsáveis Wagner Santos C. de Jesus Curso Disciplina Linguagem de Programação II Curso Engenharia da Computação Modelagem Usando Orientação à Objetos (Programação Orientada a Objetos) Site : http://www1.univap.br/~wagner/ec.html Prof. Responsáveis

Leia mais

Um alfabeto é um conjunto de símbolos indivisíveis de qualquer natureza. Um alfabeto é geralmente denotado pela letra grega Σ.

Um alfabeto é um conjunto de símbolos indivisíveis de qualquer natureza. Um alfabeto é geralmente denotado pela letra grega Σ. Linguagens O conceito de linguagem engloba uma variedade de categorias distintas de linguagens: linguagens naturais, linguagens de programação, linguagens matemáticas, etc. Uma definição geral de linguagem

Leia mais

FERRAMENTA DE AUXÍLIO AO PROCESSO DE DESENVOLVIMENTO DE SOFTWARE INTEGRANDO TECNOLOGIAS OTIMIZADORAS

FERRAMENTA DE AUXÍLIO AO PROCESSO DE DESENVOLVIMENTO DE SOFTWARE INTEGRANDO TECNOLOGIAS OTIMIZADORAS FERRAMENTA DE AUXÍLIO AO PROCESSO DE DESENVOLVIMENTO DE SOFTWARE INTEGRANDO TECNOLOGIAS OTIMIZADORAS Acadêmico: Roger Anderson Schmidt Orientador : Marcel Hugo Supervisor : Ricardo de Freitas Becker Empresa

Leia mais

POO e C++: Herança e Polimorfismo

POO 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 mais

INTRODUÇÃO. Prof. Msc. Luis Filipe Alves Pereira 2015

INTRODUÇÃO. Prof. Msc. Luis Filipe Alves Pereira 2015 INTRODUÇÃO Prof. Msc. Luis Filipe Alves Pereira 2015 INTRODUÇÃO 02/21 QUAIS AS OPERAÇÕES BÁSICAS REALIZADAS EM UM COMPUTADOR DIGITAL? INTRODUÇÃO 03/21 QUAIS AS OPERAÇÕES BÁSICAS REALIZADAS EM UM COMPUTADOR

Leia mais

Programação de Computadores

Programação de Computadores Programação de Computadores Instituto de Computação UFF Departamento de Ciência da Computação Otton Teixeira da Silveira Filho Conteúdo Alguns Conceitos sobre Conceito de Algoritmo Pseudocódigo Tipos de

Leia mais

Programação de Computadores

Programação de Computadores Programação de Computadores Instituto de Computação UFF Departamento de Ciência da Computação Otton Teixeira da Silveira Filho Conteúdo Alguns Conceitos sobre Linguagens Paradigmas para linguagens de Programação

Leia mais

RAFAEL EMMENDOERFER FALCONE MAURO MARCELO MATTOS

RAFAEL EMMENDOERFER FALCONE MAURO MARCELO MATTOS RAFAEL EMMENDOERFER FALCONE MAURO MARCELO MATTOS PROGRAMAÇÃO Introdução e objetivos. Fundamentação teórica: sistemas dinâmicos, caos e fractais. Biblioteca Java JCCKit utilizada para desenvolvimento da

Leia mais

Análise Sintática. Fabiano Baldo

Análise Sintática. Fabiano Baldo Compiladores Análise Sintática Fabiano Baldo Gramáticas Livre de Contexto (GLC) É utilizada na especificação formal lda sintaxe de uma linguagem de programação. É um conjunto de produções ou regras gramaticais

Leia mais

Utilização do solidthinking Embed como interface gráfica para a construção de modelos de processos termofluidodinâmicos

Utilização do solidthinking Embed como interface gráfica para a construção de modelos de processos termofluidodinâmicos Utilização do solidthinking Embed como interface gráfica para a construção de modelos de processos termofluidodinâmicos 1 Introdução Este artigo tem por objetivo descrever as etapas de desenvolvimento

Leia mais

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO Prof.ª Danielle Casillo Diferentes computadores podem ter diferentes arquiteturas e os diversos tipos de linguagem de programação.

Leia mais

UMA LINGUAGEM VISUAL PARA PROCESSOS CONCORRENTES 1

UMA LINGUAGEM VISUAL PARA PROCESSOS CONCORRENTES 1 UMA LINGUAGEM VISUAL PARA PROCESSOS CONCORRENTES 1 M. B.Cardoso*, R. H. S. Reiser, A C. R. Costa UCPEL Escola de Informática - Rua Félix da Cunha 412, Pelotas RS, {mbcardo, reiser, rocha}@atlas.ucpel.tche.br

Leia mais

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO 9º PERÍODO. Profª Danielle Casillo

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO 9º PERÍODO. Profª Danielle Casillo UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO 9º PERÍODO Profª Danielle Casillo Aula 06 - Linguagem Ladder 2 Foi a primeira que surgiu para programação dos Controladores Lógicos

Leia mais

INF1013 MODELAGEM DE SOFTWARE

INF1013 MODELAGEM DE SOFTWARE INF1013 MODELAGEM DE SOFTWARE Departamento de Informática PUC-Rio Ivan Mathias Filho ivan@inf.puc-rio.br Programa Capítulo 1 O Paradigma Orientado a Objetos A Linguagem UML Descrição da Arquitetura 1 Programa

Leia mais

Modelagem Temporal com UML

Modelagem Temporal com UML Modelagem Temporal com UML! Tipo especial de diagrama de estados, onde são representados os estados de uma atividade, ao invés dos estados de um objeto.! Estados de Atividade: "Exemplo 1: passos de um

Leia mais

Caixa Postal 3167 CEP Criciúma, SC, Brasil

Caixa Postal 3167 CEP Criciúma, SC, Brasil Desenvolvimento e Implementação de Animações Computacionais Baseadas em Autômatos Finitos com Saída utilizando a Teoria das Categorias Daniel da Silva Fernandes 1, Christine Vieira Scarpato 1 1 Universidade

Leia mais

Síntese de programas utilizando a linguagem Alloy

Síntese de programas utilizando a linguagem Alloy Universidade Federal de Pernambuco Centro de Informátiva Graduação em Ciência da Computação Síntese de programas utilizando a linguagem Alloy Proposta de Trabalho de Graduação Aluno: João Pedro Marcolino

Leia mais

Autômatos e Linguagens

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

Leia mais

3 Satisfação de Restrições

3 Satisfação de Restrições 38 3 Satisfação de Restrições Este capítulo define inicialmente o conceito de problema de satisfação de restrições (RPR). Em seguida, indica como modelar o problema de escalonamento como um problema de

Leia mais

Visão Geral... e conceitos básicos

Visão Geral... e conceitos básicos Visão Geral.. e conceitos básicos 1 Curso de... Programação O que se estuda aqui? Algoritmos 2 E o que são algoritmos? Sequência finita e não ambígua de passos para a solução de um problema. Lembre- se

Leia mais

Análise e projeto de sistemas

Análise e projeto de sistemas Análise e projeto de sistemas Conteúdo: UML O processo de desenvolvimento de software Prof. Patrícia Lucas A linguagem de modelagem unificada (UML) A UML teve origem em uma tentativa de se unificar os

Leia mais

Disciplina: LINGUAGENS FORMAIS, AUTÔMATOS E COMPUTABILIDADE Prof. Jefferson Morais

Disciplina: LINGUAGENS FORMAIS, AUTÔMATOS E COMPUTABILIDADE Prof. Jefferson Morais UNIVERSIDADE FEDERAL DO PARÁ INSTITUTO DE CIÊNCIAS EXATAS E NATURAIS FACULDADE DE COMPUTAÇÃO CURSO DE BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO Disciplina: LINGUAGENS FORMAIS, AUTÔMATOS E COMPUTABILIDADE Prof.

Leia mais

Verificador de Propriedades em

Verificador de Propriedades em Verificador de Propriedades em Gramática de Grafos Acadêmica: Fernanda Gums Orientadora: Joyce Martins Roteiro Introdução Objetivos do trabalho Fundamentação teórica Desenvolvimento do Java Verification

Leia mais

Máquina de Turing Linguagens Sensíveis ao Contexto e Enumeráveis Recursivamente

Máquina de Turing Linguagens Sensíveis ao Contexto e Enumeráveis Recursivamente ESIN/UCPel 058814 Linguagens Formais e Autômatos TEXTO 5 Máquina de Turing Linguagens Sensíveis ao Contexto e Enumeráveis Recursivamente Prof. Luiz A M Palazzo Maio de 2007 0. Introdução A Ciência da Computação

Leia mais

CRÉDITOS DO CURSO. Carga Horária Créditos IN1030 Seminários 30 2

CRÉDITOS DO CURSO. Carga Horária Créditos IN1030 Seminários 30 2 UNIVERSIDADE FEDERAL DE PERNAMBUCO PRÓ-REITORIA PARA ASSUNTOS DE PESQUISA E PÓS-GRADUAÇÃO ESTRUTURA CURRICULAR STRICTO SENSU (baseada na Res. 10/2008 do CCEPE) NOME DO CURSO: Pós-Graduação em Ciência da

Leia mais

CAP4. ELEMENTOS DA TEORIA DE GRAFOS. Grafo [graph]. Estrutura que consiste num par ordenado de conjuntos, G ( V, E) , sendo:

CAP4. ELEMENTOS DA TEORIA DE GRAFOS. Grafo [graph]. Estrutura que consiste num par ordenado de conjuntos, G ( V, E) , sendo: Matemática Discreta ESTiG\IPB Cap4. Elementos da Teoria de Grafos pg 1 CAP4. ELEMENTOS DA TEORIA DE GRAFOS Grafo [graph]. Estrutura que consiste num par ordenado de conjuntos, G ( V, E), sendo: Exemplos

Leia mais

3 Uma Abordagem Orientada a Aspectos para o Desenvolvimento de Frameworks

3 Uma Abordagem Orientada a Aspectos para o Desenvolvimento de Frameworks 48 3 Uma Abordagem Orientada a Aspectos para o Desenvolvimento de Frameworks Este capítulo apresenta uma visão geral da contribuição principal deste trabalho: uma abordagem orientada a aspectos para o

Leia mais

ao paradigma imperativo

ao 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 mais

Como Modelar com UML 2

Como Modelar com UML 2 Ricardo Pereira e Silva Como Modelar com UML 2 Visual Books Sumário Prefácio... 13 1 Introdução à Modelagem Orientada a Objetos... 17 1.1 Análise e Projeto Orientados a Objetos... 18 1.2 Requisitos para

Leia mais

Paradigmas de Linguagem de Programação. Aspectos Básicos

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

Leia mais

Capítulo 7. Expressões e Sentenças de Atribuição

Capí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 mais

Introdução aos computadores, à Internet e à World Wide Web. Prof. Marcelo Roberto Zorzan

Introdução aos computadores, à Internet e à World Wide Web. Prof. Marcelo Roberto Zorzan Introdução aos computadores, à Internet e à World Wide Web Prof. Marcelo Roberto Zorzan História do Java Origem Linguagem desenvolvida pela Sun Microsystems Sintaxe similar ao C++ Inicialmente chamada

Leia mais

1.1 Linguagens de Programação

1.1 Linguagens de Programação Fundamentos Procurando fazer com que haja uma melhor compreensão para o estudo e desenvolvimento utilizando linguagens de programação, este capítulo apresenta conceitos básicos sobre como um programa pode

Leia mais

ESTRUTURA DE DADOS. Arvore Binária Jose. Arvore Ternaria Direção

ESTRUTURA DE DADOS. Arvore Binária Jose. Arvore Ternaria Direção ESTRUTURA DE DADOS 1. Árvores: Uma das mais importantes classes de estruturas de dados em computação são as árvores. Aproveitando-se de sua organização hierárquica, muitas aplicações são realizadas usando-se

Leia mais

Introdução. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos

Introdução. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos Introdução Laboratório de Computação para Ciências Módulo II Prof. Guilherme Tavares de Assis Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Mestrado Profissional

Leia mais

FACULDADE DE TECNOLOGIA SENAC PELOTAS. Trabalho de Shellscript Atividade 5 Introdução a Informática

FACULDADE DE TECNOLOGIA SENAC PELOTAS. Trabalho de Shellscript Atividade 5 Introdução a Informática FACULDADE DE TECNOLOGIA SENAC PELOTAS Trabalho de Shellscript Atividade 5 Introdução a Informática Luis Gustavo Spern Barreto Análise e Desenvolvimento de Sistemas, 2013 Trabalho de Shellscript ADS 2013

Leia mais

1 Introdução Motivação

1 Introdução Motivação Introdução 15 1 Introdução Em sua origem, a WWW - World-Wide Web (Berners-Lee, 1994) foi concebida como uma aplicação de hipertexto, visando apresentar informações científicas com referências cruzadas

Leia mais

Introdução aos computadores, à Internet e à World Wide Web. Prof. Marcelo Roberto Zorzan

Introdução aos computadores, à Internet e à World Wide Web. Prof. Marcelo Roberto Zorzan Introdução aos computadores, à Internet e à World Wide Web Prof. Marcelo Roberto Zorzan História do Java Origem Linguagem desenvolvida pela Sun Microsystems Sintaxe similar ao C++ Inicialmente chamada

Leia mais

Introdução ao Python. Programa Computacional

Introdução ao Python. Programa Computacional Programa Computacional É um algoritmo escrito em uma linguagem computacional (C, Fortran, Pascal, MATLAB, Python, etc.). É a tradução do algoritmo para uma linguagem que será interpretada pelo computador.

Leia mais

Compiladores - Especificando Sintaxe

Compiladores - Especificando Sintaxe Compiladores - Especificando Sintaxe Fabio Mascarenhas - 2013.1 http://www.dcc.ufrj.br/~fabiom/comp Análise Sintática A análise sintática agrupa os tokens em uma árvore sintática de acordo com a estrutura

Leia mais

Matemática Discreta para Ciência da Computação

Matemática Discreta para Ciência da Computação Matemática Discreta para Ciência da Computação P. Blauth Menezes blauth@inf.ufrgs.br Departamento de Informática Teórica Instituto de Informática / UFRGS Matemática Discreta para Ciência da Computação

Leia mais

POO Paradigma Orientado a Objetos. POO Paradigma Orientado a Objetos. POO Paradigma Orientado a Objetos. POO Paradigma Orientado a Objetos

POO Paradigma Orientado a Objetos. POO Paradigma Orientado a Objetos. POO Paradigma Orientado a Objetos. POO Paradigma Orientado a Objetos UEG - Universidade Estadual de Goiás (Câmpus Posse) Disciplina: Análise e Projeto de Sistemas II Turma: 4 Semestre Ano: 2016 Professor: José Ronaldo Leles Júnior O que é? É uma forma de abordar um problema.

Leia mais

Implementação de Linguagens

Implementaçã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 mais

COMPILADORES. Revisão Linguagens formais Parte 01. Geovane Griesang

COMPILADORES. Revisão Linguagens formais Parte 01. Geovane Griesang Universidade de Santa Cruz do Sul UNISC Departamento de informática COMPILADORES Revisão Linguagens formais Parte 01 geovanegriesang@unisc.br Legenda: = sigma (somatório) = delta ε = épsilon λ = lambda

Leia mais

Objetivo: Desenvolver algoritmos a partir de problemas

Objetivo: Desenvolver algoritmos a partir de problemas Objetivo: Desenvolver algoritmos a partir de problemas Definição de Lógica Definição de Algoritmo Algoritmo x Lógica Diagrama de Blocos e Portugol Portugol: Estrutura da Linguagem Exemplos de Diagramas

Leia mais

Modelagem Temporal com UML

Modelagem Temporal com UML Modelagem Temporal com UML! Tipo especial de diagrama de estados, onde são representados os estados de uma atividade, ao invés dos estados de um objeto.! Estados de Atividade: "Exemplo 1: passos de um

Leia mais

V.2 Especificação Sintática de Linguagens de Programação

V.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 mais

Sumário. Capítulo 1 Introdução 29. Capítulo 2 Utilizando Objetos 59

Sumário. Capítulo 1 Introdução 29. Capítulo 2 Utilizando Objetos 59 Sumário Capítulo 1 Introdução 29 1.1 O que é programação? 30 1.2 A anatomia de um computador 31 1.3 Traduzindo programas legíveis pelo homem em código de máquina 36 1.4 A linguagem de programação Java

Leia mais

CURSO DE SISTEMAS DE INFORMAÇÕES

CURSO DE SISTEMAS DE INFORMAÇÕES 1 CURSO DE SISTEMAS DE INFORMAÇÕES EMENTÁRIO DAS DISCIPLINAS Matriz Curricular 2018.1 BRUSQUE (SC) Consunini nº. 13/18, 2018 de 21 de março de 2018. 2 SUMÁRIO 1ª FASE... 4 01 ARQUITETURA DE COMPUTADORES...

Leia mais

Arranjo de Processadores

Arranjo de Processadores Um arranjo síncrono de processadores paralelos é chamado arranjo de processadores, consistindo de múltiplos elementos processadores (EPs) sob a supervisão de uma unidade de controle (UC) Arranjo de processadores

Leia mais

IFSC/Florianópolis - Programação Orientada a Objetos com Java - prof. Herval Daminelli

IFSC/Florianópolis - Programação Orientada a Objetos com Java - prof. Herval Daminelli Programa de computador sequência de comandos ou instruções executados por um computador com a finalidade de produzir um resultado e resolver um problema; Linguagem de programação método para a criação

Leia mais

Teoria da Computação Prof. Lucília Figueiredo Prova 03 - ENTREGA DIA 24/06/2015. (a) Descreva o programa da MT usando um pseudocódigo.

Teoria da Computação Prof. Lucília Figueiredo Prova 03 - ENTREGA DIA 24/06/2015. (a) Descreva o programa da MT usando um pseudocódigo. Teoria da Computação Prof. Lucília Figueiredo Prova 03 - ENTREGA DIA 24/06/2015 DECOM ICEB - UFOP Nome legível: Matrícula: As questões podem devem ser respondidas na própria prova, a caneta ou a lápis.

Leia mais

Programação para Games II. Professor Ariel da Silva Dias Orientação a Objetos

Programação para Games II. Professor Ariel da Silva Dias Orientação a Objetos Programação para Games II Professor Ariel da Silva Dias Orientação a Objetos Pacotes Pacotes são um modo de organizar classes e interfaces Um programa pode ser formado por centenas de classes individiduais;

Leia mais

Matemática Discreta para Ciência da Computação

Matemática Discreta para Ciência da Computação Matemática Discreta para Ciência da Computação P. Blauth Menezes blauth@inf.ufrgs.br Departamento de Informática Teórica Instituto de Informática / UFRGS Matemática Discreta para Ciência da Computação

Leia mais

Paradigmas de Linguagem de. Programação Profª. Roberta B Tôrres de programação referem-se a:

Paradigmas 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 mais

PROJETO ARQUITETURAL PARTE II: PADRÕES DE PROJETO. Projeto de Programas PPR0001

PROJETO ARQUITETURAL PARTE II: PADRÕES DE PROJETO. Projeto de Programas PPR0001 PROJETO ARQUITETURAL PARTE II: PADRÕES DE PROJETO Projeto de Programas PPR0001 QUALIDADE DO PROJETO 2 3 Qualidade do Projeto de Software Modularidade: gerar particionamento em elementos que executam funções

Leia mais

CAPÍTULO 7 CONCLUSÕES E RECOMENDAÇÕES

CAPÍTULO 7 CONCLUSÕES E RECOMENDAÇÕES 103 CAPÍTULO 7 CONCLUSÕES E RECOMENDAÇÕES "A verdadeira dificuldade não está em aceitar idéias novas, mas em escapar das antigas. John Maynard Keynes A pesquisa orientada à visualização cartográfica visa

Leia mais

2. Linguagem de Programação Prolog

2. Linguagem de Programação Prolog Inteligência Artificial - IBM1024 2. Linguagem de Programação Prolog Prof. Renato Tinós Local: Depto. de Computação e Matemática (FFCLRP/USP) 1 Principais Tópicos 2. Linguagem de Programação Prolog 2.1.

Leia mais

Teoria da Computação. Unidade 1 Conceitos Básicos. Referência Teoria da Computação (Divério, 2000)

Teoria da Computação. Unidade 1 Conceitos Básicos. Referência Teoria da Computação (Divério, 2000) Unidade 1 Conceitos Básicos Referência (Divério, 2000) Conceitos Básicos Linguagem Conceito fundamental Forma precisa de expressar problemas Permite um desenvolvimento formal adequado ao estudo da computabilidade

Leia mais

UML. Modelando um sistema

UML. Modelando um sistema UML Modelando um sistema Fases do desenvolvimento de Software Análise de requisitos Análise Projeto Programação Análise de Requisitos Esta fase captura as intenções e necessidades dos usuários do sistema

Leia mais

3 Arquitetura MVC baseada em modelos

3 Arquitetura MVC baseada em modelos Arquitetura MVC baseada em modelos 30 3 Arquitetura MVC baseada em modelos 3.1. Visão geral Na arquitetura proposta os componentes de Controle e Visão, da arquitetura tradicional do padrão de projetos

Leia mais

RUP RATIONAL UNIFIED PROCESS

RUP RATIONAL UNIFIED PROCESS O que é RUP? É um metodologia para gerenciar projetos de desenvolvimento de software que usa a UML como ferramenta para especificação de sistemas. Ele é um modelo de processo híbrido Mistura elementos

Leia mais

Uma linguagem de especificação formal simplificada

Uma linguagem de especificação formal simplificada Uma linguagem de especificação formal simplificada Adolfo Neto Departamento Acadêmico de Informática (DAINF) Universidade Tecnológica Federal do Paraná (UTFPR) Versão 1.1 15 de junho de 2010 Sumário 1

Leia mais

Introdução a Teste de Software

Introdução a Teste de Software Universidade Católica de Pelotas Tecnólogo em Análise e Desenvolvimento de Sistemas Disciplina de Qualidade de Software Introdução a Teste de Software Prof. Luthiano Venecian 1 Conceitos Teste de software

Leia mais

PARALELIZAÇÃO DE ALGORITMO DE INSPEÇÃO DE ROTAS UTILIZANDO PERMUTAÇÃO LEXICOGRÁFICA 1

PARALELIZAÇÃO DE ALGORITMO DE INSPEÇÃO DE ROTAS UTILIZANDO PERMUTAÇÃO LEXICOGRÁFICA 1 PARALELIZAÇÃO DE ALGORITMO DE INSPEÇÃO DE ROTAS UTILIZANDO PERMUTAÇÃO LEXICOGRÁFICA 1 Jessica De Almeida Berlezi 2, Janiel Ceretta Foletto 3, Edson Luiz Padoin 4, Rogério S. M. Martins 5. 1 Trabalho realizado

Leia mais

Modelagem Conceitual e o Modelo Entidade-Relacionamento

Modelagem Conceitual e o Modelo Entidade-Relacionamento o Modelo Entidade-Relacionamento Gerenciamento de Dados e Informação Fernando Fonseca & Robson Fidalgo 1 Modelagem Transformar aspectos do mundo real em um modelo de dados formal Modelagem Conceitual Modelo

Leia mais

6 Conclusão Contribuições da Dissertação

6 Conclusão Contribuições da Dissertação 6 Conclusão Neste trabalho, foi apresentado um sistema colaborativo capaz de controlar as versões das edições de um vídeo no formato MPEG-2, sem que os editores estejam no mesmo local, ao mesmo tempo.

Leia mais

Modelo do Mundo Real. Abstração. Interpretação

Modelo do Mundo Real. Abstração. Interpretação Modelo do Mundo Real Mundo Real Abstração Interpretação Sistema de Software Modelo Algoritmo Abstração: O modelo precisa capturar apenas as características do mundo real que são importantes para o sistema

Leia mais

9 Conclusões e Trabalhos Futuros

9 Conclusões e Trabalhos Futuros 9 Conclusões e Trabalhos Futuros Este capítulo apresenta as conclusões desta tese e as sugestões de trabalhos futuros. 9.1 Conclusões Esta tese endereçou um requisito de sistemas de workflow aqui chamado

Leia mais

15/03/2018. Professor Ariel da Silva Dias Aspectos sintáticos e semânticos básicos de linguagens de programação

15/03/2018. Professor Ariel da Silva Dias Aspectos sintáticos e semânticos básicos de linguagens de programação Professor Ariel da Silva Dias Aspectos sintáticos e semânticos básicos de linguagens de programação Conjunto de regras que definem a forma da linguagem; Como as sentenças podem ser formadas como sequências

Leia mais

Diagramas de Classes. ESII Profª. Andressa Falcade URI Santiago

Diagramas de Classes. ESII Profª. Andressa Falcade URI Santiago Diagramas de Classes Conceitos Básicos O caso de uso fornece uma perspectiva do sistema de um ponto de vista externo (do ator) Internamente os objetos colaboram para atender às funcionalidades do sistema

Leia mais

7 Conclusão e Trabalhos Futuros

7 Conclusão e Trabalhos Futuros 7 Conclusão e Trabalhos Futuros Como um novo e poderoso paradigma para o design e a implementação de sistemas de software (Lind, 2001;Wooldridge et al., 2001), o SMA requer metodologias, linguagens de

Leia mais