5 research outputs found
Partially-Static Data as Free Extension of Algebras
Partially-static data structures are a well-known technique for improving binding times. However, they are often defined in an ad-hoc manner, without a unifying framework to ensure full use of the equations associated with each operation. We present a foundational view of partially-static data structures as free extensions of algebras for suitable equational theories, i.e. the coproduct of an algebra and a free algebra in the category of algebras and their homomorphisms. By precalculating these free extensions, we construct a high-level library of partially-static data representations for common algebraic structures. We demonstrate our library with common use-cases from the literature: string and list manipulation, linear algebra, and numerical simplification.Supported by the European Research Council grant âevents causality and symmetry Ă the next- generation semanticsâ; the Engineering and Physical Sciences Research Council grant EP/N007387/1 âQuantum computation as a programming languageâ, and a Balliol College Oxford Career Development Fellowshi
Probabilistic Graphical Modelling for Software Product Lines: A Frameweork for Modeling and Reasoning under Uncertainty
This work provides a holistic investigation into the realm of feature modeling within
software product lines. The work presented identifies limitations and challenges within
the current feature modeling approaches. Those limitations include, but not limited to,
the dearth of satisfactory cognitive presentation, inconveniency in scalable systems,
inflexibility in adapting changes, nonexistence of predictability of models behavior, as
well as the lack of probabilistic quantification of modelâs implications and decision
support for reasoning under uncertainty. The work in this thesis addresses these
challenges by proposing a series of solutions. The first solution is the construction of a
Bayesian Belief Feature Model, which is a novel modeling approach capable of
quantifying the uncertainty measures in model parameters by a means of incorporating
probabilistic modeling with a conventional modeling approach. The Bayesian Belief
feature model presents a new enhanced feature modeling approach in terms of truth
quantification and visual expressiveness. The second solution takes into consideration
the unclear support for the reasoning under the uncertainty process, and the challenging
constraint satisfaction problem in software product lines. This has been done through the
development of a mathematical reasoner, which was designed to satisfy the model
constraints by considering probability weight for all involved parameters and quantify
the actual implications of the problem constraints. The developed Uncertain Constraint
Satisfaction Problem approach has been tested and validated through a set of designated
experiments.
Profoundly stating, the main contributions of this thesis include the following:
⢠Develop a framework for probabilistic graphical modeling to build the purported
Bayesian belief feature model.
⢠Extend the model to enhance visual expressiveness throughout the integration of
colour degree variation; in which the colour varies with respect to the predefined
probabilistic weights.
⢠Enhance the constraints satisfaction problem by the uncertainty measuring of the
parameters truth assumption.
⢠Validate the developed approach against different experimental settings to
determine its functionality and performance
Static Computation and Reflection
Thesis (PhD) - Indiana University, Computer Sciences, 2008Most programming languages do not allow programs to inspect their
static type information or perform computations on it. C++, however,
lets programmers write template metaprograms, which enable programs to
encode static information, perform compile-time computations,
and make static decisions about run-time behavior. Many C++ libraries
and applications use template metaprogramming to build specialized
abstraction mechanisms, implement domain-specific safety checks, and
improve run-time performance.
Template metaprogramming is an emergent capability of the C++ type
system, and the C++ language specification is informal and imprecise.
As a result, template metaprogramming often involves heroic
programming feats and often leads to code that is difficult to read and
maintain. Furthermore, many template-based code generation and
optimization techniques rely on particular compiler implementations,
rather than language semantics, for performance gains.
Motivated by the capabilities and techniques of C++ template
metaprogramming, this thesis documents some common programming patterns,
including static computation, type analysis, generative programming, and the
encoding of domain-specific static checks. It also documents notable
shortcomings to current practice, including limited support for reflection,
semantic ambiguity, and other issues that arise from the pioneering nature of
template metaprogramming. Finally, this thesis presents the design of a
foundational programming language, motivated by the analysis of template
metaprogramming, that allows programs to statically inspect type information,
perform computations, and generate code. The language is specified as a core
calculus and its capabilities are presented in an idealized setting