681 |
Towards a safe and secure synchronous languageAttar, Pejman 12 December 2013 (has links) (PDF)
Cette thèse propose une nouvelle approche du parallélisme et de la concurrence, posant les bases d'un langage de programmation à la fois sûr et "secure" (garantissant la sécurité des données), fondé sur une sémantique formelle claire et simple, tout en étant adapté aux architectures multi-cores. Nous avons adopté le paradigme synchrone, dans sa variante réactive, qui fournit une alternative simple à la programmation concurrente standard en limitant l'impact des erreurs dépendant du temps ("data-races"). Dans un premier temps, nous avons considéré un langage réactif d'orchestration, DSL, dans lequel on fait abstraction de la mémoire (Partie 1). Dans le but de pouvoir traiter la mémoire et la sécurité, nous avons ensuite étudié (Partie 2) un noyau réactif, CRL, qui utilise un opérateur de parallélisme déterministe. Nous avons prouvé la réactivité bornée des programmes de CRL. Nous avons ensuite équipé CRL de mécanismes pour contrôler le flux d'information (Partie 3). Pour cela, nous avons d'abord étendu CRL avec des niveaux de sécurité pour les variables et les évènement, puis nous avons défini dans le langage étendu, SSL, un système de types permettant d'éviter les fuites d'information. Parallèlement (Partie 4), nous avons ajouté la mémoire à CRL, en proposant le modèle DSLM. En utilisant une notion d'agent, nous avons structuré la mémoire de telle sorte qu'il ne puisse y avoir de "data-races". Nous avons également étudié l'implémentation de DSLM sur les architectures multi-cores, fondée sur la notion de site et de migration d'un agent entre les sites. L'unification de SSL et de DSLM est une piste pour un travail futur.
|
682 |
Amélioration de la qualité des codes de gestion d'erreur dans les logiciels système en utilisant des informations locales aux fonctionsSaha, Suman 25 March 2013 (has links) (PDF)
En C, une stratégie classique pour implémenter les codes de gestion d'erreur est de faire suivre chaque opération qui peut générer une erreur d'une structure conditionnelle qui teste si l'opération a renvoyé une erreur. Ce stratégie basique, cependant, est sujette à erreurs, et il est courant d'oublier des opérations de nettoyage requises, ainsi que d'oublier de mettre à jour des codes de gestion d'erreur existants lorsque la fonction est étendue avec de nouvelles opérations. De plus, une partie importante du code doit souvent être dupliquée. Un style de programmation, <EM> stratégie goto </EM>, qui peut réduire en partie certaines de ces difficultés. Pour améliorer la structure des codes de gestion d'erreur dans les logiciels système, nous définissions un algorithme qui permet de transformer les codes de gestion d'erreur implémentés suivant la stratégie basique en codes de gestion d'erreur qui utilisent la <EM> stratégie goto</EM>. Même lorsque les codes de gestion d'erreurs sont structurés, la gestion et la libération des ressources allouées restent un problème lorsqu'il s'agit d'assurer la robustesse du code système. Dans cette thèse, nous proposons un algorithme <EM> microscopique </EM> de détection d'omission de libération de ressource, basé sur une analyse principalement intra-procédurale, qui prend en compte les flux et les chemins du code et qui cible et exploite les propriétés des codes de gestion d'erreur. Notre algorithme est résistant aux faux positifs dans l'ensemble des acquisitions de ressources et des opérations de libération, ce qui produit un faible taux de faux positifs dans les rapports renvoyés par l'outil tout en passant à l'échelle.
|
683 |
Translating relational queries into iterative programsFreytag, Johann Christoph, January 1900 (has links)
Thesis (Ph. D.)--Harvard University, 1985. / Includes bibliographical references (p).
|
684 |
Ambiente computacional paradesenvolvimento de aplica??es de controladores l?gicos program?veis baseado em linguagens SFC e STCouto, Felipe C?sar Alves do 30 June 2009 (has links)
Made available in DSpace on 2014-12-17T14:08:34Z (GMT). No. of bitstreams: 1
FelipeCAC.pdf: 1359871 bytes, checksum: 241fcfb66da39be9d48445bc9f6d11de (MD5)
Previous issue date: 2009-06-30 / This work proposes an environment for programming programmable logic controllers applied to oil wells with BCP type method of artificially lifting. The environment will have an editor based in the diagram of sequential functions for programming of PLCs. This language was chosen due to the fact of being high-level and accepted by the international standard IEC 61131-3. The use of these control programs in real PLC will be possible with the use of an intermediate level of language based on XML specification
PLCopen T6 XML. For the testing and validation of the control programs, an area should be available for viewing variables obtained through communication with a real PLC. Thus, the main contribution of this work is to develop a computational environment
that allows: modeling, testing and validating the controls represented in SFC and applied in oil wells with BCP type method of artificially lifting / Este trabalho prop?e um ambiente computacional para programa??o de controladores l?gicos program?veis aplicados aos po?os de petr?leo com m?todo de eleva??o artificial do tipo BCP. O ambiente ter? um editor para programa??o de PLCs baseado principalmente no diagrama de fun??es sequenciais (SFC). Esta linguagem foi escolhida por ser considerada de alto n?vel e por ser aceita pelo padr?o internacional IEC 61131-3. O uso destes programas de controle em PLCs reais ser? poss?vel com a utiliza??o de uma linguagem de n?vel intermedi?rio baseada na especifica??o TC6 XML pela organiza??o PLCopen. Para os testes e a valida??o dos programas de controle, dever? ser disponibilizada uma ?rea para visualiza??o das vari?veis obtidas atrav?s da comunica??o com um PLC real. Desta forma, a principal contribui??o deste trabalho ? desenvolver um ambiente computacional que permita: modelar, testar e validar os controles representados em SFC e aplicados nos po?os petrol?feros com m?todo de eleva??o artificial do tipo BCP
|
685 |
A Refinement-Based Methodology for Verifying Abstract Data Type ImplementationsDivakaran, Sumesh January 2015 (has links) (PDF)
This thesis is about techniques for proving the functional correctness of Abstract Data Type (ADT) implementations. We provide a framework for proving the functional correctness of imperative language implementations of ADTs, using a theory of refinement. We develop a theory of refinement to reason about both declarative and imperative language implementations of ADTs. Our theory facilitates compositional reasoning about complex implementations that may use several layers of sub-ADTs.
Based on our theory of refinement, we propose a methodology for proving the functional correctness of an existing imperative language implementation of an ADT. We propose a mechanizable translation from an abstract model in the Z language to an abstract implementation in VCC’s ghost language. Then we present a technique to carry out the refinement checks completely within the VCC tool.
We apply our proposed methodology to prove the functional correctness of the scheduling-related functionality of FreeRTOS, a popular open-source real-time operating system. We focused on the scheduler-related functionality, found major deviations from the intended behavior, and did a machine-checked proof of the correctness of the fixed code.
We also present an efficient way to phrase the refinement conditions in VCC, which considerably improves VCC’s performance. We evaluated this technique on a simplified version of FreeRTOS which we constructed for this verification exercise. Using our efficient approach, VCC always terminates and leads to a reduction of over 90% in the total time taken by a naive check, when evaluated on this case-study.
|
686 |
Simulação de uma arquitetura de computação própria ao paradigma orientado a notificações / Simulation of computing architecture proper to the notification oriented paradigmPordeus, Leonardo Faix 28 April 2017 (has links)
CAPES / Os paradigmas de programação tradicionais carecem de técnicas para concepção de softwares de forma produtiva e de qualidade para uso eficiente das tecnologias de execução paralela, fornecidas pelos hardwares dos sistemas computacionais modernos. O Paradigma Orientado a Notificações (PON) apresenta uma nova abordagem no tocante ao processamento lógico-causal, primeiramente para o desenvolvimento de software, a qual se baseia em pequenas entidades colaborativas e pontualmente notificantes. Essa abordagem é mais eficiente e desacoplada quando comparado com os paradigmas de programação tradicionais, como o Paradigma Declarativo (PD) e o Paradigma Imperativo (PI). Ela permite a exploração de processamento, inclusive do paralelo e/ou distribuído, de maneira mais simples e eficiente do que em PI/PD. O PON inicialmente teve sua origem como uma solução de software, destacando a recente linguagem e compilador LingPON. No entanto outras pesquisas também o exploraram como uma solução de hardware em lógica reconfigurável, o qual apresenta um modelo de execução mais próximo ao modelo do PON. De fato, no tocante ao processamento paralelo, a execução de aplicações PON nem sempre pode ser feita da forma mais eficiente pelas arquiteturas de computadores tradicionais,baseados em conjunto de núcleos com modelos de execução sequencial. Neste âmbito, foi proposta uma nova arquitetura de computador orientada a notificações chamada NOCA (Notification Oriented Computer Architecture), a qual fornece uma dinâmica de execução segundo o modelo do PON, sendo composta por múltiplas unidades de processamento, a fim de permitir explorar de maneira mais adequada o paralelismo. Os experimentos realizados sobre um protótipo desta arquitetura demonstraram que a NOCA apresenta ganhos em avaliações comparativas de desempenho, dadas determinadas condições. No entanto, alguns aspectos foram desvantajosos ao protótipo da NOCA, em particular a baixa escala de paralelização obtida em função de limitação de palco de experimentação. Neste sentido, esta dissertação de mestrado apresenta o desenvolvimento de um simulador para a arquitetura NOCA, o qual é denominado de NOCASim. A implementação da NOCA na forma de software tem como objetivo simular o funcionamento dela com a quantidade de processadores simulados na mesma proporção do que o número de elementos PON que compõem uma aplicação. Isto permitiria obter dados de desempenho para validação do seu modelo funcional. Como estratégia de desenvolvimento, primeiramente este trabalho adaptou a LingPON para gerar assembly da NOCA facilitando o desenvolvimento de aplicações. Subsequentmente e principalmente, fez-se uso dos artefatos de projeto próprios da NOCA sendo que seu funcionamento consiste em simular em software a atualização dos estados internos da NOCA de forma semelhante a cada mudança do ciclo de clock. Experimentos realizados por meio do NOCASim com diferentes configurações demostraram que a NOCA apresenta melhora de desempenho a medida que o número de unidades de processamento aumenta. Além disso, verificaram-se possibilidades de melhorias conceituais a NOCA, que tendem a fortalecê-la como uma alternativa de execução paralela. / Traditional programming paradigms lack techniques for the productive and quality software’s design that makes efficient use of the parallel execution capabilities provided by the modern computing systems hardware. The Notification Oriented Paradigm (NOP) presents a new approach to develop more efficient and decoupled software when compared to the traditional programming paradigms, such as the Imperative Paradigm and the Declarative Paradigm. The NOP allows the exploitation of parallelization and/or distribution in a simpler and more efficient way than more commonly used programming paradigms. Initially, the NOP was conceived as an alternative software paradigm, highlighting the recent NOP language and compiler. However, other research was focused on hardware development using reconfigurable logic, which enables an execution model closer to the NOP model. Indeed, in parallel processing, the NOP applications cannot always be executed efficiently by the traditional computer architectures hardware based on set of cores with sequential execution model. Aiming at more efficient execution of NOP applications, a new Notification Oriented Computer Architecture (NOCA) has been developed. NOCA is based on multiple processing units, where each unit corresponds to specific elements of the NOP model. This way, parallelism is adequately exploited. Experiments were performed on a prototype of this architecture. When compared with Imperative Paradigm, execution time was improved under certain conditions, in particular, the low scale of parallelization obtained as a function of stage limitation of experimentation. In this sense, this Master of Science dissertation presents the development of a simulator for the NOCA architecture, which is called NOCASim. The NOCA implementation over software approach aims to simulate NOCA behavior with amount of simulated processors in the same proportions as the amount of NOP elements of an application. This allows obtain data for validation of NOCA functional model. As a development strategy, firstly this work adapted a NOP language to generate NOCA assembly facilitating the development of applications for this architecture. In the sequence, the own NOCA's design artifacts were used for the NOCASim development. The NOCASim operation consists of simulating in software to update the NOCA internal states in a similar way to each change in the clock cycle. The experiments results using NOCASim with different configurations have demonstrated that the NOCA performance improve when the number of processing units increases. In addition, were observed new possibilities for conceptual improvements to NOCA, which tend to strengthen it as a parallel execution alternative.
|
687 |
Adaptação do paradigma orientado a notificações para desenvolvimento de sistemas fuzzy / Adaptation of the notification oriented paradigm for the development of fuzzy systemsMelo, Luiz Carlos Viana 26 August 2016 (has links)
Este trabalho trata do tema de Paradigma Orientado a Notificações (PON) e sua adequação para prover suporte a conceitos fuzzy. O PON se inspira em elementos dos paradigmas imperativo e declarativo, buscando resolver inconvenientes de ambos. Ao decompor uma aplicação em uma rede de entidades computacionais menores que são executadas apenas quando necessário, o PON elimina a necessidade de realizar computações desnecessárias e alcança melhor desacoplamento lógico-causal facilitando o reaproveitamento e distribuição. Ademais, o PON permite expressar o seu conhecimento lógico-causal em alto nível, por meio de regras no formato SE-ENTÃO. Os sistemas fuzzy, por sua vez, realizam inferências em bases de conhecimento lógico-causal (regras SE-ENTÃO) que lidam com problemas que envolvem imprecisão. Uma vez que o PON utiliza regras SE-ENTÃO de uma forma alternativa, reduzindo avaliações redundantes e acoplamento, este trabalho foi realizado para identificar, propor e avaliar as mudanças necessárias a serem realizadas sobre o PON para que este possa ser utilizado no desenvolvimento de sistemas fuzzy. Após a realização da proposta, foram criadas materializações na forma de um framework em linguagem C++, e uma linguagem de programação própria (LingPONFuzzy) com suporte a inferência fuzzy. A partir delas foram criados casos de estudo e realizados diversos testes para validar a solução proposta. Os resultados dos testes mostram uma redução significativa no número de regras avaliadas em relação a um sistema fuzzy desenvolvido utilizando ferramentas convencionais (frameworks), o que poderia representar uma melhoria no desempenho das aplicações. / This work proposes to adjust the Notification Oriented Paradigm (NOP) so that it provides support to fuzzy concepts. NOP is inspired by elements of imperative and declarative paradigms, seeking to solve some of the drawbacks of both. By decomposing an application into a network of smaller computational entities that are executed only when necessary, NOP eliminates the need to perform unnecessary computations and helps to achieve better logical-causal uncoupling, facilitating code reuse and application distribution over multiple processors or machines. In addition, NOP allows to express the logical-causal knowledge at a high level of abstraction, through rules in IF-THEN format. Fuzzy systems, in turn, perform logical inferences on causal knowledge bases (IF-THEN rules) that can deal with problems involving uncertainty. Since PON uses IF-THEN rules in an alternative way, reducing redundant evaluations and providing better decoupling, this research has been carried out to identify, propose and evaluate the necessary changes to be made on NOP allowing to be used in the development of fuzzy systems. After that, two fully usable materializations were created: a C++ framework, and a complete programming language (LingPONFuzzy) that provide support to fuzzy inference systems. From there study cases have been created and several tests cases were conducted, in order to validate the proposed solution. The test results have shown a significant reduction in the number of rules evaluated in comparison to a fuzzy system developed using conventional tools (frameworks), which could represent an improvement in performance of the applications.
|
688 |
Linguagem e compilador para o paradigma orientado a notificações (PON): avanços e comparaçõesFerreira, Cleverson Avelino 28 August 2015 (has links)
Atuais paradigmas correntes de programação de software, mais precisamente o Paradigma Imperativo (PI) e o Paradigma Declarativo (PD), apresentam deficiências que afetam o desempenho das aplicações e a obtenção de “desacoplamento” (ou acoplamento mínimo) entre elementos de software. Com o objetivo de amenizar essas deficiências, foi desenvolvido o Paradigma Orientado a Notificações (PON). O PON se inspira nos conceitos do PI (e.g. objetos) e do PD (e.g. base de fatos e regras), mas altera a essência da execução ou inferência lógica-causal. Basicamente, o PON usa objetos para tratar de fatos e regras na forma de composições de outros objetos menores que, entretanto, apresentam características comportamentais de certa autonomia, independência, reatividade e colaboração por meio de notificações pontuais para fins de inferência. Isto dito, salienta-se que a materialização dos conceitos do PON se deu por meio de um arquétipo ou Framework elaborado em linguagem de programação C++. Tal materialização do PON vem sendo utilizada como uma alternativa para o desenvolvimento de aplicações sob o domínio desse paradigma e possibilitou, de fato, a criação de aplicações para ambientes computacionais usuais baseados na chamada arquitetura Von Neumann. Apesar destas contribuições para com a sua materialização, o desenvolvimento de aplicações no PON ainda não apresentava resultados satisfatórios em termos de desempenho tal qual deveria a luz do seu cálculo assintótico, nem a facilidade de programação que seria uma das suas características principais. Nesse âmbito, o presente trabalho propõe como evolução para o estado da técnica do PON a criação de uma linguagem e compilador para o paradigma. Sendo assim, este trabalho apresenta a definição da linguagem criada com a utilização de exemplos práticos guiados pelo desenvolvimento de aplicações. Subsequentemente são apresentados detalhes do compilador bem como sua estrutura. Para demonstrar a evolução do estado da técnica do paradigma, no tocante a desempenho (e.g. tempo de processamento) e facilidade de programação foram realizados estudos comparativos com a utilização da linguagem e compilador. Os estudos comparativos foram guiados com a elaboração de dois softwares denominados aplicação Mira ao Alvo e aplicação de Vendas. Essas aplicações foram desenvolvidas com base na linguagem PON e foram realizados experimentos simulando sequências de execução com o intuito de avaliar o tempo de processamento para o resultado gerado pelo compilador PON. Ainda, tais experimentos possibilitaram a avaliação de maneira subjetiva da linguagem de programação PON no tocante a facilidade de programação. Deste modo, foi possível observar com tais estudos comparativos que os resultados apresentados pelo compilador PON foram satisfatórios quando comparados aos resultados obtidos pelo Framework e por aplicações equivalentes desenvolvidas baseadas no Paradigma Orientado a Objetos (POO). / The current software development paradigms, specifically the Imperative Paradigm (IP) and the Declarative Paradigm (DP), have weaknesses that affect the applications performance and decoupling (or minimal coupling) between the software modules. In order to provide a solution regarding these weaknesses, the Notification Oriented Paradigm (NOP) was developed. NOP is inspired by the concepts of the IP (e.g. objects) and DP (e.g. base of facts and Rules). Basically, NOP uses objects to deal with facts and Rules as compositions of other, smaller, objects. These objects have the following behavioral characteristics: autonomy, independence, responsiveness and collaboration through notifications. Thus, it’s highlighted that the realization of these concepts was firstly instantiated through a Framework developed in C++. Such NOP materialization has been used as an alternative for Application development in the domain of this paradigm and made possible, in fact, the creation of applications for typical computing environments based on Von Neumann architecture. The development of the C++ materialization of NOP has not presented satisfactory results in terms of performance as it should when taking into account its asymptotic calculation and programming facility. In this context, this work presents an evolution of NOP by creating a specific programming language, and its respective compiler, for this paradigm. Therefore, this work presents the language definition and the details of the development of its compiler. To evaluate the evolution regarding to performance (e.g. processing time) and programming facility, some comparative studies using the NOP language and compiler are presented. These comparative studies were performed by developing two software applications called Target and Sales Application. These applications have been developed based on NOP language, and the experiments were performed simulating sequences of execution in order to evaluate the processing time for the generated results by NOP compiler. Still, these experiments allowed the evaluation of NOP programming language, in a subjective way, regarding to ease programming. Thus, with such comparative studies, it was possible to observe that the results presented by the compiler NOP were satisfactory when compared to the results achieved via Framework and for equivalent applications developed based on the Oriented Object Paradigm (OOP).
|
689 |
Adaptação do paradigma orientado a notificações para desenvolvimento de sistemas fuzzy / Adaptation of the notification oriented paradigm for the development of fuzzy systemsMelo, Luiz Carlos Viana 26 August 2016 (has links)
Este trabalho trata do tema de Paradigma Orientado a Notificações (PON) e sua adequação para prover suporte a conceitos fuzzy. O PON se inspira em elementos dos paradigmas imperativo e declarativo, buscando resolver inconvenientes de ambos. Ao decompor uma aplicação em uma rede de entidades computacionais menores que são executadas apenas quando necessário, o PON elimina a necessidade de realizar computações desnecessárias e alcança melhor desacoplamento lógico-causal facilitando o reaproveitamento e distribuição. Ademais, o PON permite expressar o seu conhecimento lógico-causal em alto nível, por meio de regras no formato SE-ENTÃO. Os sistemas fuzzy, por sua vez, realizam inferências em bases de conhecimento lógico-causal (regras SE-ENTÃO) que lidam com problemas que envolvem imprecisão. Uma vez que o PON utiliza regras SE-ENTÃO de uma forma alternativa, reduzindo avaliações redundantes e acoplamento, este trabalho foi realizado para identificar, propor e avaliar as mudanças necessárias a serem realizadas sobre o PON para que este possa ser utilizado no desenvolvimento de sistemas fuzzy. Após a realização da proposta, foram criadas materializações na forma de um framework em linguagem C++, e uma linguagem de programação própria (LingPONFuzzy) com suporte a inferência fuzzy. A partir delas foram criados casos de estudo e realizados diversos testes para validar a solução proposta. Os resultados dos testes mostram uma redução significativa no número de regras avaliadas em relação a um sistema fuzzy desenvolvido utilizando ferramentas convencionais (frameworks), o que poderia representar uma melhoria no desempenho das aplicações. / This work proposes to adjust the Notification Oriented Paradigm (NOP) so that it provides support to fuzzy concepts. NOP is inspired by elements of imperative and declarative paradigms, seeking to solve some of the drawbacks of both. By decomposing an application into a network of smaller computational entities that are executed only when necessary, NOP eliminates the need to perform unnecessary computations and helps to achieve better logical-causal uncoupling, facilitating code reuse and application distribution over multiple processors or machines. In addition, NOP allows to express the logical-causal knowledge at a high level of abstraction, through rules in IF-THEN format. Fuzzy systems, in turn, perform logical inferences on causal knowledge bases (IF-THEN rules) that can deal with problems involving uncertainty. Since PON uses IF-THEN rules in an alternative way, reducing redundant evaluations and providing better decoupling, this research has been carried out to identify, propose and evaluate the necessary changes to be made on NOP allowing to be used in the development of fuzzy systems. After that, two fully usable materializations were created: a C++ framework, and a complete programming language (LingPONFuzzy) that provide support to fuzzy inference systems. From there study cases have been created and several tests cases were conducted, in order to validate the proposed solution. The test results have shown a significant reduction in the number of rules evaluated in comparison to a fuzzy system developed using conventional tools (frameworks), which could represent an improvement in performance of the applications.
|
690 |
Linguagem e compilador para o paradigma orientado a notificações (PON): avanços e comparaçõesFerreira, Cleverson Avelino 28 August 2015 (has links)
Atuais paradigmas correntes de programação de software, mais precisamente o Paradigma Imperativo (PI) e o Paradigma Declarativo (PD), apresentam deficiências que afetam o desempenho das aplicações e a obtenção de “desacoplamento” (ou acoplamento mínimo) entre elementos de software. Com o objetivo de amenizar essas deficiências, foi desenvolvido o Paradigma Orientado a Notificações (PON). O PON se inspira nos conceitos do PI (e.g. objetos) e do PD (e.g. base de fatos e regras), mas altera a essência da execução ou inferência lógica-causal. Basicamente, o PON usa objetos para tratar de fatos e regras na forma de composições de outros objetos menores que, entretanto, apresentam características comportamentais de certa autonomia, independência, reatividade e colaboração por meio de notificações pontuais para fins de inferência. Isto dito, salienta-se que a materialização dos conceitos do PON se deu por meio de um arquétipo ou Framework elaborado em linguagem de programação C++. Tal materialização do PON vem sendo utilizada como uma alternativa para o desenvolvimento de aplicações sob o domínio desse paradigma e possibilitou, de fato, a criação de aplicações para ambientes computacionais usuais baseados na chamada arquitetura Von Neumann. Apesar destas contribuições para com a sua materialização, o desenvolvimento de aplicações no PON ainda não apresentava resultados satisfatórios em termos de desempenho tal qual deveria a luz do seu cálculo assintótico, nem a facilidade de programação que seria uma das suas características principais. Nesse âmbito, o presente trabalho propõe como evolução para o estado da técnica do PON a criação de uma linguagem e compilador para o paradigma. Sendo assim, este trabalho apresenta a definição da linguagem criada com a utilização de exemplos práticos guiados pelo desenvolvimento de aplicações. Subsequentemente são apresentados detalhes do compilador bem como sua estrutura. Para demonstrar a evolução do estado da técnica do paradigma, no tocante a desempenho (e.g. tempo de processamento) e facilidade de programação foram realizados estudos comparativos com a utilização da linguagem e compilador. Os estudos comparativos foram guiados com a elaboração de dois softwares denominados aplicação Mira ao Alvo e aplicação de Vendas. Essas aplicações foram desenvolvidas com base na linguagem PON e foram realizados experimentos simulando sequências de execução com o intuito de avaliar o tempo de processamento para o resultado gerado pelo compilador PON. Ainda, tais experimentos possibilitaram a avaliação de maneira subjetiva da linguagem de programação PON no tocante a facilidade de programação. Deste modo, foi possível observar com tais estudos comparativos que os resultados apresentados pelo compilador PON foram satisfatórios quando comparados aos resultados obtidos pelo Framework e por aplicações equivalentes desenvolvidas baseadas no Paradigma Orientado a Objetos (POO). / The current software development paradigms, specifically the Imperative Paradigm (IP) and the Declarative Paradigm (DP), have weaknesses that affect the applications performance and decoupling (or minimal coupling) between the software modules. In order to provide a solution regarding these weaknesses, the Notification Oriented Paradigm (NOP) was developed. NOP is inspired by the concepts of the IP (e.g. objects) and DP (e.g. base of facts and Rules). Basically, NOP uses objects to deal with facts and Rules as compositions of other, smaller, objects. These objects have the following behavioral characteristics: autonomy, independence, responsiveness and collaboration through notifications. Thus, it’s highlighted that the realization of these concepts was firstly instantiated through a Framework developed in C++. Such NOP materialization has been used as an alternative for Application development in the domain of this paradigm and made possible, in fact, the creation of applications for typical computing environments based on Von Neumann architecture. The development of the C++ materialization of NOP has not presented satisfactory results in terms of performance as it should when taking into account its asymptotic calculation and programming facility. In this context, this work presents an evolution of NOP by creating a specific programming language, and its respective compiler, for this paradigm. Therefore, this work presents the language definition and the details of the development of its compiler. To evaluate the evolution regarding to performance (e.g. processing time) and programming facility, some comparative studies using the NOP language and compiler are presented. These comparative studies were performed by developing two software applications called Target and Sales Application. These applications have been developed based on NOP language, and the experiments were performed simulating sequences of execution in order to evaluate the processing time for the generated results by NOP compiler. Still, these experiments allowed the evaluation of NOP programming language, in a subjective way, regarding to ease programming. Thus, with such comparative studies, it was possible to observe that the results presented by the compiler NOP were satisfactory when compared to the results achieved via Framework and for equivalent applications developed based on the Oriented Object Paradigm (OOP).
|
Page generated in 0.0265 seconds