310,457 research outputs found

    Designing Expression Templates with Concepts

    Get PDF
    International audienceConcepts are likely to be introduced in a future C++ standard. They can be used for constraining template parameters, which enables checking requirements on template parameters sooner in the compilation process, and thus providing more intelligible error messages to the user.They can also be used in the specialization of templates, thus leading to a better control over the selection of the most appropriate version of a template for a given instantiation. This latter aspect offers new possibilities in the design of template libraries, as it enhances the specialization mechanism of templates, and set it up as a solid alternative to inheritance when static binding can replace dynamic binding.This report addresses the design of expression templates (i.e. templates that represent expressions and are usually built through operator overloading) that are useful to develop an embedded domain specific language (EDSL), and can speed up the evaluation of an expression by delaying the evaluation of intermediate operations to avoid unnecessary temporary objects.We propose to use concept-based template specialization to parse expression templates in order to ease the design of an EDSL. This approach is a static variant of the well-known visitor design pattern that replaces the overridden methods in the double dispatch of the original design pattern by template specializations based on concepts. An example of EDSL for linear programming developed with our solution demonstrates that a concept-based design helps producing concise and reliable code

    The C++0x "Concepts" Effort

    Full text link
    C++0x is the working title for the revision of the ISO standard of the C++ programming language that was originally planned for release in 2009 but that was delayed to 2011. The largest language extension in C++0x was "concepts", that is, a collection of features for constraining template parameters. In September of 2008, the C++ standards committee voted the concepts extension into C++0x, but then in July of 2009, the committee voted the concepts extension back out of C++0x. This article is my account of the technical challenges and debates within the "concepts" effort in the years 2003 to 2009. To provide some background, the article also describes the design space for constrained parametric polymorphism, or what is colloquially know as constrained generics. While this article is meant to be generally accessible, the writing is aimed toward readers with background in functional programming and programming language theory. This article grew out of a lecture at the Spring School on Generic and Indexed Programming at the University of Oxford, March 2010

    Digital information support for concept design

    Get PDF
    This paper outlines the issues in effective utilisation of digital resources in conceptual design. Access to appropriate information acts as stimuli and can lead to better substantiated concepts. This paper addresses the issues of presenting such information in a digital form for effective use, exploring digital libraries and groupware as relevant literature areas, and argues that improved integration of these two technologies is necessary to better support the concept generation task. The development of the LauLima learning environment and digital library is consequently outlined. Despite its attempts to integrate the designers' working space and digital resources, continuing issues in library utilisation and migration of information to design concepts are highlighted through a class study. In light of this, new models of interaction to increase information use are explored

    Homogenization studies for optical sensors based on sculptured thin films

    Get PDF
    In this thesis we investigate theoretically various types of sculptured thin film (STF) envi�sioned as platforms for optical sensing. A STF consists of an array of parallel nanowires which can be grown on a substrate using vapour deposition techniques. Typically, each nanowire has a diameter in the range from ∼ 10−300 nm while the film thickness is . 1µm. Through careful control of the fabrication process, both the optical properties and the porosity of the STF can be tailored to order. These abilities make STFs promising for optical sensing applications, wherein it is envisaged that the material to be sensed infiltrates the void re�gion in between the parallel nanowires and hence changes the optical properties of the STF. Various homogenization formalisms can be used to estimate the constitutive parameters of the infiltrated STFs. In this thesis two different homogenization formalisms were used: the Bruggeman formalism (extended and non–extended versions) and the strong-permittivity�fluctuation theory (SPFT). These were used in investigations of the following optical–sensing scenarios: (i) Electromagnetic radiation emitted by a dipole source inside an infiltrated chiral STF. The effects of using the extended Bruggeman homogenization formalism, which takes into account the nonzero size of the component particles, were studied. (ii) Surface–plasmon– polariton waves on a metal–coated, infiltrated columnar thin film. The influences of using the extended SPFT formalism, which takes into account the nonzero size of the component particles and their statistical distributions, were explored. (iii) A metal-coated infiltrated chiral STF which supports both surface-plasmon-polariton waves and the circular Bragg phe�nomenon. The possibility of using in parallel both surface-plasmon-polariton waves and the circular Bragg phenomenon was investigated using the non–extended Bruggeman formalism. Our numerical studies revealed that the design performance parameters of the infiltrated STF are bode well for these optical–sensing scenarios. The use of inverse Bruggeman formalism was also investigated: this was found to be problematic in certain constitutive parameter regimes, but not those for optical–sensing scenarios considered in this thesis

    Bridging the gap between design and implementation of components libraries

    Get PDF
    Object-oriented design is usually driven by three main reusability principles: step-by-step design, design for reuse and design with reuse. However, these principles are just partially applied to the subsequent object-oriented implementation, often due to efficienc y constraints, yielding to a gap between design and implementation. In this paper we provide a solution for bridging this gap for a concrete framework, the one of designing and implementing container-like component libraries, such as STL, Booc h Components, etc. Our approach is based on a new design pattern together with its corresponding implementation. The proposal enhances the same principles that drive the design process: step-by--step implementation (adding just what is needed in every step), implementation with reuse (component implementations are reused while library implementation progresses and component hierarchies grow) and implementation for reuse (intermediate component implementations can be reused in many different points o f the hierarchy). We use our approach in two different manners: for building a brand-new container-like component library, and for reengineering an existing one, Booch Components in Ada95.Postprint (published version

    Beyond books: the concept of the academic library as learning space

    Get PDF
    © 2016, © Emerald Group Publishing Limited. Purpose: The paper aims to explore the issues surrounding the user conceptualisation of academic libraries. The paper will solidify the role of academic libraries as learning spaces and problematise how libraries are conceptualised by users. Design/methodology/approach: The paper is a literature-based conceptual paper and draws on a wide range of literature to challenge the concept of academic libraries and presents how they are becoming reframed as different spaces. Findings: The paper argues that the concept of a library is at risk. While libraries have undergone substantial changes, the concept of a library has lingered. This paper demonstrated that libraries need to proactively engage users in this debate. Originality/value: The spatial approach taken by this paper demonstrates the complicity behind the user conceptualisation of libraries. Developing an understanding of this process is an important foundation for libraries to develop their user engagement

    Odeint - Solving ordinary differential equations in C++

    Full text link
    Many physical, biological or chemical systems are modeled by ordinary differential equations (ODEs) and finding their solution is an every-day-task for many scientists. Here, we introduce a new C++ library dedicated to find numerical solutions of initial value problems of ODEs: odeint (www.odeint.com). odeint is implemented in a highly generic way and provides extensive interoperability at top performance. For example, due to it's modular design it can be easily parallized with OpenMP and even runs on CUDA GPUs. Despite that, it provides a convenient interface that allows for a simple and easy usage.Comment: 4 pages, 1 figur

    Policy Enforcement with Proactive Libraries

    Full text link
    Software libraries implement APIs that deliver reusable functionalities. To correctly use these functionalities, software applications must satisfy certain correctness policies, for instance policies about the order some API methods can be invoked and about the values that can be used for the parameters. If these policies are violated, applications may produce misbehaviors and failures at runtime. Although this problem is general, applications that incorrectly use API methods are more frequent in certain contexts. For instance, Android provides a rich and rapidly evolving set of APIs that might be used incorrectly by app developers who often implement and publish faulty apps in the marketplaces. To mitigate this problem, we introduce the novel notion of proactive library, which augments classic libraries with the capability of proactively detecting and healing misuses at run- time. Proactive libraries blend libraries with multiple proactive modules that collect data, check the correctness policies of the libraries, and heal executions as soon as the violation of a correctness policy is detected. The proactive modules can be activated or deactivated at runtime by the users and can be implemented without requiring any change to the original library and any knowledge about the applications that may use the library. We evaluated proactive libraries in the context of the Android ecosystem. Results show that proactive libraries can automati- cally overcome several problems related to bad resource usage at the cost of a small overhead.Comment: O. Riganelli, D. Micucci and L. Mariani, "Policy Enforcement with Proactive Libraries" 2017 IEEE/ACM 12th International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS), Buenos Aires, Argentina, 2017, pp. 182-19

    A framework for design engineering education in a global context

    Get PDF
    This paper presents a framework for teaching design engineering in a global context using innovative technologies to enable distributed teams to work together effectively across international and cultural boundaries. The DIDET Framework represents the findings of a 5-year project conducted by the University of Strathclyde, Stanford University and Olin College which enhanced student learning opportunities by enabling them to partake in global, team based design engineering projects, directly experiencing different cultural contexts and accessing a variety of digital information sources via a range of innovative technology. The use of innovative technology enabled the formalization of design knowledge within international student teams as did the methods that were developed for students to store, share and reuse information. Coaching methods were used by teaching staff to support distributed teams and evaluation work on relevant classes was carried out regularly to allow ongoing improvement of learning and teaching and show improvements in student learning. Major findings of the 5 year project include the requirement to overcome technological, pedagogical and cultural issues for successful eLearning implementations. The DIDET Framework encapsulates all the conclusions relating to design engineering in a global context. Each of the principles for effective distributed design learning is shown along with relevant findings and suggested metrics. The findings detailed in the paper were reached through a series of interventions in design engineering education at the collaborating institutions. Evaluation was carried out on an ongoing basis and fed back into project development, both on the pedagogical and the technological approaches
    corecore