Spelling suggestions: "subject:"programming paradigm"" "subject:"erogramming paradigm""
1 |
Java programming paradigm comprehensibility: Procedural versus ReactiveLundberg, Mattis, Österdahl, Pontus January 2021 (has links)
Software developers spend more time on reading than writingcode. Comprehensible code therefore has the potential tosignificantly improve software development andmaintenance by lowering the time needed for understandingexisting code. Previous research suggest that the choice ofProgramming paradigm may affect code comprehension. Thepresent study evaluates if a positive effect of ReactiveProgramming on comprehension can be attested incomparison to Procedural Programming. We let human testsubjects solve bugs in code-snippets of commonfunctionalities implemented either according to ReactiveProgramming or Procedural Programming in the Javalanguage and RxJava, its ReactiveX implementation. Thecomprehensibility of the code is measured by the test subjects’time consumption, with lower values indicating highercomprehensibility and higher values lowercomprehensibility.Within this study we also study the effect of prior knowledgeof reactive programming, and background in programming,on the results, by having test subjects from two groups: (1)software students with experience in Reactive Programming,and (2) experienced software developers and engineers withless experience in Reactive Programming.All tests took part in a tool of our design, the CodeComparator.Our results show that reactive puzzles are solved faster,suggesting higher comprehensibility, although highdispersion in solvability time, especially for the proceduralsolutions, make it difficult to assess the validity of this timedifference. The positive effect is notable in the student groupwhereas we cannot conclude if the other group solves reactiveor procedural puzzles faster
|
2 |
Usability issues and design principles for visual programming languagesChattratichart, Jarinee January 2003 (has links)
Despite two decades of empirical studies focusing on programmers and the problems with programming, usability of textual programming languages is still hard to achieve. Its younger relation, visual programming languages (VPLs) also share the same problem of poor usability. This research explores and investigates the usability issues relating to VPLs in order to suggest a set of design principles that emphasise usability. The approach adopted focuses on issues arising from the interaction and communication between the human (programmers), the computer (user interface), and the program. Being exploratory in nature, this PhD reviews the literature as a starting point for stimulating and developing research questions and hypotheses that experimental studies were conducted to investigate. However, the literature alone cannot provide a fully comprehensive list of possible usability problems in VPLs so that design principles can be confidently recommended. A commercial VPL was, therefore, holistically evaluated and a comprehensive list of usability problems was obtained from the research. Six empirical studies employing both quantitative and qualitative methodology were undertaken as dictated by the nature of the research. Five of these were controlled experiments and one was qualitative-naturalistic. The experiments studied the effect of a programming paradigm and of representation of program flow on novices' performances. The results indicated superiority of control-flow programs in relation to data-flow programs; a control-flow preference among novices; and in addition that directional representation does not affect performance while traversal direction does - due to cognitive demands imposed upon programmers. Results of the qualitative study included a list of 145 usability problems and these were further categorised into ten problem areas. These findings were integrated with other analytical work based upon the review of the literature in a structured fashion to form a checklist and a set of design principles for VPLs that are empirically grounded and evaluated against existing research in the literature. Furthermore, an extended framework for Cognitive Dimensions of Notations is also discussed and proposed as an evaluation method for diagrammatic VPLs on the basis of the qualitative study. The above consists of the major findings and deliverables of this research. Nevertheless, there are several other findings identified on the basis of the substantial amount of data obtained in the series of experiments carried out, which have made a novel contribution to knowledge in the fields of Human-Computer Interaction, Psychology of Programming, and Visual Programming Languages.
|
3 |
Teste de mutação nos paradigmas procedimental e oo: uma avaliação no contexto de estrutura de dados / Mutation testing in procedural and object-oriented paradigms: an evaluation of data structure programsCampanha, Diogo Nascimento 06 December 2010 (has links)
Com o objetivo de auxiliar a definição e evolução de estratégias de testes, estudos experimentais vêm sendo realizados comparando diferentes técnicas e critérios de teste em relação ao custo, eficácia e dificuldade de satisfação (strength). Entretanto poucos estudos buscam avaliar os critérios em diferentes paradigmas. Esta avaliação é importante pois o paradigma de implementação influência significativamente no programa gerado e as características entre programas implementados em diferentes paradigmas pode influenciar em diversos aspectos da atividade de teste. Este estudo é complementar a um outro trabalho do grupo do laboratório de engenharia de software do ICMC em que foram comparados o custo da aplicação dos critérios da técnica Estrutural em relação aos paradigmas Procedimental e Orientado a Objetos. Este trabalho apresenta um estudo experimental comparando o custo e o strength do critério Análise de Mutantes nos dois paradigmas. Além da avaliação do critério Análise de Mutantes, o material gerado para este estudo será construído de forma que possa ser utilizado para o ensino e treinamento das principais técnicas e critérios de teste e espera-se que este possa contribuir de alguma forma para que o ensino de teste de software possa ser aplicado em paralelo com o ensino de algoritmos e estrutura de dados. Para a condução deste estudo, foi utilizado um conjunto de 32 programas do domínio de estrutura de dados com versões implementadas em C e em Java. O critério Análise de Mutantes foi aplicado com auxílio das ferramentas Proteum e MuClipse. Para a avaliação do strength, o conjunto de casos de teste adequado a um programa foi executado contra os mutantes gerados na mesma versão do programa implementado no outro paradigma de interesse e o escore de mutação avaliado (cross scoring). Resultados indicam que tanto o custo quanto o strength do teste de mutação é maior em programas implementados no paradigma Procedimental do que no paradigma OO. Resultados estes certamente influenciados pelo conjunto de operadores implementado nas duas ferramentas. No paradigma procedimental, também foi avaliado o escore de mutação obtido por um subconjunto dos operadores da Proteum, construído com o objetivo de reduzir o custo da aplicação do critério. O escore obtido foi satisfatório e as reduções no custo significativas. Também foi avaliado strength das técnicas Funcional e Estrutural em relação ao critério AM nos dois paradigmas. Os resultados mostram que os conjuntos de casos de teste adequados aos critérios das técnicas Funcional e Estrutural no paradigma OO obtiveram, em geral, um escore de mutação maior do que no paradigma Procedimental / AIming at to assist the definition and evolution of testing strategies, empirical studies have been conducted comparing the test criteria in terms of cost effectiveness and strength. However few studies were conducted comparing the criteria in different paradigms. This assessment is important because program paradigm can cause a big influence in the result program and the characteristics of this programs can cause influences in testing activities. This study complements another work in this group that compared the cost of Structural test technique considering the Procedural and Object Oriented paradigms. This paper presents an experimental study comparing the cost and strength of Mutation Test in Procedural and OO paradigms. Besides the evaluation of mutation test, the results of this study can be used to help teaching and training many test criteria and it may somehow contribute to teach software testing n parallel with algorithms and data structures programs. It was used a set of 32 programs of data structure programs with versions in C and Java. For this study it were used Proteum and MuClipse to execute the mutation tests. It was also evaluated the strength of a set of test cases (TC) appropriate to a program in a paradigm in the same version of the program implemented in the other paradigm of interest (cross scoring). Results indicate that both cost and strength is higher in Procedural programs than in OO. This results are certainly influenced by the set of operators built in each tool studied. It was also measured the mutation score of a subset of Proteums operators built to reduce the cost of Mutation Testing in Procedural programs. The mutation score obtained was satisfactory and there was a significant reduction in cost. It was also evaluated the strength of Functional and Structural techniques in Mutation Test for both paradigms. The results show that the mutation score of the set of test cases adequate to Functional and Structural techniques were in general, higher in OO paradigm than in Procedural paradigm
|
4 |
Formal language for statistical inference of uncertain stochastic systemsGeorgoulas, Anastasios-Andreas January 2016 (has links)
Stochastic models, in particular Continuous Time Markov Chains, are a commonly employed mathematical abstraction for describing natural or engineered dynamical systems. While the theory behind them is well-studied, their specification can be problematic in a number of ways. Firstly, the size and complexity of the model can make its description difficult without using a high-level language. Secondly, knowledge of the system is usually incomplete, leaving one or more parameters with unknown values, thus impeding further analysis. Sophisticated machine learning algorithms have been proposed for the statistically rigorous estimation and handling of this uncertainty; however, their applicability is often limited to systems with finite state-space, and there has not been any consideration for their use on high-level descriptions. Similarly, high-level formal languages have been long used for describing and reasoning about stochastic systems, but require a full specification; efforts to estimate parameters for such formal models have been limited to simple inference algorithms. This thesis explores how these two approaches can be brought together, drawing ideas from the probabilistic programming paradigm. We introduce ProPPA, a process algebra for the specification of stochastic systems with uncertain parameters. The language is equipped with a semantics, allowing a formal interpretation of models written in it. This is the first time that uncertainty has been incorporated into the syntax and semantics of a formal language, and we describe a new mathematical object capable of capturing this information. We provide a series of algorithms for inference which can be automatically applied to ProPPA models without the need to write extra code. As part of these, we develop a novel inference scheme for infinite-state systems, based on random truncations of the state-space. The expressive power and inference capabilities of the framework are demonstrated in a series of small examples as well as a larger-scale case study. We also present a review of the state-of-the-art in both machine learning and formal modelling with respect to stochastic systems. We close with a discussion of potential extensions of this work, and thoughts about different ways in which the fields of statistical machine learning and formal modelling can be further integrated.
|
5 |
Adaptive code based in Aspect Oriented Programming paradigmGalindo, Noel January 2009 (has links)
No description available.
|
6 |
Autonomic Programming Paradigm for High Performance ComputingJararweh, Yaser January 2010 (has links)
The advances in computing and communication technologies and software tools have resulted in an explosive growth in networked applications and information services that cover all aspects of our life. These services and applications are inherently complex, dynamic and heterogeneous. In a similar way, the underlying information infrastructure, e.g. the Internet, is large, complex, heterogeneous and dynamic, globally aggregating large numbers of independent computing and communication resources. The combination of the two results in application development and management complexities that break current computing paradigms, which are based on static behaviors. As a result, applications, programming environments and information infrastructures are rapidly becoming fragile, unmanageable and insecure. This has led researchers to consider alternative programming paradigms and management techniques that are based on strategies used by biological systems. Autonomic programming paradigm is inspired by the human autonomic nervous system that handles complexity, uncertainties and abnormality. The overarching goal of the autonomic programming paradigm is to help building systems and applications capable of self-management. Firstly, we investigated the large-scale scientific computing applications which generally experience different execution phases at run time and each phase has different computational, communication and storage requirements as well as different physical characteristics. In this dissertation, we present Physics Aware Optimization (PAO) paradigm that enables programmers to identify the appropriate solution methods to exploit the heterogeneity and the dynamism of the application execution states. We implement a Physics Aware Optimization Manager to exploit the PAO paradigm. On the other hand we present a self configuration paradigm based on the principles of autonomic computing that can handle efficiently complexity, dynamism and uncertainty in configuring server and networked systems and their applications. Our approach is based on making any resource/application to operate as an Autonomic Component (that means it can be self-managed component) by using our autonomic programming paradigm. Our POA technique for medical application yielded about 3X improvement of performance with 98.3% simulation accuracy compared to traditional techniques for performance optimization. Also, our Self-configuration management for power and performance management in GPU cluster demonstrated 53.7% power savings for CUDAworkload while maintaining the cluster performance within given acceptable thresholds.
|
7 |
Programming language semantics as a foundation for Bayesian inferenceSzymczak, Marcin January 2018 (has links)
Bayesian modelling, in which our prior belief about the distribution on model parameters is updated by observed data, is a popular approach to statistical data analysis. However, writing specific inference algorithms for Bayesian models by hand is time-consuming and requires significant machine learning expertise. Probabilistic programming promises to make Bayesian modelling easier and more accessible by letting the user express a generative model as a short computer program (with random variables), leaving inference to the generic algorithm provided by the compiler of the given language. However, it is not easy to design a probabilistic programming language correctly and define the meaning of programs expressible in it. Moreover, the inference algorithms used by probabilistic programming systems usually lack formal correctness proofs and bugs have been found in some of them, which limits the confidence one can have in the results they return. In this work, we apply ideas from the areas of programming language theory and statistics to show that probabilistic programming can be a reliable tool for Bayesian inference. The first part of this dissertation concerns the design, semantics and type system of a new, substantially enhanced version of the Tabular language. Tabular is a schema-based probabilistic language, which means that instead of writing a full program, the user only has to annotate the columns of a schema with expressions generating corresponding values. By adopting this paradigm, Tabular aims to be user-friendly, but this unusual design also makes it harder to define the syntax and semantics correctly and reason about the language. We define the syntax of a version of Tabular extended with user-defined functions and pseudo-deterministic queries, design a dependent type system for this language and endow it with a precise semantics. We also extend Tabular with a concise formula notation for hierarchical linear regressions, define the type system of this extended language and show how to reduce it to pure Tabular. In the second part of this dissertation, we present the first correctness proof for a Metropolis-Hastings sampling algorithm for a higher-order probabilistic language. We define a measure-theoretic semantics of the language by means of an operationally-defined density function on program traces (sequences of random variables) and a map from traces to program outputs. We then show that the distribution of samples returned by our algorithm (a variant of “Trace MCMC” used by the Church language) matches the program semantics in the limit.
|
8 |
Teste de mutação nos paradigmas procedimental e oo: uma avaliação no contexto de estrutura de dados / Mutation testing in procedural and object-oriented paradigms: an evaluation of data structure programsDiogo Nascimento Campanha 06 December 2010 (has links)
Com o objetivo de auxiliar a definição e evolução de estratégias de testes, estudos experimentais vêm sendo realizados comparando diferentes técnicas e critérios de teste em relação ao custo, eficácia e dificuldade de satisfação (strength). Entretanto poucos estudos buscam avaliar os critérios em diferentes paradigmas. Esta avaliação é importante pois o paradigma de implementação influência significativamente no programa gerado e as características entre programas implementados em diferentes paradigmas pode influenciar em diversos aspectos da atividade de teste. Este estudo é complementar a um outro trabalho do grupo do laboratório de engenharia de software do ICMC em que foram comparados o custo da aplicação dos critérios da técnica Estrutural em relação aos paradigmas Procedimental e Orientado a Objetos. Este trabalho apresenta um estudo experimental comparando o custo e o strength do critério Análise de Mutantes nos dois paradigmas. Além da avaliação do critério Análise de Mutantes, o material gerado para este estudo será construído de forma que possa ser utilizado para o ensino e treinamento das principais técnicas e critérios de teste e espera-se que este possa contribuir de alguma forma para que o ensino de teste de software possa ser aplicado em paralelo com o ensino de algoritmos e estrutura de dados. Para a condução deste estudo, foi utilizado um conjunto de 32 programas do domínio de estrutura de dados com versões implementadas em C e em Java. O critério Análise de Mutantes foi aplicado com auxílio das ferramentas Proteum e MuClipse. Para a avaliação do strength, o conjunto de casos de teste adequado a um programa foi executado contra os mutantes gerados na mesma versão do programa implementado no outro paradigma de interesse e o escore de mutação avaliado (cross scoring). Resultados indicam que tanto o custo quanto o strength do teste de mutação é maior em programas implementados no paradigma Procedimental do que no paradigma OO. Resultados estes certamente influenciados pelo conjunto de operadores implementado nas duas ferramentas. No paradigma procedimental, também foi avaliado o escore de mutação obtido por um subconjunto dos operadores da Proteum, construído com o objetivo de reduzir o custo da aplicação do critério. O escore obtido foi satisfatório e as reduções no custo significativas. Também foi avaliado strength das técnicas Funcional e Estrutural em relação ao critério AM nos dois paradigmas. Os resultados mostram que os conjuntos de casos de teste adequados aos critérios das técnicas Funcional e Estrutural no paradigma OO obtiveram, em geral, um escore de mutação maior do que no paradigma Procedimental / AIming at to assist the definition and evolution of testing strategies, empirical studies have been conducted comparing the test criteria in terms of cost effectiveness and strength. However few studies were conducted comparing the criteria in different paradigms. This assessment is important because program paradigm can cause a big influence in the result program and the characteristics of this programs can cause influences in testing activities. This study complements another work in this group that compared the cost of Structural test technique considering the Procedural and Object Oriented paradigms. This paper presents an experimental study comparing the cost and strength of Mutation Test in Procedural and OO paradigms. Besides the evaluation of mutation test, the results of this study can be used to help teaching and training many test criteria and it may somehow contribute to teach software testing n parallel with algorithms and data structures programs. It was used a set of 32 programs of data structure programs with versions in C and Java. For this study it were used Proteum and MuClipse to execute the mutation tests. It was also evaluated the strength of a set of test cases (TC) appropriate to a program in a paradigm in the same version of the program implemented in the other paradigm of interest (cross scoring). Results indicate that both cost and strength is higher in Procedural programs than in OO. This results are certainly influenced by the set of operators built in each tool studied. It was also measured the mutation score of a subset of Proteums operators built to reduce the cost of Mutation Testing in Procedural programs. The mutation score obtained was satisfactory and there was a significant reduction in cost. It was also evaluated the strength of Functional and Structural techniques in Mutation Test for both paradigms. The results show that the mutation score of the set of test cases adequate to Functional and Structural techniques were in general, higher in OO paradigm than in Procedural paradigm
|
9 |
Design of a modular multiparadigm programming language for teaching programming conceptsMARANHÃO, Antonio Augusto Rodrigues de Albuquerque January 2004 (has links)
Made available in DSpace on 2014-06-12T15:58:29Z (GMT). No. of bitstreams: 2
arquivo4579_1.pdf: 1011460 bytes, checksum: 01e8646fc6f336c9eb54adf769b7baf0 (MD5)
license.txt: 1748 bytes, checksum: 8a4605be74aa9ea9d79846c1fba20a33 (MD5)
Previous issue date: 2004 / A criação de uma linguagem de programação pode ser comparada ao desenvolvimento de
um sistema computacional. Sendo assim, o projeto e a implementação da linguagem devem
atender a um conjunto de requisitos. Alguns deles estão relacionados às propriedades que a
linguagem desenvolvida deve apresentar, como expressividade, capacidade de aprendizagem
e produtividade. Outro grupo de requisitos compreende aqueles comuns ao desenvolvimento
da maioria dos softwares, como extensibilidade, modularidade e reuso de código.
Este segundo grupo de requisitos pode ser obtido através do uso de técnicas modernas de
engenharia de software. Neste trabalho, apresentamos o desenvolvimento de uma linguagem
multiparadigma modular que faz uso de programação Orientada a Objetos, design patterns e
um paradigma de programação mais recente chamado Programação Orientada a Aspectos.
A linguagem, que também pode ser vista como um conjunto de linguagens, é desenvolvida
de maneira incremental, partindo de uma simples linguagem de expressões até linguagens
mais complexas representando alguns dos mais representativos paradigmas de programação,
finalizando com o desenvolvimento de linguagens multiparadigmas. Esta família de
linguagens é criada através da integração de componentes que representam conceitos de
programação. A modularidade obtida através do design proposto possibilita o reuso destes
componentes na criação de diferentes linguagens, mesmo que pertencentes a diferentes
paradigmas. Adicionalmente, é possível a evolução ortogonal das linguagens, já que a
inclusão de novos conceitos é obtida através da simples inclusão dos componentes
correspondentes, sem comprometer o funcionamento dos componentes já utilizados.
A abordagem proposta para o design e implementação da linguagem também se mostrou
bastante útil no ensino de conceitos de programação, já que oferece um ambiente uniforme e
extensível para a prática e exploração dos conceitos pelos estudantes. Dessa forma, os
estudantes não precisam lidar com diferentes notações e ambientes de desenvolvimento ao
abordarem conceitos relacionados a diversos paradigmas
|
10 |
Adaptive code based in Aspect Oriented Programming paradigmGalindo, Noel January 2009 (has links)
No description available.
|
Page generated in 0.1052 seconds