102,146 research outputs found
Flexible programmable networking: A reflective, component-based approach
The need for programmability and adaptability in networking systems is becoming increasingly important. More specifically, the challenge is in the ability to add services rapidly, and be able to deploy, configure and reconfigure them as easily as possible. Such demand is creating a considerable shift in the way networks are expected to operate in the future. This is the main aim of programmable networking research community, and in our project we are investigating a component-based approach to the structuring of programmable networking software. Our intention is to apply the notion of components, component frameworks and reflection ubiquitously, thus accommodating all the different elements that comprise a programmable networking system
Constraint rule-based programming of norms for electronic institutions
Peer reviewedPostprin
Lisp, Jazz, Aikido -- Three Expressions of a Single Essence
The relation between Science (what we can explain) and Art (what we can't)
has long been acknowledged and while every science contains an artistic part,
every art form also needs a bit of science. Among all scientific disciplines,
programming holds a special place for two reasons. First, the artistic part is
not only undeniable but also essential. Second, and much like in a purely
artistic discipline, the act of programming is driven partly by the notion of
aesthetics: the pleasure we have in creating beautiful things. Even though the
importance of aesthetics in the act of programming is now unquestioned, more
could still be written on the subject. The field called "psychology of
programming" focuses on the cognitive aspects of the activity, with the goal of
improving the productivity of programmers. While many scientists have
emphasized their concern for aesthetics and the impact it has on their
activity, few computer scientists have actually written about their thought
process while programming. What makes us like or dislike such and such language
or paradigm? Why do we shape our programs the way we do? By answering these
questions from the angle of aesthetics, we may be able to shed some new light
on the art of programming. Starting from the assumption that aesthetics is an
inherently transversal dimension, it should be possible for every programmer to
find the same aesthetic driving force in every creative activity they
undertake, not just programming, and in doing so, get deeper insight on why and
how they do things the way they do. On the other hand, because our aesthetic
sensitivities are so personal, all we can really do is relate our own
experiences and share it with others, in the hope that it will inspire them to
do the same. My personal life has been revolving around three major creative
activities, of equal importance: programming in Lisp, playing Jazz music, and
practicing Aikido. But why so many of them, why so different ones, and why
these specifically? By introspecting my personal aesthetic sensitivities, I
eventually realized that my tastes in the scientific, artistic, and physical
domains are all motivated by the same driving forces, hence unifying Lisp,
Jazz, and Aikido as three expressions of a single essence, not so different
after all. Lisp, Jazz, and Aikido are governed by a limited set of rules which
remain simple and unobtrusive. Conforming to them is a pleasure. Because Lisp,
Jazz, and Aikido are inherently introspective disciplines, they also invite you
to transgress the rules in order to find your own. Breaking the rules is fun.
Finally, if Lisp, Jazz, and Aikido unify so many paradigms, styles, or
techniques, it is not by mere accumulation but because they live at the
meta-level and let you reinvent them. Working at the meta-level is an
enlightening experience. Understand your aesthetic sensitivities and you may
gain considerable insight on your own psychology of programming. Mine is
perhaps common to most lispers. Perhaps also common to other programming
communities, but that, is for the reader to decide..
Symmetry Breaking for Answer Set Programming
In the context of answer set programming, this work investigates symmetry
detection and symmetry breaking to eliminate symmetric parts of the search
space and, thereby, simplify the solution process. We contribute a reduction of
symmetry detection to a graph automorphism problem which allows to extract
symmetries of a logic program from the symmetries of the constructed coloured
graph. We also propose an encoding of symmetry-breaking constraints in terms of
permutation cycles and use only generators in this process which implicitly
represent symmetries and always with exponential compression. These ideas are
formulated as preprocessing and implemented in a completely automated flow that
first detects symmetries from a given answer set program, adds
symmetry-breaking constraints, and can be applied to any existing answer set
solver. We demonstrate computational impact on benchmarks versus direct
application of the solver.
Furthermore, we explore symmetry breaking for answer set programming in two
domains: first, constraint answer set programming as a novel approach to
represent and solve constraint satisfaction problems, and second, distributed
nonmonotonic multi-context systems. In particular, we formulate a
translation-based approach to constraint answer set solving which allows for
the application of our symmetry detection and symmetry breaking methods. To
compare their performance with a-priori symmetry breaking techniques, we also
contribute a decomposition of the global value precedence constraint that
enforces domain consistency on the original constraint via the unit-propagation
of an answer set solver. We evaluate both options in an empirical analysis. In
the context of distributed nonmonotonic multi-context system, we develop an
algorithm for distributed symmetry detection and also carry over
symmetry-breaking constraints for distributed answer set programming.Comment: Diploma thesis. Vienna University of Technology, August 201
- ā¦