Regular expressions are a powerful tool for analyzing and manipulating text. Their theoretical background lies within automata theory and formal languages. The FIRE/J (fast implementation of regular expressions for Ja...
详细信息
Regular expressions are a powerful tool for analyzing and manipulating text. Their theoretical background lies within automata theory and formal languages. The FIRE/J (fast implementation of regular expressions for Java) regular expression library is designed to provide maximum execution speed while remaining portable across different machine architectures. To achieve that, FIRE/J transforms each regular expression into a tailor-made class file, which is compiled directly to Java virtual machine (JVM) bytecodes. The library is compatible with the POSIX standard. Copyright (c) 2007 John Wiley & Sons, Ltd.
Software clones-similar program structures repeated in variant forms-increase the risk of update anomalies, blow up the program size and complexity, possibly contributing to high maintenance costs. Yet, programs are o...
详细信息
Software clones-similar program structures repeated in variant forms-increase the risk of update anomalies, blow up the program size and complexity, possibly contributing to high maintenance costs. Yet, programs are often polluted by clones. In this paper, we present a case study of cloning in the Java Buffer library, JDK 1.5. We found that at least 68% of the code in the Buffer library was contained in cloned classes or class methods. Close analysis of program situations that led to cloning revealed difficulties in eliminating clones with conventional program design techniques. As a possible solution, we applied a generative technique of XVCL (XML-based Variant Configuration Language) to represent similar classes and methods in generic, adaptable form. Concrete buffer classes could be automatically produced from the generic structures. We argue, on analytical and empirical grounds, that unifying clones reduced conceptual complexity and enhanced the changeability of the Buffer library at rates proportional to code size reduction (68%). We evaluated our solution in qualitative and quantitative ways, and conducted a controlled experiment to support this claim. The approach presented in the paper can be used to enhance genericity and changeability of any program, independently of an application domain or programming language. As the solution is not without pitfalls, we discuss trade-offs involved in its project application. (c) Copyright 2006 John Wiley & Sons, Ltd.
The design processes based on parametric design and generative design allows multiple alternatives to be generated, analysed and corrected. The aim of the developed program was to automate the urban design concept dev...
详细信息
The design processes based on parametric design and generative design allows multiple alternatives to be generated, analysed and corrected. The aim of the developed program was to automate the urban design concept development process for selected land units with a local development plan. This document, ordinances and other sources were the guidelines for the program to be developed. The solution-generating program starts by taking in the data, and then geometrical objects are created that have the right relationships to each other. Finally, results are evaluated on the basis of calculated indices and further generations are created taking into account the best options. This process must be overseen by a human, but with the development of machine learning and artificial intelligence, automation will progress, reducing human effort. The results of the study were collated and compared with other experiments in an in-depth literature review.
This article describes how we extended the C# language by new constructs that provide means for generative programming. Those constructs make it possible to handle problems like the generation of user interfaces and c...
详细信息
This article describes how we extended the C# language by new constructs that provide means for generative programming. Those constructs make it possible to handle problems like the generation of user interfaces and certain crosscutting concerns in a less error prone and elegant way without affecting the overall language integrity.
Numerical software for the solution of partial differential equations is an important field in high performance computing. We study software quality criteria for such software using the Dune software framework as an e...
详细信息
ISBN:
(纸本)9781728122762
Numerical software for the solution of partial differential equations is an important field in high performance computing. We study software quality criteria for such software using the Dune software framework as an example. Given these software criteria, different development models are discussed. We furthermore look at recent hardware developments and how they affect software sustainability and programmability. On this basis, we make a case for generative programming techniques in the field of high performance computing and go into detail about recent additions of such into the Dune framework.
Developing pervasive computing applications is a difficult task because it requires to deal with a wide range of issues: heterogeneous devices, entity distribution, entity coordination, low-level hardware knowledge......
详细信息
ISBN:
(纸本)9781605584942
Developing pervasive computing applications is a difficult task because it requires to deal with a wide range of issues: heterogeneous devices, entity distribution, entity coordination, low-level hardware knowledge... Besides requiring various areas of expertise, programming such applications involves writing a lot of administrative code to glue technologies together and to interface with both hardware and software components. This paper proposes a generative programming approach to providing programming, execution and simulation support dedicated to the pervasive computing domain. This approach relies on a domain-specific language, named DiaSpec, dedicated to the description of pervasive computing systems. Our generative approach factors out features of distributed systems technologies, making DiaSpec-specified software systems portable. The DiaSpec compiler is implemented and has been used to generate dedicated programming frameworks for a variety of pervasive computing applications, including detailed ones to manage the building of an engineering school.
BLAS-level functions are the cornerstone of a large subset of applications. If a large body of work surrounding efficient and large-scale implementation of some routines such as gemv exists, the interest for small-siz...
详细信息
ISBN:
(纸本)9781538678794
BLAS-level functions are the cornerstone of a large subset of applications. If a large body of work surrounding efficient and large-scale implementation of some routines such as gemv exists, the interest for small-sized, highly-optimized versions of those routines emerged. In this paper, we propose to show how a modern C++ approach based on generative programming techniques such as vectorization and loop unrolling in the framework of meta-programming can deliver efficient automatically generated codes for such routines, that are competitive with existing, hand-tuned library kernels with a very low programming effort compared to writing assembly code. In particular, we analyze the performance of automatically generated small-sized gemv kernels for both Intel x86 and ARM processors. We show through a performance comparison with the OpenBLAS gemv kernel on small matrices of sizes ranging from 4 to 32 that our C++ kernels are very efficient and may have a performance that is up to 3 times better than that of OpenBLAS gemv.
This paper presents new models, methods, and tools developed as a part of a fundamental project in generative programming (GP). They include the theory of object-component programming, theory of interaction of program...
详细信息
This paper presents new models, methods, and tools developed as a part of a fundamental project in generative programming (GP). They include the theory of object-component programming, theory of interaction of programs, systems, and environments, an original technology of designing variable and high-quality systems and families out of ready-made reusable components, tools for supporting a spectrum of simple technologies for developing separate elements of system families and assembling them, ensuring of the interoperability of programs, systems, and environments, and an instrumental and technical GP complex for e-learning the C# and Java languages and a university course on software engineering.
This paper presents a novel method for generating geometric models of architectural heritage in the absence of a digital survey. The method employs a generative programming (GP) algorithm for geometric model generatio...
详细信息
This paper presents a novel method for generating geometric models of architectural heritage in the absence of a digital survey. The method employs a generative programming (GP) algorithm for geometric model generation, with the Temple of Vesta in Tivoli chosen as a case study. Francesco Piranesi's 18thcentury etchings are utilised as references to identify the architectural layout and modularity. The effectiveness of the proposed generative workflow is highlighted through its time efficiency and the reusability of the algorithm. The workflow includes the capability to generate an export file suitable for structural simulation software packages. The generated geometric model is then used to conduct nonlinear dynamic analysis using a concurrent continuous/block-based approach within a Finite Element environment. The simulations are performed with the structure in its current state and do not account for retrofitting interventions, i.e. anchorages and tie rods are not taken into account. The numerical model reveals how local failure mechanisms of columns and entablature affect the structural safety of the Vesta temple. (c) 2024 The Author(s). Published by Elsevier Masson SAS. This is an open access article under the CC BY license ( http://***/licenses/by/4.0/ )
We present DiaSuite, a tool suite that uses a software design approach to drive the development process. DiaSuite focuses on a specific domain, namely Sense/Compute/Control (SCC) applications. It comprises a domain-sp...
详细信息
We present DiaSuite, a tool suite that uses a software design approach to drive the development process. DiaSuite focuses on a specific domain, namely Sense/Compute/Control (SCC) applications. It comprises a domain-specific design language, a compiler producing a Java programming framework, a 2D-renderer to simulate an application, and a deployment framework. We have validated our tool suite on a variety of concrete applications in areas including telecommunications, building automation, robotics and avionics. (C) 2012 Elsevier B.V. All rights reserved.
暂无评论