Dissertations / Theses on the topic 'Programming language and software engineering'

To see the other types of publications on this topic, follow the link: Programming language and software engineering.

Create a spot-on reference in APA, MLA, Chicago, Harvard, and other styles

Select a source type:

Consult the top 50 dissertations / theses for your research on the topic 'Programming language and software engineering.'

Next to every source in the list of references, there is an 'Add to bibliography' button. Press on it, and we will generate automatically the bibliographic reference to the chosen work in the citation style you need: APA, MLA, Harvard, Chicago, Vancouver, etc.

You can also download the full text of the academic publication as pdf and read online its abstract whenever available in the metadata.

Browse dissertations / theses on a wide variety of disciplines and organise your bibliography correctly.

1

Patrascoiu, Octavian. "Model driven language engineering." Thesis, University of Kent, 2005. https://kar.kent.ac.uk/14352/.

Full text
Abstract:
Modeling is a most important exercise in software engineering and development and one of the current practices is object-oriented (OO) modeling. The Object Management Group (OMG) has defined a standard object-oriented modeling language the Unified Modeling Language (UML). The OMG is not only interested in modeling languages; its primary aim is to enable easy integration of software systems and components using vendor-neutral technologies. This thesis investigates the possibilities for designing and implementing modeling frameworks and transformation languages that operate on models and to explore the validation of source and target models. Specifically, we will focus on OO models used in OMG's Model Driven Architecture (MDA), which can be expressed in terms of UML terms (e.g. classes and associations). The thesis presents the Kent Modeling Framework (KMF), a modeling framework that we developed, and describes how this framework can be used to generate a modeling tool from a model. It then proceeds to describe the customization of the generated code, in particular the definition of methods that allows a rapid and repeatable instantiation of a model. Model validation should include not only checking the well-formedness using OCL constraints, but also the evaluation of model quality. Software metrics are useful means for evaluating the quality of both software development processes and software products. As models are used to drive the entire software development process it is unlikely that high quality software will be obtained using low quality models. The thesis presents a methodology supported by KMF that uses the UML specification to compute the design metrics at an early stage of software development. The thesis presents a transformation language called YATL (Yet Another Transformation Language), which was designed and implemented to support the features provided by OMG's Request For Proposal and the future QVT standard. YATL is a hybrid language (a mix of declarative and imperative constructions) designed to answer the Query/Views/Transformations Request For Proposals issued by OMG and to express model transformations as required by the Model Driven Architecture (MDA) approach. Several examples of model transformations, which have been implemented using YATL and the support provided by KMF, are presented. These experiments investigate different knowledge areas as programming languages, visual diagrams and distributed systems. YATL was used to implement the following transformations: * UML to Java mapping * Spider diagrams to OCL mapping * EDOC to Web Services
APA, Harvard, Vancouver, ISO, and other styles
2

Humphrey, Matthew Cameron. "Comparison of an object-oriented programming language to a procedural programming language for effectiveness in program maintenance." Thesis, Virginia Tech, 1988. http://hdl.handle.net/10919/45161.

Full text
Abstract:

New software tools and methodologies make claims that managers often believe intuitively without evidence. Many unsupported claims have been made about object-oriented programming. However, without rigorous scientific evidence, it is impossible to accept these claims as valid. Although experimentation has been done in the past, most of the research is very recent and the most relevant research has serious drawbacks. This study attempts to empirically verify the claim that object-oriented languages produce programs that are more easily maintained than those programmed with procedural languages. Measurements of subjects performing maintenance tasks onto two identical programs, one object-oriented and the other procedure-oriented show the object-oriented version to be more maintainable.
Master of Science

APA, Harvard, Vancouver, ISO, and other styles
3

Hart, N. M. "A CAD engineering language to aid manufacturing." Thesis, Loughborough University, 1986. http://ethos.bl.uk/OrderDetails.do?uin=uk.bl.ethos.374465.

Full text
APA, Harvard, Vancouver, ISO, and other styles
4

Jonkers, Stephanie Cavale. "Software Infrastructure for NeXtRAD Development in Julia Programming Language." Master's thesis, University of Cape Town, 2016. http://hdl.handle.net/11427/22995.

Full text
Abstract:
This dissertation presents the implementation of signal processing infrastructure in Julia Programming Language. The aim is to aid sea clutter analysis using NetRAD and NeXtRAD data. Scripts written in Julia Programming Language and supporting documentation on how to navigate through compressed HDF5 files, apply pulse compression, pulse-Doppler processing and an adaptive LMS filter for interference suppression is presented. Both serial and multi-core pulse compression and pulse-Doppler processing functions are implemented. The assessment of the algorithm computation times highlights Julia's dependence on large amounts of RAM and slow data movement between worker processes. Multi-core pulse compression on 130 000 pulses each with 2 048 samples was not found to be faster than the serial implementation. Multi-core pulse-Doppler processing was able to achieve a speedup of 1:6 for a dataset with 102 400 pulses. Datasets larger than 102 400 pulses resulted in a memory bottleneck. The adaptive LMS filter was validated by applying an OS-CFAR detector to match filtered data before and after filtering. The filter was unable to improve the precision or recall for highly cluttered pulses, but was able to reduce the number of highly cluttered pulses.
APA, Harvard, Vancouver, ISO, and other styles
5

Nilsson, Joel. "The Majo programming language : Creation and analysis of a programming language for parallelization." Thesis, Mittuniversitetet, Avdelningen för informationssystem och -teknologi, 2018. http://urn.kb.se/resolve?urn=urn:nbn:se:miun:diva-34071.

Full text
Abstract:
It is well known that parallelization of software is a difficult problem to solve. This project aimed to research a possible solution by creating a programming language for parallelization and subsequently analyzing its syntax and semantics. This analysis consisted of readability and writability tests followed by a subjective discussion from the point of view of the author. The project resulted in the Majo programming language. Majo uses a graph based concurrency model with implicit shared data synchronization. The model is integrated into the languages design, making it easier to use. The analysis of the language showed that the integration of the threading model simplifies the writing of parallel software. However, there are several syntactic elements that could be improved upon, especially regarding the communication between concurrently executing threads. In conclusion, the author believes that the way forward in regards to parallel programming is to make programming languages more human centric and design syntax in a way that intuitively expresses the underlying semantics.
APA, Harvard, Vancouver, ISO, and other styles
6

Tan, Roy Patrick. "Programming Language and Tools for Automated Testing." Diss., Virginia Tech, 2007. http://hdl.handle.net/10919/28684.

Full text
Abstract:
Software testing is a necessary and integral part of the software quality process. It is estimated that inadequate testing infrastructure cost the US economy between $22.2 and $59.5 billion. We present Sulu, a programming language designed with automated unit testing specifically in mind, as a demonstration of how software testing may be more integrated and automated into the software development process. Sulu's runtime and tools support automated testing from end to end; automating the generation, execution, and evaluation of test suites using both code coverage and mutation analysis. Sulu is also designed to fully integrate automatically generated tests with manually written test suites. Sulu's tools incorporate pluggable test case generators, which enables the software developer to employ different test case generation algorithms. To show the effectiveness of this integrated approach, we designed an experiment to evaluate a family of test suites generated using one test case generation algorithm, which exhaustively enumerates every sequence of method calls within a certain bound. The results show over 80\% code coverage and high mutation coverage for the most comprehensive test suite generated.
Ph. D.
APA, Harvard, Vancouver, ISO, and other styles
7

Weber, Mats. "Proposals for enhancement of the ADA programming language : a software engineering perspective /." [S.l.] : [s.n.], 1994. http://library.epfl.ch/theses/?nr=1227.

Full text
APA, Harvard, Vancouver, ISO, and other styles
8

Parsa, Saeed. "Design and specification of a program specification language for engineering applications." Thesis, University of Salford, 1992. http://ethos.bl.uk/OrderDetails.do?uin=uk.bl.ethos.357026.

Full text
APA, Harvard, Vancouver, ISO, and other styles
9

Benini, Enrico. "Functional Programming In Modern Software Systems." Master's thesis, Alma Mater Studiorum - Università di Bologna, 2017. http://amslaurea.unibo.it/13264/.

Full text
Abstract:
Con questa tesi si vuole studiare come il paradigma funzionale, sebbene sia meno utilizzato rispetto alle controparti imperative ed object oriented, stia influenzando l'industria del software. Durante la trattazione verranno analizzate le motivazioni alla base di questa tendenza e illustrate, attraverso semplici esempi, le principali astrazioni fondanti lo stile funzionale. I risultati delle analisi svolte mostrano come lo stile funzionale sia oramai una conoscenza essenziale e un'alternativa matura e concreta per la produzione del software. Inoltre, questo argomento viene avvalorato dalla crescente importanza che stanno assumendo proprietà software come: concorrenza, scalabilità, correttezza e manutenibilità. Infine, alla luce di queste considerazioni, si presenta un semplice domain-specific language estensibile e integrabile con applicazioni già esistenti. Questo incorpora un sottoinsieme dei concetti trattati e una precisa architettura con lo scopo di astrarre dalle esistenti tecnologie e rendere queste tematiche accessibili.
APA, Harvard, Vancouver, ISO, and other styles
10

Santi, Andrea <1985&gt. "Engineering Agent-Oriented Technologies and Programming Languages for Computer Programming and Software Development." Doctoral thesis, Alma Mater Studiorum - Università di Bologna, 2013. http://amsdottorato.unibo.it/5634/.

Full text
Abstract:
Mainstream hardware is becoming parallel, heterogeneous, and distributed on every desk, every home and in every pocket. As a consequence, in the last years software is having an epochal turn toward concurrency, distribution, interaction which is pushed by the evolution of hardware architectures and the growing of network availability. This calls for introducing further abstraction layers on top of those provided by classical mainstream programming paradigms, to tackle more effectively the new complexities that developers have to face in everyday programming. A convergence it is recognizable in the mainstream toward the adoption of the actor paradigm as a mean to unite object-oriented programming and concurrency. Nevertheless, we argue that the actor paradigm can only be considered a good starting point to provide a more comprehensive response to such a fundamental and radical change in software development. Accordingly, the main objective of this thesis is to propose Agent-Oriented Programming (AOP) as a high-level general purpose programming paradigm, natural evolution of actors and objects, introducing a further level of human-inspired concepts for programming software systems, meant to simplify the design and programming of concurrent, distributed, reactive/interactive programs. To this end, in the dissertation first we construct the required background by studying the state-of-the-art of both actor-oriented and agent-oriented programming, and then we focus on the engineering of integrated programming technologies for developing agent-based systems in their classical application domains: artificial intelligence and distributed artificial intelligence. Then, we shift the perspective moving from the development of intelligent software systems, toward general purpose software development. Using the expertise maturated during the phase of background construction, we introduce a general-purpose programming language named simpAL, which founds its roots on general principles and practices of software development, and at the same time provides an agent-oriented level of abstraction for the engineering of general purpose software systems.
APA, Harvard, Vancouver, ISO, and other styles
11

Spenceley, Susan Ella. "The principle-based parsing of natural language in the engineering of intelligent systems." Thesis, University of Reading, 1992. http://ethos.bl.uk/OrderDetails.do?uin=uk.bl.ethos.317151.

Full text
APA, Harvard, Vancouver, ISO, and other styles
12

Temmel, Adam. "Ghoul: A cache-friendly programming language." Thesis, Mittuniversitetet, Institutionen för informationssystem och –teknologi, 2020. http://urn.kb.se/resolve?urn=urn:nbn:se:miun:diva-39335.

Full text
Abstract:
Prestanda har historiskt sett alltid varit av betydelse för nyttjandet av datorer, vilket lett till att processorutvecklare har tagit fram flera olika metoder för att klämma ut mer processorkraft från processorn. Ett av dessa koncept är processorns cacheminne, som ansvarar för att lagra data processorn förväntar sig att behöva inom en snar framtid. Om cacheminnet nyttjats väl så innebär detta att processorn can behandla data i en mycket snabbare takt, vilket direkt påverkar prestanda. På grund av detta vill utvecklare gärna skriva kod som nyttjar cacheminnet till fullo. Detta är inte alltid en enkel uppgift, då de programmeringsmönster och beteenden utvecklaren måste anpassa sig till går att anse vara klumpiga för utvecklaren. Den här studioen kommer utforska möjligheterna att sammanfoga cachevänliga programmeringskoncept med utvecklarvänlig syntax, vilket resulterar i ett programmeringsspråk som är både läsbart, skrivbart samt effektivt med hänsyn till processorns cacheminne. För att lyckas med denna uppgift har studier på mönster inom minnesåtkomst, befintliga programmeringsspråk och kompilatordesign genomförts. Slutprodukten är ett språl vid namn Ghoul som implementerar cachevänliga koncept på en syntaktisk nivå, komplett med en fungerande kompilator. Utdata från denna kompilator blev senare prestandatestad för att avgöra huruvida de koncept språket introducerar har en märkbar påverkan på prestandan av program skrivna i detta språk. Testen visade att de tidigare nämnda konceptet direkt visar ett inflytande på hastigheten data kan behandlas i språket.
Performance has historically always been of importance to computing, and as such, processor developers have brought up several different methods to squeeze out more processing power from the processor. One of these concepts is the presence of a CPU cache memory, whose responsibility is to hold data the processor expects it might use soon. To utilize the cache well means that the processor can compute data at a much higher rate, resulting in a direct impact on performance. Therefore, it follows that it is in the developer’s best interest to write code capable of utilizing the cache memory to its full extent. This is not always an easy task however, as the patterns and style of programming the developer may need to adapt to can come of as cumbersome. This study will explore the possibilities of merging cache-friendly programming concepts with a developer-friendly syntax, resulting in a language that is both readable, writeable as well as efficient in regards to the processor cache. In order to accomplish this task, studies of memory access patterns, existing programming languages and compiler design has been performed. The end product is a language called Ghoul which successfully implements cache-friendly concepts on a syntactic level, complete with a working compiler. Outputs from this compiler were later benchmarked to assert that the concepts introduced had a measurable impact on the performance of programs written in Ghoul, showing that the aforementioned syntactical concepts indeed directly influence the speed at which data can be processed.
APA, Harvard, Vancouver, ISO, and other styles
13

BARREIROS, Emanoel Francisco Spósito. "The epidemics of programming language adoption." Universidade Federal de Pernambuco, 2016. https://repositorio.ufpe.br/handle/123456789/18000.

Full text
Abstract:
Submitted by Irene Nascimento (irene.kessia@ufpe.br) on 2016-10-17T18:29:55Z No. of bitstreams: 2 license_rdf: 1232 bytes, checksum: 66e71c371cc565284e70f40736c94386 (MD5) phd_efsb_FINAL_BIBLIOTECA.pdf: 7882904 bytes, checksum: df094c44eb4ce5be12596263047790ed (MD5)
Made available in DSpace on 2016-10-17T18:29:55Z (GMT). No. of bitstreams: 2 license_rdf: 1232 bytes, checksum: 66e71c371cc565284e70f40736c94386 (MD5) phd_efsb_FINAL_BIBLIOTECA.pdf: 7882904 bytes, checksum: df094c44eb4ce5be12596263047790ed (MD5) Previous issue date: 2016-08-29
FACEPE
Context: In Software Engineering, technology transfer has been treated as a problem that concernsonly two agents (innovation and adoption agents) working together to fill the knowledge gap between them. In this scenario, the transfer is carried out in a “peer-to-peer” fashion, not changing the reality of individuals and organizations around them. This approach works well when one is just seeking the adoption of a technology by a“specific client”. However, it can not solve a common problem that is the adoption of new technologies by a large mass of potential new users. In a wider context like this, it no longer makes sense to focus on “peer-to-peer” transfer. A new way of looking at the problem is necessary. It makes more sense to approach it as diffusion of innovations, where there is an information spreading in a community, similar to that observed in epidemics. Objective: This thesis proposes a paradigm shift to show the adoption of programming languages can be formally addressed as an epidemic. This focus shift allows the dynamics of programming language adoption to be mathematically modelled as such, and besides finding models that explain the community’s behaviour when adopting programming languages, it allows some predictions to be made, helping both individuals who wish to adopt a new language that might seem to be a new industry standard, and language designers to understand in real time the adoption of a particular language by a community. Method: After a proof of concept with data from Sourceforge (2000 to 2009), data from GitHub (2009 to January 2016), a well-known open source software repository, and Stack Overflow (2008 to March 2016), a popular Q&A system for software developers, were obtained and preprocessed. Using cumulative biological growth functions, often used in epidemiological contexts, we obtained adjusted models to the data. Once with the adjusted models, we evaluated their predictive capabilities through repeated applications of hypothesis testing and statistical calculations in different versions of the models obtained after adjusting the functions to samples of different time frames from the repositories. Results: We show that programming language adoption can be formally considered an epidemiological phenomenon by adjusting a well-known mathematical function used to describe such phenomena. We also show that, using the models found, it is possible to forecast programming languages adoption. We also show that it is possible to have similar insights by observing user data, as well as data from the community itself, not using software developers as susceptible individuals. Limitations: The forecast of the adoption outcome (asymptote) needs to be taken with care because it varies depending on the sample size, which also influences the quality of forecasts in general. Unfortunately, we not always have control over the sample size, because it depends on the population under analysis. The forecast of programming language adoption is only valid for the analysed population; generalizations should be made with caution. Conclusion: Addressing programming languages adoption as an epidemiological phenomenon allows us to perform analyses not possible otherwise. We can have an overview of a population in real time regarding the use of a programming language, which allows us, as innovation agents, to adjust our technology if it is not achieving the desired “penetration”; as adoption agents, we may decide, ahead of our competitors, to adopt a seemingly promising technology that may ultimately become a standard.
Contexto: Em Engenharia de Software, transferência de tecnologia tem sido tratada como um problema pontual, um processo que diz respeito a dois agentes (os agentes de inovação e adoção) trabalhando juntos para preencher uma lacuna no conhecimento entre estes dois. Neste cenário, a transferência é realizada “ponto a ponto”, envolvendo e tendo efeito apenas nos indivíduos que participam do processo. Esta abordagem funciona bem quando se está buscando apenas a adoção da tecnologia por um “cliente” específico. No entanto, ela não consegue resolver um problema bastante comum que é a adoção de novas tecnologias por uma grande massa de potenciais novos usuários. Neste contexto mais amplo, não faz mais sentido focar em transferência ponto a ponto, faz-se necessária uma nova maneira de olhar para o problema. É mais interessante abordá-lo como difusão de inovações, onde existe um espalhamento da informação em uma comunidade, de maneira semelhante ao que se observa em epidemias. Objetivo: Esta tese de doutorado mostra que a adoção de linguagens de programação pode ser tratada formalmente como uma epidemia. Esta mudança conceitual na maneira de olhar para o fenômeno permite que a dinâmica da adoção de linguagens de programação seja modelada matematicamente como tal, e além de encontrar modelos que expliquem o comportamento da comunidade quando da adoção de uma linguagem de programação, permite que algumas previsões sejam realizadas, ajudando tanto indivíduos que desejem adotar uma nova linguagem que parece se apresentar como um novo padrão industrial, quanto ajudando projetistas de linguagens a entender em tempo real a adoção de uma determinada linguagem pela comunidade. Método: Após uma prova de conceito com dados do Sourceforge (2000 a 2009), dados do GitHub (2009 a janeiro de 2016) um repositório de projetos software de código aberto, e Stack Overflow (2008 a março de 2016) um popular sistema de perguntas e respostas para desenvolvedores de software, from obtidos e pré processados. Utilizando uma função de crescimento biológico cumulativo, frequentemente usada em contextos epidemiológicos, obtivemos modelos ajustados aos dados. Uma vez com os modelos ajustados, realizamos avaliações de sua precisão. Avaliamos suas capacidades de previsão através de repetidas aplicações de testes de hipóteses e cálculos de estatísticas em diferentes versões dos modelos, obtidas após ajustes das funções a amostras de diferentes tamanhos dos dados obtidos. Resultados: Mostramos que a adoção de linguagens de programação pode ser considerada formalmente um fenômeno epidemiológico através do ajuste de uma função matemática reconhecidamente útil para descrever tais fenômenos. Mostramos também que é possível, utilizando os modelos encontrados, realizar previsões da adoção de linguagens de programação em uma determinada comunidade. Ainda, mostramos que é possível obter conclusões semelhantes observando dados de usuários e dados da comunidade apenas, não usando desenvolvedores de software como indivíduos suscetíveis. Limitações: A previsão do limite superior da adoção (assíntota) não é confiável, variando muito dependendo do tamanho da amostra, que também influencia na qualidade das previsões em geral. Infelizmente, nem sempre teremos controle sob o tamanho da amostra, pois ela depende da população em análise. A adoção da linguagem de programação só é válida para a população em análise; generalizações devem ser realizadas com cautela. Conclusão: Abordar o fenômeno de adoção de linguagens de programação como um fenômeno epidemiológico nos permite realizar análises que não são possíveis de outro modo. Podemos ter uma visão geral de uma população em tempo real no que diz respeito ao uso de uma linguagem de programação, o que nos permite, com agentes de inovação, ajustar a tecnologia caso ela não esteja alcançando o alcance desejado; como agentes de adoção, podemos decidir por adotar uma tecnologia aparentemente promissora que pode vir a se tornar um padrão.
APA, Harvard, Vancouver, ISO, and other styles
14

Krein, Jonathan L. "Programming Language Fragmentation and Developer Productivity: An Empirical Study." BYU ScholarsArchive, 2011. https://scholarsarchive.byu.edu/etd/2477.

Full text
Abstract:
In an effort to increase both the quality of software applications and the efficiency with which applications can be written, developers often incorporate multiple programming languages into software projects. Although language specialization arguably introduces benefits, the total impact of the resulting language fragmentation (working concurrently in multiple programming languages) on developer performance is unclear. For instance, developers may solve problems more efficiently when they have multiple language paradigms at their disposal. However, the overhead of maintaining efficiency in more than one language may outweigh those benefits. This thesis represents a first step toward understanding the relationship between language fragmentation and programmer productivity. We address that relationship within two different contexts: 1) the individual developer, and 2) the overall project. Using a data-centered approach, we 1) develop metrics for measuring productivity and language fragmentation, 2) select data suitable for calculating the needed metrics, 3) develop and validate statistical models that isolate the correlation between language fragmentation and individual programmer productivity, 4) develop additional methods to mitigate threats to validity within the developer context, and 5) explore limitations that need to be addressed in future work for effective analysis of language fragmentation within the project context using the SourceForge data set. Finally, we demonstrate that within the open source software development community, SourceForge, language fragmentation is negatively correlated with individual programmer productivity.
APA, Harvard, Vancouver, ISO, and other styles
15

Delorey, Daniel Pierce. "Observational Studies of Software Engineering Using Data from Software Repositories." Diss., CLICK HERE for online access, 2007. http://contentdm.lib.byu.edu/ETD/image/etd1716.pdf.

Full text
APA, Harvard, Vancouver, ISO, and other styles
16

Holm, Magnus. "Compiling the parallel programming language NestStep to the CELL processor." Thesis, Linköping University, Department of Computer and Information Science, 2010. http://urn.kb.se/resolve?urn=urn:nbn:se:liu:diva-57871.

Full text
Abstract:

The goal of this project is to create a source-to-source compiler which will translate NestStep code to C code. The compiler's job is to replace NestStep constructs with a series of function calls to the NestStep runtime system. NestStep is a parallel programming language extension based on the BSP model. It adds constructs for parallel programming on top of an imperative programming language. For this project, only constructs extending the C language are relevant. The output code will compile to form an executable program that runs on the multicore processor Cell Broadband Engine (Cell BE). The NestStep runtime system has been ported to the Cell BE and is available from start of this project.

APA, Harvard, Vancouver, ISO, and other styles
17

Selig, Calvin Lee. "ADLIF-a structured design language for metric analysis." Thesis, Virginia Tech, 1987. http://hdl.handle.net/10919/45917.

Full text
Abstract:

Since the inception of software engineering, the major goal has been to control the development and maintenance of reliable software. To this end, many different design methodologies have been presented as a means to improve software quality through semantic clarity and syntactic accuracy during the specification and design phases of the software life cycle. On the other end of the life cycle, software quality metrics have been proposed to supply quantitative measures of the resultant software. This study is an attempt to unify the two concepts by providing a means to determine the quality of a design before its implementation.


Master of Science
APA, Harvard, Vancouver, ISO, and other styles
18

Pierson, Graham C. "Code maintenance and design for a visual programming language graphical user interface." Thesis, Monterey, Calif. : Springfield, Va. : Naval Postgraduate School ; Available from National Technical Information Service, 2004. http://library.nps.navy.mil/uhtbin/hyperion/04Sep%5FPierson.pdf.

Full text
APA, Harvard, Vancouver, ISO, and other styles
19

Wells, Garrett. "The Future of iOS Development: Evaluating the Swift Programming Language." Scholarship @ Claremont, 2015. http://scholarship.claremont.edu/cmc_theses/1179.

Full text
Abstract:
Swift is a new programming language developed by Apple for creating iOS and Mac OS X applications. Intended to eventually replace Objective-C as Apple’s language of choice, Swift needs to convince developers to switch over to the new language. Apple has promised that Swift will be faster than Objective-C, as well as offer more modern language features, be very safe, and be easy to learn and use. In this thesis I test these claims by creating an iOS application entirely in Swift as well as benchmarking two different algorithms. I find that while Swift is faster than Objective-C, it does not see the speedup projected by Apple. I also conclude that Swift offers many advantages over Objective-C, and is easy for developers to learn and use. However there are some weak areas of Swift involving interactions with Objective-C and the strictness of the compiler that can make the language difficult to work with. Despite these difficulties Swift is overall a successful project for Apple and should attract new developers to their platform.
APA, Harvard, Vancouver, ISO, and other styles
20

Tonchev, Ognyan, and Mohammed Salih. "High-level programming languages translator." Thesis, Blekinge Tekniska Högskola, Avdelningen för för interaktion och systemdesign, 2008. http://urn.kb.se/resolve?urn=urn:nbn:se:bth-2560.

Full text
Abstract:
This paper discusses a high level language translator. If we divide translators of programming languages in two types: those working for two specific languages and universal translators that can be used for translation between different programming languages, the solution that will be presented in this work can be classified as both, specific language oriented and an universal translator. For the purpose of the research it was limited to translate only from Java to C++, but it can easily be extended to translate between any other high level languages. For simplifying the process of translation the project uses an intermediate step. All programs in the input language are first compiled to an abstract XML language and then to the desired output language. That way it is not necessary to translate directly from one programming language to another which is a very tricky and difficult task and could make the solution difficult to be maintained and extended. Hence the translator can also be used to translate from any high level language to XML. That gives another advantage to our solution: an XML representation of a computer program is valuable information by itself. We describe the design and implementation of the solution, demonstrate how it works and also give information on how it can be extended to work for any other programming language.
This paper discusses a high level language translator. If we divide translators of programming languages in two types: those working for two specific languages and universal translators that can be used for translation between different programming languages, the solution that will be presented in this work can be classified as both, specific language oriented and an universal translator. For the purpose of the research it was limited to translate only from Java to C++, but it can easily be extended to translate between any other high level languages. For simplifying the process of translation the project uses an intermediate step. All programs in the input language are first compiled to an abstract XML language and then to the desired output language. That way it is not necessary to translate directly from one programming language to another which is a very tricky and difficult task and could make the solution difficult to be maintained and extended. Hence the translator can also be used to translate from any high level language to XML. That gives another advantage to our solution: an XML representation of a computer program is valuable information by itself. We describe the design and implementation of the solution, demonstrate how it works and also give information on how it can be extended to work for any other programming language.
APA, Harvard, Vancouver, ISO, and other styles
21

Goff, Windell H. "Programming wizards generating syntax-free conceptual editors /." Morgantown, W. Va. : [West Virginia University Libraries], 1999. http://etd.wvu.edu/templates/showETD.cfm?recnum=536.

Full text
Abstract:
Thesis (M.S.)--West Virginia University, 1999.
Title from document title page. Document formatted into pages; contains v, 54 p. : ill. Includes abstract. Includes bibliographical references (p. 46-47).
APA, Harvard, Vancouver, ISO, and other styles
22

Mairhofer, Stefan. "Search-based software testing and complex test data generation in a dynamic programming language." Thesis, Blekinge Tekniska Högskola, Avdelningen för programvarusystem, 2008. http://urn.kb.se/resolve?urn=urn:nbn:se:bth-4340.

Full text
Abstract:
Manually creating test cases is time consuming and error prone. Search-based software testing (SBST) can help automate this process and thus to reduce time and effort and increase quality by automatically generating relevant test cases. Previous research have mainly focused on static programming languages with simple test data inputs such as numbers. In this work we present an approach for search-based software testing for dynamic programming languages that can generate test scenarios and both simple and more complex test data. This approach is implemented as a tool in and for the dynamic programming language Ruby. It uses an evolutionary algorithm to search for tests that gives structural code coverage. We have evaluated the system in an experiment on a number of code examples that differ in complexity and the type of input data they require. We compare our system with the results obtained by a random test case generator. The experiment shows, that the presented approach can compete with random testing and, for many situations, quicker finds tests and data that gives a higher structural code coverage.
APA, Harvard, Vancouver, ISO, and other styles
23

Akhter, Adeel, and Hassan Azhar. "Statistical Debugging of Programs written in Dynamic Programming Language : RUBY." Thesis, Blekinge Tekniska Högskola, Sektionen för datavetenskap och kommunikation, 2010. http://urn.kb.se/resolve?urn=urn:nbn:se:bth-1993.

Full text
Abstract:
Debugging is an important and critical phase during the software development process. Software debugging is serious and tough practice involved in functional base test driven development. Software vendors encourages their programmers to practice test driven development during the initial development phases to capture the bug traces and the associated code coverage infected from diagnosed bugs. Application’s source code with fewer threats of bug existence or faulty executions is assumed as highly efficient and stable especially when real time software products are in consideration. Due to the fact that process of development of software projects relies on great number of users and testers which required having an effective fault localization technique. This specific fault localization technique can highlight the most critical areas of software system at code as well as modular level so that debugging algorithm can be used to debug the application source code. Nowadays many complex or simple software systems are in corporation with open bug repositories to localize the bugs. Any inconsistency or imperfection in early development phase of software product results in low efficient system and less reliability. Statistical debugging of program source code for visualization of fault is an important and efficient way to select and rank the suspicious lines of code. This research provides guidelines for practicing statistical debugging technique for programs coded in Ruby programming language. This thesis presents statistical debugging techniques available for dynamic programming languages. Firstly, the statistical debugging techniques were thoroughly observed with different predicate base approaches followed in previous work done in the subject area. Secondly, the new process of statistical debugging for programs coded in Ruby programming language is introduced by generating dynamic predicates. Results were analyzed by implementing multiple programs written in Ruby programming language with different complexity level. The analysis of experimentation performed on candidate programs depict that SOBER is more efficient and accurate in bug identification than Cause Isolation Scheme. It is concluded that despite of extensive research in the field of statistical debugging and fault localization it is not possible to identify majority of the bugs. Moreover SOBER and Cause Isolation Scheme algorithms are found to be two most mature and effective statistical debugging algorithms for bug identification with in software source code.
Address: School of Computing Blekinge Institute of Technology SE-371 79 Karlskrona, Sweden Phone: +46-(0)455-385804 Fax: +46-(0)455-385057
APA, Harvard, Vancouver, ISO, and other styles
24

AlSuhaibani, Reem Saleh. "Part-of-Speech Tagging of Source Code Identifiers using Programming Language Context Versus Natural Language Context." Kent State University / OhioLINK, 2015. http://rave.ohiolink.edu/etdc/view?acc_num=kent1448502094.

Full text
APA, Harvard, Vancouver, ISO, and other styles
25

Monteiro, Borba Paulo Henrique. "Semantics and refinement for a concurrent object oriented language." Thesis, University of Oxford, 1995. http://ora.ox.ac.uk/objects/uuid:33161f48-b329-4553-aed9-70f48e3c57cb.

Full text
Abstract:
FOOPS is a concurrent object oriented specification language with an executable subset. In this thesis we propose an extension of FOOPS with features for specifying systems of distributed and autonomous objects. This extension supports most features of concurrent object oriented programming, including classes of objects with associated methods and attributes, object identity, dynamic object creation and deletion, overloading, polymorphism, inheritance with overriding, dynamic binding, concurrency, nondeterminism, atomic execution, evaluation of method expressions as background processes, and object protection. The main contribution of this thesis is to develop a framework for supporting formal development of software in the extension of FOOPS mentioned above. In particular, we introduce a structural operational semantics for FOOPS, a notion of refinement for concurrent object oriented programs, congruence properties of refinement of FOOPS programs, and tools for mechanising refinement proofs. The operational semantics is the core of the formal definition of FOOPS. It is used to define notions of refinement for FOOPS states, programs, and specifications. Those notions and associated proof techniques for proving refinement are used to illustrate stepwise formal development of programs in FOOPS. The congruence properties of refinement (with respect to some of FOOPS operators) justify compositional development of software in FOOPS. The tools help to validate the framework introduced in this thesis and motivate its use in practice.
APA, Harvard, Vancouver, ISO, and other styles
26

Karlsson, Nina. "Language Manager Version 2.0." Thesis, Örebro universitet, Institutionen för naturvetenskap och teknik, 2013. http://urn.kb.se/resolve?urn=urn:nbn:se:oru:diva-30043.

Full text
Abstract:
This report describes an examination project made for the IT consultingcompany Sogeti. The purpose of the project was to develop and modify the translation tool Language Manager (LM) built by Sogeti to be used for translating applications. Employees at Sogeti considered some disadvantages with Language Manager, version 1.0 which among others was that language files for projects were saved at two locations. Partly in resource maps among with the source code of the applications and partly in a database. This was dual work for employees at Sogeti and it also caused redundancy inthe system. Also employees at Sogeti thought that the managing of projects and versioning did not adapt to how the system was needed to be used. The destination by the examination project was to remove the database and only use XML-files to handle languages, and also to make the new Language Manager easier to work with. New users should easily understand how to handle terms and translation in the new application and no manual should be needed to perform tasks. Language Manager version 2.0 should be written in C# .Net Framework 4.5 and the graphical user interface should be created with Windows Presentation Foundation (WPF). Sogeti wished for the Model-View-ViewModel pattern (MVVM) to be implemented. The new tool was supposed to be robust and simple with a future-safe architecture.
Den här rapporten beskriver ett examensarbete som genomfördes åt IT-konsultbolaget Sogeti med syfte till att vidareutveckla och omarbeta översättningsverktyget Language Manager (LM) som var tillverkat av Sogeti och som användes till att översätta applikationer. Anställda på Sogeti ansåg att det fanns vissa nackdelar med Language Manager version 1.0 som bland annat var att språkfiler för projekt lagrades på två platser. Dels i resursmappar tillsammans med applikationernas källkod och dels i en databas. Detta medförde dubbelt arbete för de anställda på Sogeti när de arbetade med Language Manager och det orsakade även redundans i systemet. På Sogeti ansåg man även att hanteringen av projekt och versionshanteringen av språkdata i Language Manager version 1.0 inte passade ihop med hur man arbetade med programmet. Målet med examensarbetet var att avlägsna databasen och endast arbeta med XML-filer som förvaring av språk och att Language Manager version 2.0 skulle bli enklare och mer lättarbetat. Nya användare skullemed lätthet förstå hur hantering av termer och översättning skulle göras utan hjälp av manual. Det nya översättningsverktyget skulle skrivas i C# .Net Framework 4.5 och Windows Presentation Foundation (WPF) skulle användas för att implementera det grafiska gränssnittet tillsammans med Model-View-ViewModel-mönstret (MVVM).Särskild inriktning skulle framför allt vara mot robusthet, enkelhet och med en framtidssäker arkitektur.
APA, Harvard, Vancouver, ISO, and other styles
27

Huang, Shan Shan. "Structural abstraction." Diss., Atlanta, Ga. : Georgia Institute of Technology, 2009. http://hdl.handle.net/1853/29632.

Full text
Abstract:
Thesis (Ph.D)--Computing, Georgia Institute of Technology, 2010.
Committee Chair: Yannis Smaragdakis; Committee Member: Oege de Moor; Committee Member: Richard LeBlanc; Committee Member: Santosh Pande; Committee Member: Spencer Rugaber. Part of the SMARTech Electronic Thesis and Dissertation Collection.
APA, Harvard, Vancouver, ISO, and other styles
28

Sin, Tak-wah. "An empirical study on the difficulties of senior secondary students in learning PASCAL programming." Hong Kong : University of Hong Kong, 1995. http://sunzi.lib.hku.hk/hkuto/record.jsp?B14042824.

Full text
APA, Harvard, Vancouver, ISO, and other styles
29

Tilley, Thomas. "Formal concept analysis applications to requirements engineering and design /." [St. Lucia, Qld.], 2003. http://adt.library.uq.edu.au/public/adt-QU20050223.204947/index.html.

Full text
APA, Harvard, Vancouver, ISO, and other styles
30

Gordon, Christopher Todd. "A visual language for ADA program unit specifications." Thesis, This resource online, 1990. http://scholar.lib.vt.edu/theses/available/etd-06232009-063007/.

Full text
APA, Harvard, Vancouver, ISO, and other styles
31

Saeed, Farrakh, and Muhammad Saeed. "Systematic Review of Verification and Validation in Dynamic Programming Languages." Thesis, Blekinge Tekniska Högskola, Avdelningen för programvarusystem, 2008. http://urn.kb.se/resolve?urn=urn:nbn:se:bth-3239.

Full text
Abstract:
The Verification and Validation provides support to improve the quality of the software. Verification and Validation ensures that the product is stable and developed according to the requirements of the end user. This thesis presents a systematic review of dynamic programming languages and verification & validation practices used for dynamic languages. This thesis presents results found in dynamic programming languages and verification & validation over the period of 1985 – 2008. The study is aimed to start from identification of dynamic aspects along with the differences between static and dynamic languages. Furthermore, this thesis is also intends to give overview of the verification and validation practices for dynamic languages. Moreover to validate the verification and validation results, a survey consisting of (i) interviews and (ii) online survey is conducted. After the analysis of systematic review, it has been found that dynamic languages are making progress in some of the areas like integration of common development framework, language enhancement, dynamic aspects etc. The Dynamic languages are lacking in providing a better performance than static languages. There are also some factors found in this study that can raise the popularity of dynamic languages in the industry. Based on the analysis of systematic review, interviews and online survey, it is concluded that there is no difference between the methodologies available for Verification and Validation. It is also revealed that dynamic languages provide support to maintain software quality with their characteristics and dynamic features. Moreover, they also support to test softwares developed with static language. It is concluded that test driven development should be adopted while working with the dynamic languages. Test driven development is supposed to be a mandatory part of dynamic languages.
Farrakh Saeed +46765597558
APA, Harvard, Vancouver, ISO, and other styles
32

Khatchadourian, Raffi Takvor. "Techniques for Automated Software Evolution." The Ohio State University, 2011. http://rave.ohiolink.edu/etdc/view?acc_num=osu1304885155.

Full text
APA, Harvard, Vancouver, ISO, and other styles
33

Bronish, Derek. "Abstraction as the Key to Programming, with Issues for Software Verification in Functional Languages." The Ohio State University, 2012. http://rave.ohiolink.edu/etdc/view?acc_num=osu1338317549.

Full text
APA, Harvard, Vancouver, ISO, and other styles
34

McQueen, Sean. "Javascript and Politics: How a Toy Language Took Over the World." Scholarship @ Claremont, 2013. http://scholarship.claremont.edu/cmc_theses/758.

Full text
Abstract:
The most important programming languages are the ones that manage to capitalize on emerging frontiers in computing. Although JavaScript started its life as a toy language, the explosive growth of the web since 1995 and the invention of the web application have transformed the language’s syntax, potential and importance. JavaScript today is powerful and expressive. But is the language good enough to power the future of the web? How does the messy political past of JavaScript affect web development today, and how will it affect web development in the future? The paper first examines the political history of JavaScript from its origins at Netscape through today. Then a case study of pure JavaScript web development using the NodeJS and AngularJS is presented and analyzed. Finally, several potential paths forward for the language are considered, including a discussion and analysis of Microsoft’s TypeScript, Mozilla’s ASM.js and Google’s Dart.
APA, Harvard, Vancouver, ISO, and other styles
35

Andersson, Adam, and Ludwig Hansson. "Modernizing the Syntax of Regular Expressions." Thesis, Blekinge Tekniska Högskola, Institutionen för programvaruteknik, 2020. http://urn.kb.se/resolve?urn=urn:nbn:se:bth-19895.

Full text
Abstract:
Context Writing and working with regular expressions could be a slow and tedious task,which is mainly because of its syntax, but also because there exist several different dialectswhich easily could cause confusion. Even though regular expression has been widely used forparsing and programming language design, they are now frequently used for input validationand seen in common applications such as text editors. Objectives The main objectives of our thesis are to determine whether or not a regularexpression language that is more like the surrounding programming language would increaseusability, readability, and maintainability. We will then investigate further into what kind ofimpact this would have regarding e.g, development speed, and what benefits and liabilities amore modernized syntax could introduce. Methods Two different methods were used to answer our research questions, exploratory in-terviews, and experiments. The data from the experiments were collected by screen recordingand a program in the environment we provided to the participant. Results.By doing interviews with developers that use traditional regular expressions on aregular basis, their stories confirm that its syntax is confusing even for developers with alot of experience. Our results from the experiment indicate that a language more like thesurrounding language increases both the overall ease of use and development speed. Conclusions From this research, we can conclude that a regular expression language thatis more like the surrounding programming language does increase usability, readability, andmaintainability. We could clearly see that it had a positive effect on the development speed aswell. Keywords — regular expressions, programming language design, readability
APA, Harvard, Vancouver, ISO, and other styles
36

Nguyen, Dong Ha. "A VPA-based Aspect Language." Phd thesis, Université de Nantes, 2011. http://tel.archives-ouvertes.fr/tel-00642636.

Full text
Abstract:
This thesis focuses on the development of an advanced history-based aspect language and approaches to certain related issues ranging from applications to analysis methods. The aspect language, namely VPA-based Aspect Language, is defined upon visibly pushdown au- tomata (VPAs) [21]. This language is essentially an extension from an existing framework [47] of regular aspect languages. It features VPA-based pointcuts and provides, in particu- lar, constructors for the declarative definition of pointcuts based on regular and non-regular structures. We have also extended and developed the technique for detecting automatically potential interactions among VPA-based aspects. Despite several advantages of the class of visibly pushdown automata, there has been no practical support for them available. Therefore, we have realized a library called VPAlib that provides the implementation of essential data structures and operations for the VPA. This library is essential to enable the construction and analysis of VPA-based aspects. For instance, we have successfully performed certain analysis for detecting interactions among aspects using this library. In order to motivate the use of VPA-based aspects, we have studied two basic kinds of distributed applications, one representing typical systems with nested login sessions, and the other representing a grid computing system over peer-to-peer network. We have shown how VPA-based aspects can be useful for the realization of certain functionalities of these typical distributed applications. Thanks to their highly expressive pointcuts, another important application of VPA-based aspects is to define evolution on component-based systems, especially those with explicit component protocols. The use of aspects over component protocols, however, may break the coherence between the components of the system. We have further developed proof methods to establish the preservation of fundamental correctness properties, such as compatibility and substitutability relations between software components after the application of VPA-based aspects. Finally, we have considered the use of model checking techniques to verify systems that are modified by aspects. The goal of the verification is to check whether an aspect violates the global properties of a base system or the properties of other aspects. We have chosen the approach in which we create an abstract model from the VPA model and then run a model checker that is capable of checking the abstract model against the properties. We formally define the abstraction process and demonstrate our model checking approach via examples.
APA, Harvard, Vancouver, ISO, and other styles
37

Xiao, Yong. "From syntactic theories to interpreters : specifying and proving properties /." view abstract or download file of text, 2004. http://wwwlib.umi.com/cr/uoregon/fullcit?p3136455.

Full text
Abstract:
Thesis (Ph. D.)--University of Oregon, 2004.
Typescript. Includes vita and abstract. Includes bibliographical references (leaves 152-155). Also available for download via the World Wide Web; free to University of Oregon users.
APA, Harvard, Vancouver, ISO, and other styles
38

New, Wesley. "Python based FPGA design-flow." Master's thesis, University of Cape Town, 2016. http://hdl.handle.net/11427/20339.

Full text
Abstract:
This dissertation undertakes to establish the feasibility of using MyHDL as a basis on which to develop an FPGA-based DSP tool-ow to target CASPER hardware. MyHDL is an open-source package which enables Python to be used as a hardware definition and verification language. As Python is a high-level language, hardware designers can use it to model and simulate designs, without needing detailed knowledge of the underlying hardware. MyHDL has the ability to convert designs to Verilog or VHDL allowing it to integrate into the more traditional design-ow. The CASPER tool- ow exhibits limitations such as design environment instability and high licensing fees. These shortcomings are addressed by MyHDL. To enable CASPER to take advantage of its powerful features, MyHDL is incorporated into a next generation tool-ow which enables high-level designs to be fully simulated and implemented on the CASPER hardware architectures.
APA, Harvard, Vancouver, ISO, and other styles
39

Shear, Raymond F. "Implementation of a Modula 2 subset compiler supporting a "C" language interface using commonly available UNIX tools /." Online version of thesis, 1989. http://hdl.handle.net/1850/10505.

Full text
APA, Harvard, Vancouver, ISO, and other styles
40

Johnson, Pontus, and Mathias Ekstedt. "Predicting the effort of program language comprehension : The case of HLL vs. Assembly." KTH, Industriella informations- och styrsystem, 2005. http://urn.kb.se/resolve?urn=urn:nbn:se:kth:diva-123555.

Full text
Abstract:
One important aspect of the quality of programming languages is the effort required by a programmer to understand code written in the language. A historical case where this issue was at the forefront was in the debate between the proponents of high-level languages (HLL) and Assembly languages, where the main argument for HLLs were that they were easier for people to understand. Being one out of a series of articles arguing for a unified theory for software engineering, this article proposes the use of a specific theoretical model from the discipline of cognitive psychology as a tool for predicting language comprehension effort. Describing human problem solving faculties, the ACT-R model [Anderson and Lebiere 1998] predicts that the effort of understanding a program written in C is only 36,5% of the effort of understanding a comparable program written in Assembly. In order to validate the theory, an experiment was performed where a number of engineering students were exposed to tasks of program comprehension. This empirical assessment demonstrated that the effort of understanding a program written in C is 32,5% of the effort of understanding a comparable program written in Assembly. Comparing the results of the theoretical predictions and the empirical assessments of program comprehension effort, we find that the theoretical model performs surprisingly well. The prediction error for the execution of an Assembly program was 5,1% while the error for C was 6,8%. The prediction error for the ratio between the two program languages amounted to 12,6%.

QC 20130618

APA, Harvard, Vancouver, ISO, and other styles
41

Nishida, Yuki. "Typed Software Contracts with Intersection and Nondeterminism." Kyoto University, 2020. http://hdl.handle.net/2433/253520.

Full text
APA, Harvard, Vancouver, ISO, and other styles
42

von, Oldenburg Tim. "Making scope explorable in Software Development Environments to reduce defects and support program understanding." Thesis, Malmö högskola, Fakulteten för kultur och samhälle (KS), 2014. http://urn.kb.se/resolve?urn=urn:nbn:se:mau:diva-24006.

Full text
Abstract:
Programming language tools help software developers to understand a program and to recognize possible pitfalls. Used with the right knowledge, they can be instrumented to achieve better software quality. However, creating language tools that integrate well into the development environment and workflow is challenging.This thesis utilizes a user-centered design process to identify the needs of professional developers through in-depth interviews, address those needs through a concept, and finally implement and evaluate the concept. Taking 'scope' as an exemplary source of misconceptions in programming, a “Scope Inspector” plug-in for the Atom IDE—targeting experienced JavaScript developers in the open source community—is implemented.
APA, Harvard, Vancouver, ISO, and other styles
43

Südholt, Mario. "Towards expressive, well-founded and correct Aspect-Oriented Programming." Habilitation à diriger des recherches, Université de Nantes, 2007. http://tel.archives-ouvertes.fr/tel-00486842.

Full text
Abstract:
This thesis aims at two different goals. First, a uniform presentation of the major relevant research results on EAOP-based expressive aspects. We motivate that these instantiations enable aspects to be defined more concisely and provide better support for formal reasoning over AO programs than standard atomic approaches and other proposed non-atomic approaches. Concretely, four groups of results are presented in order to substantiate these claims: 1. The EAOP model, which features pointcuts defined over the execution history of an underly- ing base program. We present a taxonomy of the major language design issues pertaining to non-atomic aspect languages, such as pointcut expressiveness (e.g., finite-state based, turing- complete) and aspect composition mechanisms (e.g., precedence specifications vs. turing- complete composition programs). 2. Support for the formal definition of aspect-oriented programming based on different seman- tic paradigms (among others, operational semantics and denotation semantics). Furthermore, we have investigated the static analysis of interactions among aspects as well as applicability conditions for aspects. The corresponding foundational work on AOP has also permitted to investigate different weaver definitions that generalize on those used in other approaches. 3. Several instantiations of the EAOP model for aspects concerning sequential program execu- tions, in particular, for component-based and system-level programming. The former has re- sulted in formally-defined notions of aspects for the modification of component protocols, while the latter has shown, in particular that expressive aspects can be implemented in a performance- critical domain with negligible to reasonable overhead. 4. Two instantiations of the EAOP model to distributed and concurrent programming that signifi- cantly increase the abstraction level of aspect definitions by means of domain-specific abstrac- tions.
APA, Harvard, Vancouver, ISO, and other styles
44

Liang, Donglin. "Developing practical program analyses for programs with pointers." Diss., Georgia Institute of Technology, 2002. http://hdl.handle.net/1853/8203.

Full text
APA, Harvard, Vancouver, ISO, and other styles
45

Sanjabi, Sam Bakhtiar. "A semantics for aspects by compositional translation." Thesis, University of Oxford, 2008. http://ora.ox.ac.uk/objects/uuid:9cb4d365-afb9-4f9f-b18b-59857e2c85d6.

Full text
Abstract:
We analyse the semantics of aspect-oriented extensions to functional languages by presenting compositional translations of these primitives into languages with traditional notions of state and control. As a first step, we examine an existing semantic description of aspects which allows the labelling of program points. We show that a restriction of these semantics to aspects which do not preempt the execution of code can be fully abstractly translated into a functional calculus with higher order references, but that removing this restriction requires a notion of exception handling to be added to the target language in order to yield a sound semantics. Next, we proceed to show that abandoning the labelling technique, and consequently relaxing the so-called ``obliviousness'' property of aspectual languages, allows preemptive aspects to be included in the general references model without the need for exceptions. This means that the game model of general references is inherited by the aspect calculus. The net result is a clean semantic description of aspect-orientation, which mirrors recently published techniques for their implementation, and thereby provides theoretical justification for these systems. The practical validity of our semantics is demonstrated by implementing extensions to the basic calculus in Standard ML, and showing how a number of useful aspect-oriented features can be expressed using general references alone. Our theoretical methodology closely follows the proof structure that often appears in the game semantics literature, and therefore provides an operational perspective on notions such as ``bad variables'' and factorisation theorems.
APA, Harvard, Vancouver, ISO, and other styles
46

Saigal, Nalin. "Modularizing Crosscutting Concerns in Software." Scholar Commons, 2011. http://scholarcommons.usf.edu/etd/3327.

Full text
Abstract:
Code modularization provides benefits throughout the software life cycle; however, the presence of crosscutting concerns (CCCs) in software hinders its complete modularization. Traditional modularization techniques work well under the assumption that code being modularized is functionally orthogonal to the rest of the code; as a result, software engineers try to separate code segments that are orthogonal in their functionality into distinct modules. However, in practice, software does not decompose neatly into modules with distinct, orthogonal functionality. In this thesis, we investigate the modularization of CCCs in software using two different techniques. Firstly, we discuss IVCon, a GUI-based tool that provides a novel approach to the modularization of CCCs. We have designed IVCon to capture the multi-concern nature of code. IVCon enables users to create, examine, and modify their code in two different views, the woven view and the unwoven view. The woven view displays program code in colors that indicate which CCCs various code segments implement, while the unwoven view displays code in two panels, one showing the core of the program and the other showing all the code implementing each concern in an isolated module. IVCon aims to provide an easy-to-use interface for conveniently creating, examining, and modifying code in, and translating between, the woven and unwoven views. Secondly, we discuss LoPSiL, which is a location-based policy-specification language. LoPSiL is Turing-complete and provides users with language constructs that enable them to manipulate location information; hence, LoPSiL can be used to specify and enforce generic policies that might involve location-based constraints. We have implemented a LoPSiL compiler using AspectJ, and we observe and discuss how the use of traditional units of modularization---aspects in this case---help modularize functionally orthogonal CCCs such as security and auditing.
APA, Harvard, Vancouver, ISO, and other styles
47

Chadha, Vineet. "Semantics-based change-merging of abstract data types." Master's thesis, Mississippi State : Mississippi State University, 2002. http://library.msstate.edu/etd/show.asp?etd=etd-03272002-120619.

Full text
APA, Harvard, Vancouver, ISO, and other styles
48

Johnston, Christopher Troy. "VERTIPH : a visual environment for real-time image processing on hardware : a thesis presented in partial fulfilment of the requirements for the degree of Doctor of Philosophy in Computer Systems Engineering at Massey University, Palmerston North, New Zealand." Massey University, 2009. http://hdl.handle.net/10179/1219.

Full text
Abstract:
This thesis presents VERTIPH, a visual programming language for the development of image processing algorithms on FPGA hardware. The research began with an examination of the whole design cycle, with a view to identifying requirements for implementing image processing on FPGAs. Based on this analysis, a design process was developed where a selected software algorithm is matched to a hardware architecture tailor made for its implementation. The algorithm and architecture are then transformed into an FPGA suitable design. It was found that in most cases the most efficient mapping for image processing algorithms is to use a streamed processing approach. This constrains how data is presented and requires most existing algorithms to be extensively modified. Therefore, the resultant designs are heavily streamed and pipelined. A visual notation was developed to complement this design process, as both streaming and pipelining can be well represented by data flow visual languages. The notation has three views each of which represents and supports a different part of the design process. An architecture view gives an overview of the design's main blocks and their interconnections. A computational view represents lower-level details by representing each block by a set of computational expressions and low-level controls. This includes a novel visual representation of pipelining that simplifies latency analysis, multiphase design, priming, flushing and stalling, and the detection of sequencing errors. A scheduling view adds a state machine for high-level control of processing blocks. This extended state objects to allow for the priming and flushing of pipelined operations. User evaluations of an implementation of the key parts of this language (the architecture view and the computational view) found that both were generally good visualisations and aided in design (especially the type interface, pipeline and control notations). The user evaluations provided several suggestions for the improvement of the language, and in particular the evaluators would have preferred to use the diagrams as a verification tool for a textual representation rather than as the primary data capture mechanism. A cognitive dimensions analysis showed that the language scores highly for thirteen of the twenty dimensions considered, particularly those related to making details of the design clearer to the developer.
APA, Harvard, Vancouver, ISO, and other styles
49

Maddipudi, Koushik. "Efficient Architectures for Retrieving Mixed Data with Rest Architecture Style and HTML5 Support." TopSCHOLAR®, 2013. http://digitalcommons.wku.edu/theses/1251.

Full text
Abstract:
Software as a service is an emerging but important aspect of the web. WebServices play a vital role in providing it. Web Services are commonly provided in one of two architectural styles: a "REpresentational State Transfer" (REST), or using the "Simple Object Access Protocol" (SOAP.) Originally most web content was text and small images. But more recent services involve complex data structures including text, images, audio, and video. The task of optimizing data to provide delivery of these structures is a complex one, involving both theoretical and practical aspects. In this thesis work, I have considered two architectures developed in the REST architectural style and tested them on mixes of data types (plain text, image, audio) being retrieved from a file system or database. The payload which carries the actual content of a data transmission process can either be in Extensible Markup Language (XML) or JavaScript Object Notation (JSON). Both of these language notations are widely used. The two architectures used in this thesis work are titled as Scenario 1 and Scenario 2. Scenario 1 proposes two different cases for storing, retrieving and presenting the data via a REST web service. We investigate the question of what is the best way to provide different data types (image, audio) via REST Web Service. Payload size for JSON and XML are compared. Scenario 2 proposes an enhanced and optimized architecture which is derived from the pros of the first two cases in Scenario 1. The proposed architecture is best suited for retrieving and serving non-homogeneous data as a service in a homogenous environment. This thesis is composed of theoretical and practical parts. The theory part contains the design and principles of REST architecture. The practical part has a Web Service provider and consumer model developed in Java. The practical part is developed using the Spring MVC framework and Apache CXF, which provides an implementation using JAX-RS, the Java API for RESTful services. A glossary of acronyms used in this thesis appears in the appendix on page 101.
APA, Harvard, Vancouver, ISO, and other styles
50

BARDELLA, FERNANDO. "Crystalwalk: um software didático-interativo para síntese e visualização de estruturas cristalinas." reponame:Repositório Institucional do IPEN, 2016. http://repositorio.ipen.br:8080/xmlui/handle/123456789/26932.

Full text
Abstract:
Submitted by Marco Antonio Oliveira da Silva (maosilva@ipen.br) on 2016-12-21T16:22:52Z No. of bitstreams: 0
Made available in DSpace on 2016-12-21T16:22:52Z (GMT). No. of bitstreams: 0
Este trabalho documenta o processo de desenvolvimento de um software didático-interativo para síntese e visualização de estruturas cristalinas intitulado CrystalWalk (CW). Sua criação foi justificada inicialmente pela percepção, colhida junto a atores sociais, de deficiências nas ferramentas de ensino-aprendizagem relacionadas ao estudo de estruturas cristalinas de materiais. Posteriormente, um levantamento do estado da arte dos softwares cristalográficos existentes revelou oportunidades para o desenvolvimento de um novo software com preocupação eminentemente didática. Na especificação e elaboração do CW, foram preconizados os princípios do software livre, da acessibilidade e da democratização do conhecimento. Adotou-se o estado da arte de tecnologias e serviços para desenvolvimento de aplicações web interativas, tais como plataforma HTML5/WebGL, arquiteturas orientadas a serviços (SOA) e sistemas distribuídos responsivos, resilientes e elásticos. Para facilitar o entendimento e a síntese de estruturas cristalinas, foi proposto um inédito processo passo a passo baseado no conceito \"rede + motivo = estrutura cristalina\", que exige a participação ativa e consciente do usuário. Inseriu-se também uma ferramenta denominada \"narrativa didática\", por meio por meio da qual o usuário registra sequências de visualização acompanhadas de anotações e que podem ser compartilhadas múltiplas narrativas permitem atender a diferentes perfis de aprendizagem. Também foram incorporadas com sucesso funcionalidades didáticas eficazes para garantir plena acessibilidade aos recursos do CW e para aumentar seu alcance social, tais como o suporte à interação avançada e às tecnologias de interface de realidade virtual, o suporte à impressão 3D e a oferta de uma plataforma de publicação online. Na avaliação dos produtos gerados, o principal critério foi o atendimento às demandas dos atores sociais, que foram empoderados ao final do processo. O CW é a primeira plataforma a superar a maioria dos problemas apontados e das limitações encontradas nos instrumentos didáticos existentes sobre a temática deste trabalho, impactando positivamente o acesso e a democratização do conhecimento, por meio da construção coletiva, do estímulo à colaboração e da autonomia e independência tecnológicas.
Tese (Doutorado em Tecnologia Nuclear)
IPEN/T
Instituto de Pesquisas Energéticas e Nucleares - IPEN-CNEN/SP
APA, Harvard, Vancouver, ISO, and other styles
We offer discounts on all premium plans for authors whose works are included in thematic literature selections. Contact us to get a unique promo code!

To the bibliography