Spelling suggestions: "subject:"dependência"" "subject:"independência""
1 |
DEPAnalyzer: um modelo de análise estática de dependências para programas orientados a objetosAzevedo, Silvana Campos de January 2002 (has links)
Este trabalho apresenta um modelo de análise estática de programas orientados a objetos, o qual se denomina DEPAnalyzer (DEPendencies Analyzer). O modelo realiza a análise das dependências entre as classes de um programa, ou seja, os relacionamentos estabelecidos entre estas. As classes representam as entidades estáticas, as quais em tempo de execução darão origem a conjuntos de objetos. Através da simulação do programa o modelo consegue obter as informações sobre quem se relaciona com quem e qual é a intensidade destes relacionamentos. Estas informações visam auxiliar no processo de escalonamento de um programa em uma arquitetura distribuída. Para expressar estes relacionamentos podem ser gerados dois grafos, o grafo de dependências e o grafo de invocações. A geração de um ou de ambos depende do propósito de utilização, ou seja, alocação inicial ou redistribuição dos objetos. O grafo de dependências apresenta uma versão resumida dos relacionamentos. Este adequa-se a auxiliar no processo de distribuição inicial por propiciar um panorama geral dos relacionamentos sem considerar a ordenação de ocorrência das ações. Por sua vez o grafo de invocações tem como propósito a discriminação da ordem de ocorrência das ações de uma aplicação. Viabilizando a utilização deste por parte do processo de redistribuição dos objetos.
|
2 |
DEPAnalyzer: um modelo de análise estática de dependências para programas orientados a objetosAzevedo, Silvana Campos de January 2002 (has links)
Este trabalho apresenta um modelo de análise estática de programas orientados a objetos, o qual se denomina DEPAnalyzer (DEPendencies Analyzer). O modelo realiza a análise das dependências entre as classes de um programa, ou seja, os relacionamentos estabelecidos entre estas. As classes representam as entidades estáticas, as quais em tempo de execução darão origem a conjuntos de objetos. Através da simulação do programa o modelo consegue obter as informações sobre quem se relaciona com quem e qual é a intensidade destes relacionamentos. Estas informações visam auxiliar no processo de escalonamento de um programa em uma arquitetura distribuída. Para expressar estes relacionamentos podem ser gerados dois grafos, o grafo de dependências e o grafo de invocações. A geração de um ou de ambos depende do propósito de utilização, ou seja, alocação inicial ou redistribuição dos objetos. O grafo de dependências apresenta uma versão resumida dos relacionamentos. Este adequa-se a auxiliar no processo de distribuição inicial por propiciar um panorama geral dos relacionamentos sem considerar a ordenação de ocorrência das ações. Por sua vez o grafo de invocações tem como propósito a discriminação da ordem de ocorrência das ações de uma aplicação. Viabilizando a utilização deste por parte do processo de redistribuição dos objetos.
|
3 |
DEPAnalyzer: um modelo de análise estática de dependências para programas orientados a objetosAzevedo, Silvana Campos de January 2002 (has links)
Este trabalho apresenta um modelo de análise estática de programas orientados a objetos, o qual se denomina DEPAnalyzer (DEPendencies Analyzer). O modelo realiza a análise das dependências entre as classes de um programa, ou seja, os relacionamentos estabelecidos entre estas. As classes representam as entidades estáticas, as quais em tempo de execução darão origem a conjuntos de objetos. Através da simulação do programa o modelo consegue obter as informações sobre quem se relaciona com quem e qual é a intensidade destes relacionamentos. Estas informações visam auxiliar no processo de escalonamento de um programa em uma arquitetura distribuída. Para expressar estes relacionamentos podem ser gerados dois grafos, o grafo de dependências e o grafo de invocações. A geração de um ou de ambos depende do propósito de utilização, ou seja, alocação inicial ou redistribuição dos objetos. O grafo de dependências apresenta uma versão resumida dos relacionamentos. Este adequa-se a auxiliar no processo de distribuição inicial por propiciar um panorama geral dos relacionamentos sem considerar a ordenação de ocorrência das ações. Por sua vez o grafo de invocações tem como propósito a discriminação da ordem de ocorrência das ações de uma aplicação. Viabilizando a utilização deste por parte do processo de redistribuição dos objetos.
|
4 |
Algoritmos para contagem de referências cíclicas em sistemas multiprocessadosde Araújo Formiga, Andrei 31 January 2011 (has links)
Made available in DSpace on 2014-06-12T17:36:05Z (GMT). No. of bitstreams: 2
arquivo7119_1.pdf: 2897021 bytes, checksum: 6c54b56dbdc59f5e101d0042be325a2b (MD5)
license.txt: 1748 bytes, checksum: 8a4605be74aa9ea9d79846c1fba20a33 (MD5)
Previous issue date: 2011 / Conselho Nacional de Desenvolvimento Científico e Tecnológico / O gerenciamento automático da memória dinâmica, conhecido como coleta de lixo (garbage collection), se tornou uma necessidade na maioria das linguagens de programação em uso atualmente. Dentre as técnicas para realizar o gerenciamento automático da memória, a contagem de referências se mostra vantajosa por uma série de razões, dentre elas o fato de ser uma técnica naturalmente incremental, o que evita a parada completa do processo do usuário para realizar tarefas de administração da memória. A natureza incremental da contagem de referências indica que o algoritmo pode ser adaptado para uma versão em sistemas multiprocessados, mantendo sua característica não suspensiva no programa do usuário. Entretanto, os problemas causados pela necessidade de sincronização entre threads pode anular os ganhos de eficiência obtidos com essa extensão, inviabilizando o uso de um coletor de lixo baseado em contagem de referências em um ambiente multiprocessado. Nesta tese apresenta-se um conjunto de algoritmos eficientes para utilizar a contagem de referências em sistemas com vários processadores, tendo como foco principal o algoritmo para contagem de referências para vários mutadores e um coletor. Este algoritmo foi implementado na máquina virtual Java Jikes RVM e seu desempenho testado em relação a coletores alternativos; os resultados de tais testes indicam que o algoritmo proposto tem desempenho competitivo com outros coletores similares, mas impõe tempos de pausa muito menores ao programa do usuário. A presente tese também apresenta uma prova informal da corretude do algoritmo proposto
|
5 |
Contagem de referências cíclicas em sistemas multiprocessadode Araújo Formiga, Andrei January 2006 (has links)
Made available in DSpace on 2014-06-12T17:36:54Z (GMT). No. of bitstreams: 2
arquivo2635_1.pdf: 1615049 bytes, checksum: 0bfad898b05e2327f8bd4385c52f1fb8 (MD5)
license.txt: 1748 bytes, checksum: 8a4605be74aa9ea9d79846c1fba20a33 (MD5)
Previous issue date: 2006 / Conselho Nacional de Desenvolvimento Científico e Tecnológico / O gerenciamento automático da memória utilizada por um programa se tornou uma necessidade na maioria das linguagens de programação em uso atualmente, cujas implementações incluem em sua maioria um coletor de lixo para administrar a memória utilizada. Dentre as técnicas para realizar o gerenciamento automático da memória, a contagem de referências se mostra popular por uma série de vantagens, dentre elas o fato de ser uma técnica naturalmente incremental, o que evita a parada completa da computação para realizar tarefas de administração da memória. Esta natureza incremental da contagem de referências indica que o algoritmo pode ser extendido para uma versão concorrente, em sistemas multiprocessados, com facilidade. Entretanto, o problema da sincronização pode anular os ganhos de eficiência obtidos com essa extensão, inviabilizando o uso de um coletor de lixo concorrente. Nesta dissertação apresenta-se uma nova arquitetura para implementar concorrentemente o gerenciamento automático da memória baseado na contagem de referências; esta proposta está baseada em versões anteriores do algoritmo seqüencial para contagem de referências e da arquitetura para contagem de referências concorrentes, mas tem como diferencial o uso de sincronização bastante eficiente. Os resultados de testes realizados com uma implementação desta nova arquitetura indicam que, de fato, a eficiência obtida compensa o seu uso em sistemas multiprocessados
|
6 |
Identificação e visualização de dependências em sistemas de software orientados a objetos / Identification and Visualization of Dependencies in Object-Oriented Software SystemsOliva, Gustavo Ansaldi 22 September 2011 (has links)
Degradação do design é um problema central investigado na área de evolução de software. A densa rede de interdependências que emerge entre classes e módulos ao longo do tempo resulta em código difícil de mudar, não reutilizável e que não comunica por si só sua intenção. Dentre outros motivos, designs degradam porque requisitos mudam de maneiras não antecipadas pelo design inicial, ou seja, as modificações no código introduzem dependências novas e não planejadas entre classes e módulos do sistema. A gerência de dependências visa reduzir a degradação do design por meio de uma série de mecanismos que auxiliam na administração da complexidade estrutural inerente de sistemas orientados a objetos. Neste trabalho, investigamos as técnicas de identificação de dependências estruturais e lógicas. Em particular, por meio de um estudo de larga escala, comparamos os conjuntos desses dois tipos de dependências. Em seguida, conduzimos um estudo de caso a fim de identificar as origens de dependências lógicas. Por fim, fazemos um levantamento das técnicas de visualização de dependências e mostramos a ferramenta XFlow. / Design degradation is a central problem investigated in the area of software evolution. The dense web of interdependencies that emerges among classes and modules over time results in code that is hard to change, not reusable and that does not communicate its intention. Among other reasons, designs degrade because requirements changes in ways that were not anticipated by the initial design, i.e. the changes in code introduce new and unplanned dependencies among classes and modules of the system. Dependency management aims to reduce design degradation by means of a series of mechanisms that helps in the management of the inherent structural complexity of object oriented systems. In this work, we investigate structural and logical dependencies identification techniques. In particular, by means of a large scale study, we compare the sets of these two kinds of dependencies. Afterwards, we conduct a case study in order to uncover the origins of logical dependencies. Finally, we survey dependency visualization techniques and present the XFlow tool.
|
7 |
Identificação e visualização de dependências em sistemas de software orientados a objetos / Identification and Visualization of Dependencies in Object-Oriented Software SystemsGustavo Ansaldi Oliva 22 September 2011 (has links)
Degradação do design é um problema central investigado na área de evolução de software. A densa rede de interdependências que emerge entre classes e módulos ao longo do tempo resulta em código difícil de mudar, não reutilizável e que não comunica por si só sua intenção. Dentre outros motivos, designs degradam porque requisitos mudam de maneiras não antecipadas pelo design inicial, ou seja, as modificações no código introduzem dependências novas e não planejadas entre classes e módulos do sistema. A gerência de dependências visa reduzir a degradação do design por meio de uma série de mecanismos que auxiliam na administração da complexidade estrutural inerente de sistemas orientados a objetos. Neste trabalho, investigamos as técnicas de identificação de dependências estruturais e lógicas. Em particular, por meio de um estudo de larga escala, comparamos os conjuntos desses dois tipos de dependências. Em seguida, conduzimos um estudo de caso a fim de identificar as origens de dependências lógicas. Por fim, fazemos um levantamento das técnicas de visualização de dependências e mostramos a ferramenta XFlow. / Design degradation is a central problem investigated in the area of software evolution. The dense web of interdependencies that emerges among classes and modules over time results in code that is hard to change, not reusable and that does not communicate its intention. Among other reasons, designs degrade because requirements changes in ways that were not anticipated by the initial design, i.e. the changes in code introduce new and unplanned dependencies among classes and modules of the system. Dependency management aims to reduce design degradation by means of a series of mechanisms that helps in the management of the inherent structural complexity of object oriented systems. In this work, we investigate structural and logical dependencies identification techniques. In particular, by means of a large scale study, we compare the sets of these two kinds of dependencies. Afterwards, we conduct a case study in order to uncover the origins of logical dependencies. Finally, we survey dependency visualization techniques and present the XFlow tool.
|
8 |
Alguns aspectos de tratamento de dependências de contexto em linguagem natural empregando tecnologia adaptativa. / Some aspects on natural language context dependencies handling using adaptive technology.Moraes, Miryam de 14 December 2006 (has links)
O tratamento de Linguagens Naturais requer o emprego de formalismos mais complexos que aqueles normalmente empregados para Linguagens Livre de Contexto. A maioria de tais formalismos são difíceis de serem utilizados, não práticos e sobretudo, associados a um desempenho de elevado custo. Autômatos de pilha estruturados são excelentes para se representar linguagens regulares e aspectos livre de contexto encontrados em Linguagem Natural, uma vez que é possível decompo-los em uma camada reguar (implementada com máquina de estados finitos) e uma livre de contexto (representada por uma pilha). Tais dispositivos aceitam linguagens determinísticas e livre de contexto em tempo linear. Dessa forma, trata-se de um dispositivo adequado para ser empregado como mecanismo subjacente para os autômatos adaptativos, que permitem o tratamento - sem perda de simplicidade e eficiência - de linguagens mais complexas que aquelas livres de contexo Nesta tese, dependências de contexto são tratadas com tecnologia adaptativa. Este trabalho mostra como uma regra de Linguagem Natural descrita com uma metalinguagem pode ser convertida em um autômato de pilha adaptativo. Foi possível verificar que problemas complexos em análise de Linguagem Natural, tais como os não-determinismos e ambigüidades presentes em situações de concordância, subcategorização, coordenação podem ser resolvidos com eficiência. De fato, todos os mecanismos adaptativos para solucionar estes problemas apresentam desempenho O(n). Uma arquitetura para processamento em Linguagem Natural é apresentada. / Since low-complexity language formalisms are too weak to handle NL, stronger formalisms are required, most of them resource demanding, hard to use or unpractical. Structured pushdown automata are excellent to represent regular and context-free aspects on NLs by allowing them to be split into regular layer (implemented as finite-state machines) and a context-free one (represented by a pushdown store). Such devices accepts deterministic context-free languages in linear time, and is suitable as un underlying mechanism for adaptive automata, allowing handling - without loss of simplicity and efficiency - languages more complex than context-free ones. In this thesis context dependency is handled with adaptive technology. This work shows as a Natural Language rule described with a metalanguage can be converted into adaptive structured pushdown automata. It was possible to verify that complex problems in Natural Language parsing e.g., nondeterminisms and ambiguities present in agreement, subcategorization, coordination can be solved with efficiency. In fact, all adaptive mechanisms attached to these problems have O(n) performance. An adaptive architecture for NL Language processing is presented.
|
9 |
Alguns aspectos de tratamento de dependências de contexto em linguagem natural empregando tecnologia adaptativa. / Some aspects on natural language context dependencies handling using adaptive technology.Miryam de Moraes 14 December 2006 (has links)
O tratamento de Linguagens Naturais requer o emprego de formalismos mais complexos que aqueles normalmente empregados para Linguagens Livre de Contexto. A maioria de tais formalismos são difíceis de serem utilizados, não práticos e sobretudo, associados a um desempenho de elevado custo. Autômatos de pilha estruturados são excelentes para se representar linguagens regulares e aspectos livre de contexto encontrados em Linguagem Natural, uma vez que é possível decompo-los em uma camada reguar (implementada com máquina de estados finitos) e uma livre de contexto (representada por uma pilha). Tais dispositivos aceitam linguagens determinísticas e livre de contexto em tempo linear. Dessa forma, trata-se de um dispositivo adequado para ser empregado como mecanismo subjacente para os autômatos adaptativos, que permitem o tratamento - sem perda de simplicidade e eficiência - de linguagens mais complexas que aquelas livres de contexo Nesta tese, dependências de contexto são tratadas com tecnologia adaptativa. Este trabalho mostra como uma regra de Linguagem Natural descrita com uma metalinguagem pode ser convertida em um autômato de pilha adaptativo. Foi possível verificar que problemas complexos em análise de Linguagem Natural, tais como os não-determinismos e ambigüidades presentes em situações de concordância, subcategorização, coordenação podem ser resolvidos com eficiência. De fato, todos os mecanismos adaptativos para solucionar estes problemas apresentam desempenho O(n). Uma arquitetura para processamento em Linguagem Natural é apresentada. / Since low-complexity language formalisms are too weak to handle NL, stronger formalisms are required, most of them resource demanding, hard to use or unpractical. Structured pushdown automata are excellent to represent regular and context-free aspects on NLs by allowing them to be split into regular layer (implemented as finite-state machines) and a context-free one (represented by a pushdown store). Such devices accepts deterministic context-free languages in linear time, and is suitable as un underlying mechanism for adaptive automata, allowing handling - without loss of simplicity and efficiency - languages more complex than context-free ones. In this thesis context dependency is handled with adaptive technology. This work shows as a Natural Language rule described with a metalanguage can be converted into adaptive structured pushdown automata. It was possible to verify that complex problems in Natural Language parsing e.g., nondeterminisms and ambiguities present in agreement, subcategorization, coordination can be solved with efficiency. In fact, all adaptive mechanisms attached to these problems have O(n) performance. An adaptive architecture for NL Language processing is presented.
|
10 |
Análise dos caminhos de execução de programas para a paralelização automática de códigos binários para a plataforma Intel x86 / Analysis of the execution paths of programs to perform automatic parallelization of binary codes on the platform Intel x86Eberle, André Mantini 06 October 2015 (has links)
Aplicações têm tradicionalmente utilizado o paradigma de programação sequencial. Com a recente expansão da computação paralela, em particular os processadores multinúcleo e ambientes distribuídos, esse paradigma tornou-se um obstáculo para a utilização dos recursos disponíveis nesses sistemas, uma vez que a maior parte das aplicações tornam-se restrita à execução sobre um único núcleo de processamento. Nesse sentido, este trabalho de mestrado introduz uma abordagem para paralelizar programas sequenciais de forma automática e transparente, diretamente sobre o código-binário, de forma a melhor utilizar os recursos disponíveis em computadores multinúcleo. A abordagem consiste na desmontagem (disassembly) de aplicações Intel x86 e sua posterior tradução para uma linguagem intermediária. Em seguida, são produzidos grafos de fluxo e dependências, os quais são utilizados como base para o particionamento das aplicações em unidades paralelas. Por fim, a aplicação é remontada (assembly) e traduzida novamente para a arquitetura original. Essa abordagem permite a paralelização de aplicações sem a necessidade de esforço suplementar por parte de desenvolvedores e usuários. / Traditionally, computer programs have been developed using the sequential programming paradigm. With the advent of parallel computing systems, such as multi-core processors and distributed environments, the sequential paradigm became a barrier to the utilization of the available resources, since the program is restricted to a single processing unit. To address this issue, we introduce a transparent automatic parallelization methodology using a binary rewriter. The steps involved in our approach are: the disassembly of an Intel x86 application, transforming it into an intermediary language; analysis of this intermediary code to obtain flow and dependency graphs; partitioning of the application into parallel units, using the obtained graphs and posterior reassembly of the application, writing it back to the original Intel x86 architecture. By transforming the compiled application software, we aim at obtaining a program which can explore the parallel resources, with no extra effort required either from users or developers.
|
Page generated in 0.0755 seconds