231,962 research outputs found
Quantum Programming Made Easy
We present IQu, namely a quantum programming language that extends Reynold's
Idealized Algol, the paradigmatic core of Algol-like languages. IQu combines
imperative programming with high-order features, mediated by a simple type
theory. IQu mildly merges its quantum features with the classical programming
style that we can experiment through Idealized Algol, the aim being to ease a
transition towards the quantum programming world. The proposed extension is
done along two main directions. First, IQu makes the access to quantum
co-processors by means of quantum stores. Second, IQu includes some support for
the direct manipulation of quantum circuits, in accordance with recent trends
in the development of quantum programming languages. Finally, we show that IQu
is quite effective in expressing well-known quantum algorithms.Comment: In Proceedings Linearity-TLLA 2018, arXiv:1904.0615
Rewriting Constraint Models with Metamodels
An important challenge in constraint programming is to rewrite constraint
models into executable programs calculat- ing the solutions. This phase of
constraint processing may require translations between constraint programming
lan- guages, transformations of constraint representations, model
optimizations, and tuning of solving strategies. In this paper, we introduce a
pivot metamodel describing the common fea- tures of constraint models including
different kinds of con- straints, statements like conditionals and loops, and
other first-class elements like object classes and predicates. This metamodel
is general enough to cope with the constructions of many languages, from
object-oriented modeling languages to logic languages, but it is independent
from them. The rewriting operations manipulate metamodel instances apart from
languages. As a consequence, the rewriting operations apply whatever languages
are selected and they are able to manage model semantic information. A bridge
is created between the metamodel space and languages using parsing techniques.
Tools from the software engineering world can be useful to implement this
framework
Mobile Applications in X-KLAIM
Networking has turned computers from isolated data
processors into powerful communication and elaboration
devices, called global computers; an illustrative example is
the WorldāWide Web. Global computers are rapidly evolving
towards programmability. The new scenario has called
for new programming languages and paradigms centered
around the notions of mobility and location awareness. In
this paper, we briefly present X-KLAIM, an experimental
programming language for global computers, and show a
few programming examples
Cognitive dimensions usability assessment of textual and visual VHDL environments
Visual programming languages promise to make programming easier with simpler graphical methods, broadening access to computing by lessening the need for would-be users to become proficient with textual programming languages, with their somewhat arcane grammars and methods removed from the problem space of the user. However, after more than forty years of research in the field, visual methods remain in the margins of use and programming remains the bailiwick of people devoted to the endeavor. VPL designers need to understand the mechanisms of usability that pertain to complex systems like programming language environments. Effective research tools for studying usability, and sufficiently constrained, mature subjects for investigation are scarce. This study applies a usability research tool, with its origins in applied psychology, to a programming language surrogate from the hardware description language class of notations. The substitution is reasonable because of the great similarity between hardware description languages and programming languages. Considering VHDL (the VHSIC Hardware Description Language) is especially worthwhile for several reasons, but primarily because significant numbers of digital designers regularly employ both textual and visual VHDL environments to meet the same real-world design challenges. A comparative analysis of Cognitive Dimensions assessments of textual and visual VHDL environments should further understanding of the usability issues specifically related to visual methods ā in many cases, the same visual methods used in visual programming languages. Furthermore, with this real-world āfield labā better understood, it should be possible to design experiments to pursue the formalization of the CDs framework as a theory
In Search of Effectful Dependent Types
Real world programming languages crucially depend on the availability of
computational effects to achieve programming convenience and expressive power
as well as program efficiency. Logical frameworks rely on predicates, or
dependent types, to express detailed logical properties about entities.
According to the Curry-Howard correspondence, programming languages and logical
frameworks should be very closely related. However, a language that has both
good support for real programming and serious proving is still missing from the
programming languages zoo. We believe this is due to a fundamental lack of
understanding of how dependent types should interact with computational
effects. In this thesis, we make a contribution towards such an understanding,
with a focus on semantic methods.Comment: PhD thesis, Version submitted to Exam School
Common Subexpression Elimination in a Lazy Functional Language
Common subexpression elimination is a well-known compiler optimisation that saves time by avoiding the repetition of the same computation. To our knowledge it has not yet been applied to lazy functional programming languages, although there are several advantages. First, the referential transparency of these languages makes the identification of common subexpressions very simple. Second, more common subexpressions can be recognised because they can be of arbitrary type whereas standard common subexpression elimination only shares primitive values. However, because lazy functional languages decouple program structure from data space allocation and control flow, analysing its effects and deciding under which conditions the elimination of a common subexpression is beneficial proves to be quite difficult. We developed and implemented the transformation for the language Haskell by extending the Glasgow Haskell compiler and measured its effectiveness on real-world programs
- ā¦