Spelling suggestions: "subject:"domainspecific languages"" "subject:"domainhspecific languages""
51 |
Polymage : Automatic Optimization for Image Processing PipelinesMullapudi, Ravi Teja January 2015 (has links) (PDF)
Image processing pipelines are ubiquitous. Every image captured by a camera and every image uploaded on social networks like Google+or Facebook is processed by a pipeline. Applications in a wide range of domains like computational photography, computer vision and medical imaging use image processing pipelines. Many of these applications demand high-performance which requires effective utilization of modern architectures. Given the proliferation of camera enabled devices and social networks optimizing these emerging workloads has become important both at the data center and the embedded device scales.
An image processing pipeline can be viewed as a graph of interconnected stages which process images successively. Each stage typically performs one of point-wise, stencil, sam-pling, reduction or data-dependent operations on image pixels. Individual stages in a pipeline typically exhibit abundant data parallelism that can be exploited with relative ease. However, the stages also require high memory bandwidth preventing effective uti-lization of parallelism available on modern architectures. The traditional options are using optimized libraries like OpenCV or to optimize manually. While using libraries precludes optimization across library routines, manual optimization accounting for both parallelism and locality is very tedious.
Inthisthesis,wepresentthedesignandimplementationofPolyMage,adomain-specific language and compiler for image processing pipelines. The focus of the system is on au-tomatically generating high-performance implementations of image processing pipelines expressed in a high-level declarative language. We achieve such automation with:
• tiling techniques to improve parallelism and locality by introducing redundant computation,
v
a model-driven fusion heuristic which enables a trade-off between locality and re-dundant computations, and anautotuner whichleveragesthefusionheuristictoexploreasmallsubsetofpipeline implementations and find the best performing one.
Our optimization approach primarily relies on the transformation and code generation ca-pabilities of the polyhedral compiler framework. To the best of our knowledge, this is the first model-driven compiler for image processing pipelines that performs complex fusion, tiling, and storage optimization fully automatically. We evaluate our framework on a modern multicore system using a set of seven benchmarks which vary widely in structure and complexity. Experimental results show that the performance of pipeline implementations generated by our approach is:
• up to 1.81× better than pipeline implementations manually tuned using Halide, a state-of-the-art language and compiler for image processing pipelines,
• on average 5.39× better than pipeline implementations automatically tuned using Halide and OpenTuner, and
• on average 3.3× better than naive pipeline implementations which only exploit par-allelism without optimizing for locality.
We also demonstrate that the performance of PolyMage generated code is better or compa-rable to implementations using OpenCV, a state-of-the-art image processing and computer vision library.
|
52 |
Abordagem para criação de linguagens específicas de domínio para robótica móvelConrado, Daniel Bruno Fernandes 12 November 2012 (has links)
Made available in DSpace on 2016-06-02T19:06:01Z (GMT). No. of bitstreams: 1
4765.pdf: 5526051 bytes, checksum: eca7635e3ad1f0a28a9f3871c97aac57 (MD5)
Previous issue date: 2012-11-12 / Universidade Federal de Sao Carlos / Autonomous mobile robots are machines capable of executing repetitive/dangerous tasks more efficiently. Most of them have an embedded software which is responsible for their execution. Over the last years, the complexity of these applications has continuously growing and they are presenting challenges that are uncommon to traditional information systems development. Therefore, any technique that can support their development is a great contribution. A technique that improves the productivity is to use domain-specific languages (DSLs). These are modeling and programming languages whose constructs are concepts and abstractions of a particular domain. It frees developers from worrying about generic programming concepts (classes, objects, attributes, etc.) and allows them to focus on the problem to be solved. As creating a DSL is not a trivial task and pointing the idiosyncrasies of mobile robots, this dissertation presents an approach for engineering DSLs to mobile robots. The aim is to make the activity of creating DSLs to this domain more systematic and controlled. In this approach, an application is taken as input and a series of domain statements is extracted from it. These statements are classified into categories and each one of them are analized in order to extract commonalities and variabilities, wich are transformed into components of a DSL. An important characteristic of the approach is that it asks for just one application to reach a first version of a running DSL. We suggest that the same DSL can be evolved just by applying the approach again using another application as input. So new components could be created and the existing ones could be modified. We also present a generic language model providing a foundation architecture that allows one to easily create new DSLs by extending it. Two proofs of concept are presented in order to exemplify the application of our approach. / Robôs móveis autônomos são máquinas com potencial para realizar atividades repetitivas ou de alta periculosidade com mais eficácia. Muitos possuem um software embarcado responsável pelo seu funcionamento. Nos últimos anos, a complexidade dessas aplicações robóticas embarcadas tem crescido continuamente e apresentam desafios que são incomuns ao desenvolvimento dos tradicionais sistemas de informação. Portanto, toda técnica que dê suporte a esse tipo de desenvolvimento pode contribuir significativamente. Uma técnica que permite o aumento de produtividade é a utilização de linguagens específicas de domínio (DSLs). Essas são linguagens de modelagem e programação cujas construções são conceitos e abstrações de um domínio de aplicação em particular. Isso desobriga o desenvolvedor de se preocupar com conceitos genéricos de programação (classes, objetos, atributos, etc.) para focar-se no problema a ser resolvido. Como o desenvolvimento de uma DSL não é uma tarefa trivial e tendo em vista as idiossincrasias dos robôs móveis autônomos, esta dissertação apresenta uma abordagem para construção de DSLs para robôs móveis. O objetivo é deixar mais sistemática e controlada a criação de DSLs para esse domínio. Nessa abordagem, uma aplicação é tomada como entrada e dela extraem-se declarações a respeito do domínio. Essas declarações são categorizadas e, para cada categoria, são levantadas partes comuns e variáveis. Então, essas partes são transformadas em componentes de uma DSL. Uma característica importante da abordagem apresentada é que uma versão inicial da DSL pode ser alcançada tendo apenas uma aplicação como base. Sugere-se que essa mesma DSL possa evoluir pela reaplicação da abordagem tendo uma nova aplicação como entrada. Dessa forma, novos componentes podem ser criados e os existentes, modificados. Também é apresentado um modelo genérico de linguagem que fornece uma arquitetura básica, permitindo que novas DSLs sejam facilmente construídas pela extensão da mesma. Duas provas de conceito são apresentadas com a intenção de exemplificar a aplicação da abordagem.
|
53 |
Desenvolvimento de uma DSL para a gerência de configuração de um sistema de gerenciamento integrado de redesPieroni, Rosangela 27 October 2014 (has links)
Made available in DSpace on 2016-06-02T19:06:19Z (GMT). No. of bitstreams: 1
6469.pdf: 4680875 bytes, checksum: 348ed33838e264f70033e8383aeaa100 (MD5)
Previous issue date: 2014-10-27 / The integrated network management system aims to manage the telecommunications network, regardless of network elements technology in order to identify the causes of problems, providing a more assertive decision making to remedy these problems and make the network available and operational. Thus, can to cater to the market that is increasingly demanding with the level of quality telecommunications products and services. Given this need, integrated networks management system belongs to a real company needs to respond quickly to customers' expectations with respect to requests for new functions system, and perform technology upgrades periodically. However, the integrated network management system development use centered-source technologies, and it requires great effort and hinders reuse. In this context, this master's project presents a proposal to facilitate the integrated network management system development using the techniques of MDD (Model Driven Development). MDD emphasizes the use of models in software development. These models specify the rules of business domain at a high level of abstraction, i.e., regardless of the programming language and to run the software platform. With appropriate computational tools transformations of models in the source code are performed. The use of MDD can provide software reuse procedurally, enabling faster development, lower cost, produce a flexible software and enable faster modifications. To apply MDD approach, a Domain Specific Language (DSL) for the configuration management of integrated network management system setting is designed to facilitate the inclusion of a new technology to be managed by the system, while providing faster development and with fewer errors of code. To evaluate the proposal, an experiment was conducted with the participation of software developers that know the system and work in this real company. The results showed that according to the descriptive analyses there was a reduction in the time spent in application development when it was used DSL compared to the specialization of classes. However, hypotheses tests showed no such reduction. The insertion of errors in the code occurred only in applications developed using specialization classes. The use of DSL provided a broader view of the business rule and you do not need knowledge of the programming language, once the code was automatically generated. / Um sistema de gerenciamento integrado de redes tem o objetivo de gerenciar uma rede de telecomunicações, independentemente da tecnologia dos elementos de rede, a fim de identificar as causas de problemas, proporcionando a tomada de decisão mais assertiva para saná-los e deixar a rede disponível e operacional. Dessa forma, o mercado que está cada vez mais exigente com o nível de qualidade dos produtos e serviços de telecomunicações é atendido. Diante dessa necessidade, o sistema de gerenciamento integrado de redes de uma empresa real precisa atender rapidamente às expectativas dos clientes com relação às solicitações de novas funções do sistema, assim como realizar atualizações tecnológicas periodicamente. Porém, o desenvolvimento do sistema de gerenciamento integrado de redes dessa empresa utiliza tecnologias centradas em código-fonte, o que implica em grande esforço e dificulta a sua reutilização. Neste contexto, este projeto de mestrado apresenta uma proposta para facilitar o desenvolvimento do sistema de gerenciamento integrado de redes utilizando as técnicas de MDD (Desenvolvimento Dirigido a Modelos). MDD enfatiza a utilização de modelos no desenvolvimento do software. Esses modelos especificam as regras de negócio de domínio em um alto nível de abstração, ou seja, independentemente da linguagem de programação e da plataforma de execução do software. Com ferramentas computacionais adequadas são realizadas as transformações dos modelos em código-fonte. A utilização de MDD pode proporcionar reúso de software de forma processual, possibilitar um desenvolvimento mais rápido, com menor custo, produzir um software flexível e possibilitar modificações mais rapidamente. Para aplicar a abordagem de MDD, uma linguagem específica de domínio (DSL) para a gerência de configuração do sistema de gerenciamento integrado de redes foi desenvolvida. Tem como objetivo facilitar a inclusão de uma nova tecnologia a ser gerenciada pelo sistema e ao mesmo tempo proporcionar um desenvolvimento mais rápido, com menos erros de código. Para avaliar a proposta foi realizado um experimento com a participação dos atuais desenvolvedores de software de uma empresa real. Os resultados obtidos mostraram que, segundo a análise descritiva, houve redução do tempo gasto no desenvolvimento das aplicações quando foi utilizada a DSL em comparação com o desenvolvimento baseado em especialização das classes. Porém, os testes das hipóteses não apresentaram tal redução. A inserção de erros no código ocorreu somente nas aplicações desenvolvidas utilizando especialização das classes. O uso da DSL proporcionou uma visão mais ampla da regra de negócio e não exigiu conhecimento da linguagem de programação, pois o código foi gerado automaticamente.
|
54 |
SMADL – The social machines architecture description languageNascimento, Leandro Marques do 31 January 2014 (has links)
Submitted by Nayara Passos (nayara.passos@ufpe.br) on 2015-03-12T14:23:54Z
No. of bitstreams: 2
license_rdf: 1232 bytes, checksum: 66e71c371cc565284e70f40736c94386 (MD5)
TESE Leandro Marques do Nascimento.pdf: 4935348 bytes, checksum: 593ec08be509bd200bc5ec59fccb17d6 (MD5) / Made available in DSpace on 2015-03-12T14:23:54Z (GMT). No. of bitstreams: 2
license_rdf: 1232 bytes, checksum: 66e71c371cc565284e70f40736c94386 (MD5)
TESE Leandro Marques do Nascimento.pdf: 4935348 bytes, checksum: 593ec08be509bd200bc5ec59fccb17d6 (MD5)
Previous issue date: 2014 / CNPq, INES / É possível se observar um alto crescimento no número de aplicações Web sendo desenvolvidas. Isto está acontecendo principalmente porque a Web está entrando em uma nova fase, chamada Web programável, onde diversos sistemas baseados na Web estão disponibilizando suas APIs publicamente. Com o objetivo de lidar com a complexidade dessa Web emergente, este trabalho define a noção de uma Máquina Social (Social Machine - SM) e vislumbra uma linguagem que permite descrever redes de tais máquinas.
Para começar, nós definimos uma Máquina Social como sendo “um componente conectável e programável que encapsula (WI) um sistema de processamento de informação (IPS) e define um conjunto de serviços requeridos (RS) e providos (PS), dinamicamente disponível sob certas restrições (C), as quais são determinadas por, dentre outras coisas, seus relacionamentos (Rel) com terceiros”. Em outras palavras, uma SM é uma máquina conectada, normalmente à Web, que dinamicamente provê e/ou requer um conjunto de serviços de acordo com os seus relacionamentos estabelecidos. Qualquer aplicação na Web pode ser vista como uma SM.
Para que seja possível a aplicação prática do conceito de Máquina Social previamente mencionado, nós definimos SMADL, uma linguagem para descrição arquitetural de SMs, como uma tentativa de ser uma forma completamente diferente de se programar a Web, misturando conceitos de linguagens de descrição arquitetural (ADLs) e linguagens específicas de domínio (DSLs). Como uma ADL, a linguagem permite a descrição de máquinas sociais (e redes de tais) em termos de relacionamentos (Rel) como abstrações de alto nível, sem a necessidade de se especificar os detalhes de comunicação (protocolos) e/ou métodos de autenticação. Como uma DSL, ela permite a criação e integração de serviços Web usando uma sintaxe de tipos dinâmicos, integrada à máquina virtual Java e à IDE Eclipse. Cada elemento do conceito de uma SM é diretamente mapeado na linguagem. Em poucas palavras, SMADL pode ser definida como uma linguagem dirigida a relacionamentos que pode ser usada para descrever interações entre qualquer número de máquinas de inúmeras formas, como um meio de representar máquinas interagindo na Web realmente e, obviamente, como um meio de representar interações com outras máquinas sociais também.
Vários outros esforços já foram feitos para definir ADLs e alguns deles foram, de alguma forma, aplicados no domínio da Web. Entretanto, há uma clara falta de base fundamental que provenha abstrações de alto nível tais como o modelo de máquinas sociais provê. SMADL foi implementada em duas versões, uma textual e outra visual. Ambas as versões foram avaliadas através de um estudo de caso e uma pesquisa baseada na opinião de especialista e indicaram ser boas soluções para problemas práticos. / We are experiencing a high growth in the number of Web applications being developed. This is happening mainly because the Web is going into a new phase, called programmable Web, where several Web-based systems make their APIs publicly available. In order to deal with the complexity of this emerging Web, we define the notion of a Social Machine and envisage a language that can describe networks of such.
To start with, we define a Social Machine (SM) as a “connectable and programmable building block that wraps (WI) an information processing system (IPS) and defines a set of required (RS) and provided services (PS), dynamically available under constraints (C) which are determined by, among other things, its relationships (Rel) with others”. In other words, a SM is a connected machine, usually to the Web, which dynamically provides and/or requires a set of services according to its established relationships. Any application in the Web can be seen as a SM.
In order to make feasible the practical application of the aforementioned Social Machine concept, we define SMADL – the Social Machines Architecture Description Language – as an attempt to be a completely different way to program the Web, mixing concepts from Architecture Description Languages (ADLs) and Domain-Specific Languages (DSLs). As an ADL, it allows the description of Social Machines (and networks of such) in terms of relationships (Rel) as high-level abstractions, without the need to specify details of communication (protocols) and/or authentication methods. As a DSL, it allows the implementation and integration of Web services using a dynamically typed syntax, fully integrated to the Java Virtual Machine and Eclipse IDE. Every element of the SM concept is directly mapped into the language. In few words, SMADL can be defined as a relationship-driven language which can be used to describe the interactions between any number of machines in a multitude of ways, as a means to represent real machines interacting in the real Web and, obviously, as a means to represent interactions with other social machines too.
Several other efforts have been done to define ADLs, and a few of them were someway applied to the Web domain. However, there is a clear lack of fundamental base to provide high-level abstractions that the Social Machine concept does. SMADL has been implemented in two versions, one textual and one visual. Both versions have been
evaluated through a case study and an expert’s opinion survey and demonstrated to be good solutions for practical problems.
|
55 |
A rigorous methodology for developing GUI-based DSL formal toolsSilva, Robson dos Santos e 23 August 2013 (has links)
Submitted by Luiz Felipe Barbosa (luiz.fbabreu2@ufpe.br) on 2015-03-12T14:30:39Z
No. of bitstreams: 2
Dissertacao Robson Santos Silva.pdf: 2657380 bytes, checksum: e8bfe7912e7136af0fbf6082153115fd (MD5)
license_rdf: 1232 bytes, checksum: 66e71c371cc565284e70f40736c94386 (MD5) / Approved for entry into archive by Daniella Sodre (daniella.sodre@ufpe.br) on 2015-03-13T12:57:10Z (GMT) No. of bitstreams: 2
Dissertacao Robson Santos Silva.pdf: 2657380 bytes, checksum: e8bfe7912e7136af0fbf6082153115fd (MD5)
license_rdf: 1232 bytes, checksum: 66e71c371cc565284e70f40736c94386 (MD5) / Made available in DSpace on 2015-03-13T12:57:10Z (GMT). No. of bitstreams: 2
Dissertacao Robson Santos Silva.pdf: 2657380 bytes, checksum: e8bfe7912e7136af0fbf6082153115fd (MD5)
license_rdf: 1232 bytes, checksum: 66e71c371cc565284e70f40736c94386 (MD5)
Previous issue date: 2013-08-23 / It is well-known that model-driven engineering (MDE) is a software development methodology
that focuses on creating and exploiting (specific) domain models. Domain models
(conceptually) capture all the topics (for instance, entities and their attributes, roles, and
relationships as well as more specific constraints) related to a particular problem. It is
common to use domain-specific languages (DSL) to describe the concrete elements of
such models.
MDE tools can easily build domain-specific languages (DSL), capturing syntactic
as well as static semantic information. However, we still do not have a clear way of
capturing the dynamic semantics of a DSL as well as checking the domain properties prior
to generating the implementation code. Formal methods are a well-known solution for
providing correct software, where we can guarantee the satisfaction of desired properties.
Unfortunately the available formal methods tools focus almost exclusively on semantics
whereas human-machine interaction is "left to the user". Several industries, and in
particular the safety-critical industries, use mathematical representations to deal with
their problem domains. Historically, such mathematical representations have a graphical
appeal. For example, Markov chains and fault-trees are used in safety assessment processes
to guarantee that airplanes, trains, and other safety-critical systems work within
allowed safety margins. In general, due to the difficulty to obtain correct software, such
industries use Commercial Off-The-Shelf (COTS) software or build them specifically
to satisfy their needs with a related testing campaign effort. Such DSLs are difficult
to capture, using just MDE tools for instance, because they have specific semantics to
provide the desired (core) information for the industries that use them.
In this sense, given a DSL (L) composed of a syntax and static semantics (SSL),
and dynamic semantics (DSL) parts, our work proposes a rigorous methodology for
combining the easiness of MDE tools, to capture SSL, with the correctness assured by
formal methods, to capture DSL as well and check its properties. This combination
is specifically handled in the following way, we capture all aspects of L using formal
methods, check the desired properties and adjust if necessary. After that, we automatically
translate part of it in terms of constructs of a MDE tool, from which we can build a
user-friendly (GUI) front-end very easily (automatically). Finally, we link the front-end
code to the automatically synthesized code from the formal dynamic semantics back-end.
Although we require the use of a formal methods tool, the distance from the mathematical
representations used in industry and the formal methods notation is very close.
With this proposed methodology we intend that safety-critical industries create their domain specific software as easy as possible and with the desired static and dynamic
properties formally checked. / A Engenharia Dirigida a Modelos ou (MDE—Model-Driven Engineering) é uma metodologia
de desenvolvimento de software que se concentra na criação e manipulação de modelos
específicos de domínio. É comum o uso de linguagens específicas de domínio (DSL) para
descrever os elementos concretos de tais modelos.
Ferramentas de MDE podem facilmente construir linguagens específicas de domínio
(DSL), capturando seus aspectos sintáticos assim como sua semântica estática. No
entanto, ainda não possuem uma forma clara de capturar a semântica dinâmica de uma
DSL, assim como a verificação de propriedades de domínio antes da geração de código
executável. Métodos formais são tidos como uma solução para prover software correto,
onde podemos garantir que desejadas propriedades são satisfeitas.
Infelizmente, as ferramentas de métodos formais disponíveis concentram-se quase que
exclusivamente na semântica enquanto que a interação homem-computador é "deixada
para o usuário". Indústrias em que a segurança é crítica, usam representações matemáticas
para lidar com os seus domínios de problemas. Historicamente, essas representações
matemáticas têm um apelo gráfico. Por exemplo, Cadeias de Markov e Árvores de Falha.
Em geral, devido à dificuldade em obter softwares formalmente verificados, essas
indústrias utilizam sistemas comerciais prontos para uso (Commercial Off-the-shelf -
COTS) ou os constróem especificamente para satisfazerem as suas necessidades com
um esforço considerável em testes. Tais DSLs são difíceis de capturar, usando apenas
ferramentas MDE por exemplo, porque possuem uma semântica particular para prover as
informações específicas desejadas para as indústrias que as utilizam.
Neste sentido, dada uma DSL (L), composta por sintaxe e semântica estática (SSL), e
semântica dinâmica (DSL), este trabalho propõe uma metodologia rigorosa para combinar
a facilidade de ferramentas MDE em capturar SSL, com a corretude assegurada por
métodos formais para capturar DSL e verificar suas propriedades. Esta combinação é
especificamente tratada da seguinte maneira: captura-se todos os aspectos de L utilizando
métodos formais, verificam-se as propriedades desejadas e as ajustam caso necessário.
Em seguida, parte de L é traduzida automaticamente em termos de artefatos para uma
ferramenta MDE, a partir da qual é possível construir uma interface amigável (front-end)
facilmente (automaticamente). Por fim, o código do front-end é integrado com o código
sintetizado automaticamente a partir da semântica dinâmica formal (back-end).
|
56 |
Uma linguagem de domínio específico para descrição e reconhecimento de gestos usando sensores de profundidadeVIANA, Daniel Leite 10 August 2015 (has links)
Submitted by Haroudo Xavier Filho (haroudo.xavierfo@ufpe.br) on 2016-03-11T14:13:00Z
No. of bitstreams: 2
license_rdf: 1232 bytes, checksum: 66e71c371cc565284e70f40736c94386 (MD5)
Dissertacao DANIEL LEITE VIANA.pdf: 4297126 bytes, checksum: fa862ba18fe815a710afe7b3e591cee8 (MD5) / Made available in DSpace on 2016-03-11T14:13:00Z (GMT). No. of bitstreams: 2
license_rdf: 1232 bytes, checksum: 66e71c371cc565284e70f40736c94386 (MD5)
Dissertacao DANIEL LEITE VIANA.pdf: 4297126 bytes, checksum: fa862ba18fe815a710afe7b3e591cee8 (MD5)
Previous issue date: 2015-08-10 / Sistemas baseados em gestos vêm se tornando uma alternativa para o desenvolvimento
de aplicações mais intuitivas para os usuários, pois permitem a esses usuários interagirem de forma mais natural. Tais sistemas, em geral, requerem dispositivos de captura junto com alguma técnica de reconhecimento para que os gestos requeridos na interação natural sejam reconhecidos. A ausência de abstrações apropriadas para representação dos gestos dificulta as especificações de novas interações naturais. A representação de um gesto, quase sempre, envolve Aprendizagem de Máquina ou um avançado algoritmo de reconhecimento baseado nos dados da posição tridimensional do corpo humano fornecidos por sensores de profundidade, tal como o Microsoft Kinect. Além disso, as aplicações desenvolvidas tornam-se dependentes das bibliotecas de desenvolvimento dos dispositivos. Dessa forma, se o dispositivo for substituído por outro mais moderno ou de fabricante diferente quase todo o algoritmo de reconhecimento precisa ser reescrito. O principal objetivo desta dissertação é a especificação e implementação da Linguagem para Especificação de Gestos (LEG), uma Domain-Specific Language (DSL) para a especificação e reconhecimento de gestos livres do corpo humano com suporte a diferentes dispositivos de profundidade. A LEG é uma linguagem declarativa, baseada na análise das interfaces gestuais para computador e no estudo das abstrações e representações do movimento humano, a fim de reduzir a complexidade no desenvolvimento de aplicações baseadas em gestos. A implementação da linguagem foi realizada em duas etapas. Primeiro, foi criado
um framework (Kinect Gesture) com a lógica para rastrear e identificar gestos descritos na linguagem. Na segunda etapa, foi definida a gramática e o interpretador foi construído. A abordagem adotada foi de DSL externa, sendo sua sintaxe textual e particular. A fim de avaliar a implementação proposta, 15 (quinze) gestos foram especificados em LEG e reconhecidos. Tendo como referência os resultados obtidos, chegou-se a conclusão que a linguagem apresentada neste trabalho diminuiu consideravelmente a complexidade necessária para realizar a especificação e o
reconhecimento dos gestos. / Systems Based-gestures are becoming an alternative to the development of more intuitive applications for users, because enable users to interact more naturally. Generally these systems need of capture devices together with some technique for gesture recognition. The lack of appropriate abstractions for the representation of gestures difficult to specifications of new natural interactions. For specify gesture, it is almost always necessary to acquire advanced knowledge in gesture recognition area and skills on chosen device and it is for this reason that the development of gestures is restricted. Often developers are using Machine Learning as support to creating database. Another approach is to create a recognition algorithm based on data from the depth sensor Kinect. Furthermore, due to the nature of the software development kits (SDK) provided by the hardware vendors to build gesture-based applications, the developed
applications often become tightly coupled with the SDK. The result is that significant portions of the application need to be rewritten to run it on another device.
The main goal of this dissertation is to implement and evaluate GSL (Gesture Specific
Language), a Domain-Specific Language for specification and identification of gestures with support to different depth sensors. GSL is a declarative programming language based on the analysis of gestural interfaces for computer and study of abstractions and representations of human movement, in order to reduce the complexity in application development based on gestures. The development was conducted in two phases: the first was implemented a framework (Kinect Gesture) with logic for tracking and identify gestures. In the second phase, we built an grammar and a compiler. We adopted a external DSL approach, with specific and textual syntax. In order to evaluate the proposed implementation, we used GSL for specification and recognition of fifteen gestures. The results obtained show that GSL reduced considerably the complexity on
perform the specification and the recognition of gestures.
|
57 |
UMA TÉCNICA PARA O DESENVOLVIMENTO DE LINGUAGENS ESPECÍFICAS DE DOMÍNIO / A TECNIQUE FOR DOMAIN SPECIFIC LANGUAGE DEVELOPMENTSerra, Ivo José da Cunha 15 March 2004 (has links)
Made available in DSpace on 2016-08-17T14:52:52Z (GMT). No. of bitstreams: 1
Ivo Jose da Cunha Serra.pdf: 6848473 bytes, checksum: 2440bf1516e97ef7b712775d5fb7521c (MD5)
Previous issue date: 2004-03-15 / To achieve quality and productivity in software development, software
reuse is necessary nowadays. One way of doing so is generative reuse, which
consists of automatic selecting and grouping software components. Generative
software reuse can be done by employing Domain Specific Languages (DSL's).
These languages specify a system in a high level of abstraction.
This work proposes TOD-LED, a technique based on ontologies for the
development of DSL's on Multi-Agent Domain Engineering. This technique guides
the specification of DSL's using domain models developed with GRAMO, a
technique for Domain Analysis in Multi-Agent Domain Engineering.
TOD-LED uses ONTOLED, an ontology that represents the knowledge
about the development of DSL's. The specification of a DSL is represented as an
instance of ONTOLED.
A case study was developed to evaluate TOD-LED. The case study
consists of the specification of LESRF, a DSL for the development of systems for
dynamic and non structured information access. / Por motivos de qualidade e produtividade, o reuso de software é uma
prática necessária no desenvolvimento dos sistemas atuais. Uma das formas do
reuso de software é a reutilização gerativa, que consiste em selecionar e agrupar
componentes de software de forma automática. A reutilização gerativa pode ser
feita com o uso de linguagens específicas de domínio (LED s), que especificam
sistemas em alto nível de abstração.
Neste trabalho é proposta a TOD-LED, uma técnica baseada em
ontologias para o desenvolvimento de LED's na Engenharia de Domínio
Multiagente. Esta técnica guia a especificação de LED's a partir de modelos de
domínio desenvolvidos com a GRAMO, uma técnica para a análise de domínio na
Engenharia de Domínio Multiagente.
A TOD-LED utiliza a ONTOLED, uma ontologia que representa o
conhecimento acerca do desenvolvimento de LED's. A especificação de uma LED
é representada por uma instância da ONTOLED.
É também apresentado um estudo de caso para avaliar a técnica
proposta. O estudo de caso consiste na especificação da LESRF (Linguagem de
Especificação de Sistemas para a Recuperação e Filtragem de informação), uma
LED para o desenvolvimento de aplicações para o acesso à informação dinâmica
e não estruturada.
|
58 |
Aplicação da análise de mutantes no contexto do teste e validação de redes de Petri coloridas" / The application of mutation testing in the context of testing and validation of coloured Petri netsAdenilso da Silva Simão 17 December 2004 (has links)
O uso de técnicas e métodos formais contribui para o desenvolvimento de sistemas confiáveis. No entanto, apesar do rigor obtido, em geral, é necessário que essas técnicas sejam complementadas com atividades de teste e validação. Deve-se ressaltar que o custo para eliminar erros encontrados nas etapas iniciais de desenvolvimento é menor do que quando esses erros são encontrados nas fases posteriores. Dessa forma, é essencial a condução de atividades de VV&T - Verificação, Validação e Teste - desde as primeiras fases de desenvolvimento. Critérios de teste, como uma forma sistemática de avaliar e/ou gerar casos de teste de qualidade e, dessa forma, contribuir para aumentar a qualidade da atividade de teste, têm sido investigados para o teste de especificação de Sistemas Reativos. A técnica Redes de Petri Coloridas tem sido constantemente utilizada para a especificação do aspecto comportamental de Sistemas Reativos. Apesar de existirem diversas técnicas de análise, um aspecto não considerado é a cobertura alcançada, visto que, em geral, a aplicação exaustiva não é viável devido ao alto custo. Considerando a relevância do estabelecimento de métodos sistemáticos para o teste e validação dessas especificações, este trabalho propõe a aplicação do critério de teste Análise de Mutantes para o teste de Redes de Petri Coloridas. Neste trabalho foram almejados três objetivos principais, os quais podem ser divididos em estudos teóricos, estudos empíricos e automatização. No contexto de estudos teóricos, foi realizada a definição e embasamento teórico para possibilitar a aplicação da Análise de Mutantes no contexto de Redes de Petri Coloridas. Além disso, investigaram-se mecanismos genéricos para a descrição e geração de mutantes. Definiu-se um algoritmo para a geração de casos de teste baseado na Análise de Mutantes. No contexto de estudos empíricos, foram conduzidos estudos de caso para avaliar a aplicabilidade e eficácia dos resultados teóricos obtidos. Finalmente, no contexto de automatização, foram desenvolvidas ferramentas de apoio à aplicação da Análise de Mutantes. / The usage of formal methods and techniques contributes to the development of highly reliable system, but, in spite of the achieved rigour, these techniques must be complemented with testing and validation activities. It should be highlighted that the cost to eliminate errors found in the early phases of development is smaller than when those errors are found in the later phases. Therefore, the accomplishment of VV&T activities - Verification, Validation and Test - starting at the first development phases is essential. Testing criteria, as a systematic way to evaluate and/or generate test cases, contributing, therefore, to improve the quality of the test activity, have been proposed for testing reactive systems specifications. A technique that has been steadily employed for specifying the behavioural aspect of reactive systems is the coloured Petri nets. Although there are several analysis and validation techniques, a usually neglected aspect is the achieved coverage, given that, in general, the exhaustive application is not feasible due to its high cost. Considering the relevance of establishing systematic methods for the test and validation of coloured Petri nets based specification, this work proposes the investigation of the viability of applying Mutation Testing to test coloured Petri nets. In this work three main goals were pursued, which can be grouped in: theoretical studies, empirical studies and tool development. In the context of theoretical studies, it was accomplished the definition of theoretical concepts to enable the application of Mutant Analysis in the context of coloured Petri nets. Moreover, a mutation-based algorithm was defined to generate test sequences for Petri nets. In the context of empirical studies, case studies were carried out to evaluate the applicability and effectiveness of the achieved theoretical results. Finally, in the context of tool development, tools for supporting the application of Mutation Testing were developed.
|
59 |
Méthodes de génération automatique de code appliquées à l’algèbre linéaire numérique dans le calcul haute performance / Automatic code generation methods applied to numerical linear algebra in high performance computingMasliah, Ian 26 September 2016 (has links)
Les architectures parallèles sont aujourd'hui présentes dans tous les systèmes informatiques, allant des smartphones aux supercalculateurs en passant par les ordinateurs de bureau. Programmer efficacement ces architectures en fonction des applications requiert un effort pluridisciplinaire portant sur les langages dédiés (Domain Specific Languages - DSL), les techniques de génération de code et d'optimisation, et les algorithmes numériques propres aux applications. Dans cette thèse, nous présentons une méthode de programmation haut niveau prenant en compte les caractéristiques des architectures hétérogènes et les propriétés existantes des matrices pour produire un solveur générique d'algèbre linéaire dense. Notre modèle de programmation supporte les transferts explicites et implicites entre un processeur (CPU) et un processeur graphique qui peut être généraliste (GPU) ou intégré (IGP). Dans la mesure où les GPU sont devenus un outil important pour le calcul haute performance, il est essentiel d'intégrer leur usage dans les plateformes de calcul. Une architecture récente telle que l'IGP requiert des connaissances supplémentaires pour pouvoir être programmée efficacement. Notre méthodologie a pour but de simplifier le développement sur ces architectures parallèles en utilisant des outils de programmation haut niveau. À titre d'exemple, nous avons développé un solveur de moindres carrés en précision mixte basé sur les équations semi-normales qui n'existait pas dans les bibliothèques actuelles. Nous avons par la suite étendu nos travaux à un modèle de programmation multi-étape ("multi-stage") pour résoudre les problèmes d'interopérabilité entre les modèles de programmation CPU et GPU. Nous utilisons cette technique pour générer automatiquement du code pour accélérateur à partir d'un code effectuant des opérations point par point ou utilisant des squelettes algorithmiques. L'approche multi-étape nous assure que le typage du code généré est valide. Nous avons ensuite montré que notre méthode est applicable à d'autres architectures et algorithmes. Les routines développées ont été intégrées dans une bibliothèque de calcul appelée NT2.Enfin, nous montrons comment la programmation haut niveau peut être appliquée à des calculs groupés et des contractions de tenseurs. Tout d'abord, nous expliquons comment concevoir un modèle de container en utilisant des techniques de programmation basées sur le C++ moderne (C++-14). Ensuite, nous avons implémenté un produit de matrices optimisé pour des matrices de petites tailles en utilisant des instructions SIMD. Pour ce faire, nous avons pris en compte les multiples problèmes liés au calcul groupé ainsi que les problèmes de localité mémoire et de vectorisation. En combinant la programmation haut niveau avec des techniques avancées de programmation parallèle, nous montrons qu'il est possible d'obtenir de meilleures performances que celles des bibliothèques numériques actuelles. / Parallelism in today's computer architectures is ubiquitous whether it be in supercomputers, workstations or on portable devices such as smartphones. Exploiting efficiently these systems for a specific application requires a multidisciplinary effort that concerns Domain Specific Languages (DSL), code generation and optimization techniques and application-specific numerical algorithms. In this PhD thesis, we present a method of high level programming that takes into account the features of heterogenous architectures and the properties of matrices to build a generic dense linear algebra solver. Our programming model supports both implicit or explicit data transfers to and from General-Purpose Graphics Processing Units (GPGPU) and Integrated Graphic Processors (IGPs). As GPUs have become an asset in high performance computing, incorporating their use in general solvers is an important issue. Recent architectures such as IGPs also require further knowledge to program them efficiently. Our methodology aims at simplifying the development on parallel architectures through the use of high level programming techniques. As an example, we developed a least-squares solver based on semi-normal equations in mixed precision that cannot be found in current libraries. This solver achieves similar performance as other mixed-precision algorithms. We extend our approach to a new multistage programming model that alleviates the interoperability problems between the CPU and GPU programming models. Our multistage approach is used to automatically generate GPU code for CPU-based element-wise expressions and parallel skeletons while allowing for type-safe program generation. We illustrate that this work can be applied to recent architectures and algorithms. The resulting code has been incorporated into a C++ library called NT2. Finally, we investigate how to apply high level programming techniques to batched computations and tensor contractions. We start by explaining how to design a simple data container using modern C++14 programming techniques. Then, we study the issues around batched computations, memory locality and code vectorization to implement a highly optimized matrix-matrix product for small sizes using SIMD instructions. By combining a high level programming approach and advanced parallel programming techniques, we show that we can outperform state of the art numerical libraries.
|
60 |
Modelom vođena semantička integracija poslovnih aplikacija / Model based semantic enterprise application integrationVuković Željko 21 December 2019 (has links)
<p>U sklopu doktorske disertacije izvršeno je istraživanje vezano za<br />automatizaciju integracije poslovnih aplikacija. Prikazani pristup<br />kombinuje model strukture interfejsa aplikacija koje se integrišu sa<br />formalnim opisom njihove semantike, datim u vidu ontologije. Na<br />osnovu ovih izvora, obavlja se automatsko mapiranje među elementima<br />interfejsa koji se integrišu, kao i detekcija i razrešavanje<br />semantičkih konflikata. Razvijena je praktična implementacija<br />predloženog pristupa, koja je korišćena za verifikaciju teorijskih<br />razmatranja, a uključuje adaptivan radni okvir i jezik specifičan za<br />domen. Predloženi pristup je verifikovan na dva realna<br />integraciona scenarija i jednim eksperimentom.</p> / <p>This thesis presents a research in the field of automation of enterprise<br />application integration. The approach combines structural models of<br />interfaces of the applications being integrated with a formal specification of<br />their semantics, given in form of an ontology. Using information from these<br />sources, automated interface mapping is performed, along with detection and<br />resolution of semantic conflicts. A practical implementation of the presented<br />approach was developed and used to verify theoretical considerations. The<br />implementation includes an adaptive framework and a domain specific<br />language. The proposed approach has been verified on two real-world<br />integration scenarios and one experiment.</p>
|
Page generated in 0.0888 seconds