310,457 research outputs found
Designing Expression Templates with Concepts
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
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
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
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
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
© 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++
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
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
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
- …