• Refine Query
  • Source
  • Publication year
  • to
  • Language
  • 4
  • 2
  • Tagged with
  • 9
  • 9
  • 5
  • 4
  • 4
  • 3
  • 3
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • About
  • The Global ETD Search service is a free service for researchers to find electronic theses and dissertations. This service is provided by the Networked Digital Library of Theses and Dissertations.
    Our metadata is collected from universities around the world. If you manage a university/consortium/country archive and want to be added, details can be found on the NDLTD website.
1

Software Renovation: An In-house Perspective with Case Studies

Horton, Brian 17 December 2010 (has links)
Programs are not only a tool for the simplification or automation of everyday tasks; they also represent a significant time and money investment. A program's life may span years, or even decades, which creates certain risks for the stakeholders involved. To mitigate the risks associated with these legacy systems, software renovation can be undertaken. Software renovation can be described as a series of processes and/or tools used to modernize a legacy system, thereby preserving and maintaining the investment it represents while decreasing the risks associated with it. In this thesis, the focus is on renovation of software created by in-house development. A series of case studies will be examined to demonstrate basic renovation strategies, including the formation of goals for a renovation and exploring trade-offs between robustness, performance, and usability.
2

An integration of logic and functional programming paradigms: Type theory and meta-narrowing

Lin, Fuyau January 1991 (has links)
No description available.
3

Programming paradigms, information types and graphical representations : empirical investigations of novice program comprehension

Good, Judith January 1999 (has links)
This thesis describes research into the role of various factors in novice program comprehension, including the underlying programming paradigm, the representational features of the programming language, and the various types of information which can be derived from the program. The main postulate of the thesis is that there is no unique method for understanding programs, and that program comprehension will be influenced by, among other things, the way in which programs are represented, both semantically and syntactically. This idea has implications for the learning of programming, particularly in terms of how theses concepts should be embodied. The thesis is focused around three empirical studies. The first study, based on th so-called "information types" studies, challenged the idea that program comprehension is an invariant process over languages, and suggested that programming language will have a differential effect on comprehension, as evidenced by the types of information which novices are able to extract from a program. Despite the use of a markedly different language from earliier studies, the results were broadly similar. However, it was suggested that there are other factors additional to programming notation which intervene in the comprehension process, and which cannot be discounted. Furthermore, the study highlighted the need to tie the hypotheses about information extraction more closely to the programming paradigm. The second study introduced a graphical component into the investigation, and looked at the way in which visual representations of programs combine with programming paradigm to influence comprehension. The mis-match conjecture, which suggests that tasks requiring information which is highlighted by a notation will be facilitated relative to tasks where the information must be inferred, was applied to programming paradigm. The study showed that the mis-match effect can be overridden by other factors, most notably subjects' prior experience and the programming culture in which they are taught. The third study combined the methodologies of the first two studies to look at the mis-match conjecture within the wider context of information types. Using graphical representations of the control flow and data flow paradigms, it showed that, despite a bias toward one paradigm based on prior experience and culture, programming paradigm does influence the way in which the program is understood, resulting in improved performance on tasks requiring information which the paradigm is hypothesised to highlight. Furthermore, this effect extends to groups of information which could be said to be theoretically related to the information being highlighted. The thesis also proposes a new and more precise methodology for the analysis of students' accounts of their comprehension of a program, a form a data which is typically derived from the information types studies. It then shows how an analysis of this qualitative data can be used to provide further support for the quantitative results. Finally, the thesis suggests how the core results could be used to develop computer based support environments for novice visual programming, and provides other suggestions for further work.
4

A comparison of functional and object-orientedprogramming paradigms in JavaScript

Svensson Sand, Kim, Eliasson, Tord January 2017 (has links)
There are multiple programming paradigms that have their own set rules forhow code should be written. Programming languages utilize one or multiple ofthese paradigms. In this thesis, we will compare object-oriented programming,that is the most used today with languages such as C++ and Java, and functionalprogramming. Functional programming was introduced in the 1950's butsuered from performance issues, and has not been used much except for in theacademic world. However, for its ability to handle concurrency and big data,functional programming is of interest in the industry again with languages suchas Scala. In functional programming side effects, any interaction outside of thefunction, are avoided as well as changing and saving state. To compare these paradigms we have chosen four dierent algorithms, whichboth of us have implemented twice, once according to object-oriented programmingand once according to functional programming. All algorithms were implementedJavaScript. JavaScript is a multiparadigm language that supportsboth functional and object-oriented programming. For all implementations,we have measured development time, lines of code, execution time and memoryusage. Our results show that object-oriented programming gave us betterperformance, but functional programming resulted in less code and a shorterdevelopment time.
5

Functional and Reactive Patterns in Idiomatically Imperative Programming Languages / Funktionella och reaktiva programmeringsmönster i imperativa programspråk

Sandström, Jesper January 2018 (has links)
Functional and reactive programming patterns provide powerful sets of tools for dealing with complexity and scalability. These stand in stark contrast to the imperative programming patterns which permeate the industry. This report seeks to investigate the extent to which a set of common imperative programming languages can be used to implement such functional and reactive patterns, and what the implications of doing so are. This is done by implementing and using a framework based on such patterns in Java, Kotlin, Objective-C, and Swift. The results show that this is possible in all of these languages, but the extent to which this can be considered idiomatic is questionable. Upholding immutability and referential transparency is highlighted as the main source of concern in this regard. / Funktionella och reaktiva programmeringsmönster förser utvecklare med kraftfulla abstraktioner för att hantera komplexitet och skalbarhet. Dagens industri förlitar sig dock till en majoritet på imperativa programspråk, där dessa mönster inte nödvändigtvis kan utnyttjas. Syftet med denna rapport är därför att undersöka hur sådana mönster kan tillämpas i imperativa programspråk. Detta görs genom att studera implementationen och användandet av ett ramverk för funktionell och reaktiv programmering i fyra programspråk: Java, Kotlin, Objective-C och Swift. Rapporten finner att de mönster undersökta i denna rapport går att implementera med existerande språkfunktioner för alla dessa språk, men frågan om detta kan anses idiomatiskt är oklar. Det huvudsakliga problemet är att säkerställa att funktioner skrivs utan sidoeffekter och att datastrukturerna som används inte är muterbara.
6

The concept of self-defending objects and the development of security aware applications

Holford, John William January 2006 (has links)
The self-defending object (SDO) concept is an extension to the object-oriented programming paradigm, whereby those objects that encapsulate the protected resources of a security aware application (SAA), are made aware of, and responsible for, the defence of those resources. That defence takes two forms, the enforcement of mandatory access control on protected resources and the generation of the corresponding portion of the SAA's audit trail. The SDO concept acts as the philosophy that guides the application level mandatory access control within SAAs which ensures that the provided access control is both complete and non bypassable. Although SDOs accept responsibility for controlling access to the protected data and functionality that they encapsulate, an SDO delegates the responsibility for making authorisation decisions to an associated authorisation object. Thus, SDOs fulfill their access control obligations by initiating the authorisation check and then enforcing the decision made on their behalf. A simple, yet effective mechanism for enforcing that access control at the object level involves controlling the ability to invoke those SDO methods that access protected resources. In the absence of previous research on this approach to the enforcement of application level access control, the primary aim of this research was to demonstrate that the SDO concept is a viable paradigm for developing SAAs. That aim was achieved in two stages. The first stage targeted the provision of a 'proof of concept', that demonstrated that the SDO concept could be applied to the development of non-distributed SAAs. The second stage demonstrated its applicability to the development of distributed SAAs. In the second stage, two versions of a distributed prototype were developed, one based on a traditional (proprietary) distributed computing model, (Java RMI), and the second using the currently popular Web services model, to demonstrate the general applicability of the SDO concept. Having already demonstrated that the SDO concept could be applied to SAAs executing on a single machine, the major focus of that research was to devise a mechanism by which SDOs could be transferred between machines. The research then concentrated on determining what impacts the adoption of the SDO concept would have on SAA development. Experimentation carried out using the distributed prototypes demonstrated that (1) the adoption of the SDO does not restrict the use of inheritance hierarchies that include SDOs, (2) the restriction of the lifetime of SDOs can be supported, (3) usage rights enforcement can be employed, and (4) the use of cryptographic techniques to provide additional security guarantees is not affected. A key feature of the SDO concept, is that no major changes need to be made to current development tools or methodologies, so its adoption is not hampered by significant financial or training impediments. This research demonstrated that the SDO concept is practical and constitutes a valuable extension to the object oriented paradigm that will help address the current lack of security in information systems. The SDO approach warrants additional research and adoption.
7

Functional and Imperative Object-Oriented Programming in Theory and Practice : A Study of Online Discussions in the Programming Community

Jernlund, Per, Stenberg, Martin January 2019 (has links)
Functional programming (FP) has progressively become more prevalent and techniques from the FP paradigm has been implemented in many different Imperative object-oriented programming (OOP) languages. However, there is no indication that OOP is going out of style. Nevertheless the increased popularity in FP has sparked new discussions across the Internet between the FP and OOP communities regarding a multitude of related aspects. These discussions could provide insights into the questions and challenges faced by programmers today. This thesis investigates these online discussions in a small and contemporary scale in order to identify the most discussed aspect of FP and OOP. Once identified the statements and claims made by various discussion participants were selected and compared to literature relating to the aspects and the theory behind the paradigms in order to determine whether there was any discrepancies between practitioners and theory. It was done in order to investigate whether the practitioners had different ideas in the form of best practices that could influence theories. The most discussed aspect within FP and OOP was ​immutability and state​ relating primarily to the aspects of ​concurrency ​ and ​performance​ . This thesis presents a selection of representative quotes that illustrate the different points of view held by groups in the community and then addresses those claims by investigating what is said in literature. It was shown that there were no direct discrepancies between the practitioners and the theory.
8

Um modelo de programação orientado ao desenvolvimento de sistemas ubíquos / A programming model oriented to development of ubiquitous systems

Garzão, Alex Sandro 22 March 2010 (has links)
Made available in DSpace on 2015-03-05T14:01:49Z (GMT). No. of bitstreams: 0 Previous issue date: 22 / Bolsa para curso e programa de Pós Graduação / O presente trabalho propõe o Ubiquitous Oriented Programming (abreviadamente UOP), um modelo de programação orientado ao desenvolvimento de sistemas ubíquos. UOP utiliza os conceitos de Serviços e Orientação a Objetos, integrando-os com os requisitos de aplicações ubíquas como contexto, sensibilidade ao contexto, adaptação ao contexto, mobilidade de código e concorrência. Uma linguagem de programação (UbiLanguage) implementa os conceitos deste novo modelo de programação, provendo assim suporte ao desenvolvimento de sistemas ubíquos. O ambiente de desenvolvimento é composto por um compilador (UbiCompiler) que traduz código escrito em UbiLanguage para bytecode. A plataforma de execução é composta por uma máquina virtual ubíqua (UbiVM) que suporta a execução deste bytecode. / This work presents the Ubiquitous Oriented Programming (UOP in short), a programming model oriented to development of ubiquitous systems. UOP uses Services concepts and Object Oriented Programming, integrating them with the requirements of ubiquitous applications as context, context awareness, context adaptation, code mobility and concurrent. A programming language (UbiLanguage) implements the concepts of this new programming model, thus providing the development of ubiquitous systems. The development environment is composed by a compiler (UbiCompiler) which translates code written in UbiLanguage to bytecode. The execution platform is composed by a virtual machine (UbiVM) which supports the execution of this bytecode.
9

Representação multiparadigma de conhecimento musical utilizando programação lógica indutiva / A muli-paradigma approach for music knowledge representation using inductive logic programming

Gonçalves Junior, Clenio Batista 06 February 2017 (has links)
Submitted by Milena Rubi ( ri.bso@ufscar.br) on 2017-10-17T14:08:43Z No. of bitstreams: 1 GONÇALVES_JUNIOR_Clenio_2017.pdf: 4502082 bytes, checksum: 36fad22cf5caad0d975a2df1fe5e7a55 (MD5) / Approved for entry into archive by Milena Rubi ( ri.bso@ufscar.br) on 2017-10-17T14:08:53Z (GMT) No. of bitstreams: 1 GONÇALVES_JUNIOR_Clenio_2017.pdf: 4502082 bytes, checksum: 36fad22cf5caad0d975a2df1fe5e7a55 (MD5) / Approved for entry into archive by Milena Rubi ( ri.bso@ufscar.br) on 2017-10-17T14:09:02Z (GMT) No. of bitstreams: 1 GONÇALVES_JUNIOR_Clenio_2017.pdf: 4502082 bytes, checksum: 36fad22cf5caad0d975a2df1fe5e7a55 (MD5) / Made available in DSpace on 2017-10-17T14:09:10Z (GMT). No. of bitstreams: 1 GONÇALVES_JUNIOR_Clenio_2017.pdf: 4502082 bytes, checksum: 36fad22cf5caad0d975a2df1fe5e7a55 (MD5) Previous issue date: 2017-02-06 / Não recebi financiamento / Knowledge representation process is an essential matter regarding Computer Music systems. Methods have been applied in order to provide computers with the capability to generate conclusions based on experience in specialized domains. Inductive Logic Programming is a research field which combines concepts of Logic Programming and Machine Learning. Due to its declarative feature, both acquired and produced knowledge can be presented to not-expert users in a naturally understandable way. This work deals with Music Knowledge Representation from the perspective of multi- paradigm programming, using Inductive Logic Programming technique and including the development of the knowledge-based music system Fraseado. Finally, a method for the evaluation of algorithmic composition systems - the Expanded Turing Test - is presented. / O processo de representação de conhecimento em Computação Musical constitui um elemento essencial para o desenvolvimento de sistemas. Métodos têm sido aplicados visando fornecer ao computador a capacidade de inferir informações a partir da experiência e definições previamente estabelecidas. Neste sentido, a Programação Lógica Indutiva apresenta-se como um crescente campo de pesquisa que incorpora conceitos de Programação em Lógica e Aprendizado de Máquina. O presente trabalho aborda a Representação de Conhecimento Musical sob a ótica da programação multiparadigma, com uso da técnica de Programação Lógica Indutiva. Inclui o desenvolvimento do sistema musical baseado em conhecimento Fraseado. Por fim é apresentado um método para avaliação de sistemas de composição algorítmica - o Teste de Turing Expandido.

Page generated in 0.1034 seconds