Declarative Programming
52 Followers
Recent papers in Declarative Programming
Once students master the imperative programming paradigm, they find it hard to learn to work with a declarative language such as Prolog. In order to help our students make the transition from imperative to pure declarative programming, we... more
Exercise: prove that T P is ⊆-monotonic, i.e., if I ⊆ J, then T P (I) ⊆ T P (J).
Software engineering courses offer one of many opportunities for providing students with a significant experience in declarative programming. This report discusses some results from taking advantage of this opportunity in a two-semester... more
Declarative Programming is an advanced paradigm for the modeling and solving of complex problems. This specification method has got more and more attraction over the last years, e.g., in the domains of databases and the processing of... more
Starting at a seminal paper published by J. Jaffar and J.L. Lassez in 1987 [JL87], Constraint Logic Programming (CLP) has developed as a powerful programming paradigm which supports a clean combination of logic (in the form of Horn... more
Comparison of programming languages is a common topic of discussion among software engineers. Few languages ever become sufficiently popular that they are used by more than a few people or find their niche in research or education; but... more
This is a survey on the programming languages: C++, JavaScript, AspectJ, C#, Haskell, Java, PHP, Scala, Scheme, and BPEL. Our survey work involves a comparative study of these ten programming languages with respect to the following... more
This is a survey on the programming languages: C++, JavaScript, AspectJ, C#, Haskell, Java, PHP, Scala, Scheme, and BPEL. Our survey work involves a comparative study of these ten programming languages with respect to the following... more
CREAM (“Constraints with Rules to EAse Modelling”) is a general rule-based modelling language designed to make easy to use for engineers the formulation of combinatorial problems and the integration of domain-specific knowledge in... more
Declarative programming can be described as a paradigm, a style of building the structure and elements of computer programs, that expresses the logic of a computation without describing its control flow. Many languages applying this style... more
Constructor-Based Conditional Rewriting Logic is a general framework for integrating first-order functional and logic programming which gives an algebraic semantics for nondeterministic functional-logic programs. In the context of this... more
We present an overview of JTL (the Java Tools Language, pronounced "Gee-tel"), a novel language for querying JAVA [8] programs. JTL was designed to serve the development of source code software tools for JAVA, and as a small language to... more
We discuss some approaches to declarative programming including functional programming, various logic programming languages and extensions, and definitional programming. In particular we discuss the programmers need and possibilities to... more
This paper presents a data mining approach for analyzing responses to ad-vanced declarative programming questions. The goal of this research is to find a model that can explain the results obtained by students when they perform exams with... more
We propose an approach to declarative programming which integrates the functional and relational paradigms by taking possibly non-deterministic lazy functions as the fundamental notion. Classical equational logic does not supply a... more
In current-day software development, programmers often use programming patterns to clarify their intents and to increase the understandability of their programs. Unfortunately, most software development environments do not adequately... more
Answer Set Programming (ASP) is a declarative paradigm for solving search problems appearing in knowledge representation and reasoning. To solve a problem, a programmer designs a logic program so that models of the program determine... more
Web and peer-to-peer systems have emerged as popular areas in distributed computing, and their integrated usage permits the benefits of both to be exploited. While much work in these areas have utilized the imperative programming... more
This paper presents an environment to support high-level database programming in the multi-paradigm declarative programming language Curry. We define an application programming interface (API) that abstracts from the concrete database... more
Խնդրի դրվածքը Դիցուք բոլոր դիտարկվող լեզվուների համար տրված է R սահմանափակումների բազմությունը, իսկ F-ը այն բանաձևերի բազմությունն է, որը չի հակասում R-ի սահմանափակումներին։ Որպես S կանոնների բազմություն կվերցնենք տվյալ լեզվում... more
Van Hentenryck, P., H. Simonis and M. Dincbas, Constraint satisfaction using constraint logic programming, Artificial Intelligence 58 (1992) 113-159.
SML.NET is a compiler for Standard ML that targets the Common Language Runtime and is integrated into the Visual Studio development environment. It supports easy interoperability with other .NET languages via a number of language... more
Software engineering courses offer one of many opportunities for providing students with a significant experience in declarative programming. This report discusses some results from taking advantage of this opportunity in a two-semester... more
C remains the language of choice for hardware programming (device drivers, bus configuration, etc.): it is fast, allows low-level access, and is trusted by OS developers. However, the algorithms required to configure and reconfigure... more
This is the second in a series of two reports presenting a comparison between the Control Network Programming language Spider and the logic programming language Prolog. Here, the focus is on juxtaposing the tools for programmer's control... more
Declarative programming using rules has advantages in certain application domains and has been successfully applied in many real world software projects. Besides building rule-based applications, rule concepts also provide a proven basis... more
One of the current problems in software systems development is the increasing complexity of analysing and guaranteeing the reliable behaviour of these systems. This project is oriented towards the development of the methods, tools and... more
Disjunctive Logic Programming (DLP) is an advanced formalism for knowledge representation and reasoning, which is very expressive in a precise mathematical sense: it allows to express every property of finite structures that is decidable... more
Object-oriented design patterns and high-level refactorings are popular means of implementing and evolving large object-oriented software systems. Unfortunately, these techniques are inadequately supported at implementation level by... more
Building and debugging distributed software remains extremely difficult. We conjecture that by adopting a datacentric approach to system design and by employing declarative programming languages, a broad range of distributed software can... more
Events play an important role in the construction of most software that involves interaction or simulation. Typically, programmers make use of a fixed set of low level events supplied by a window system, possibly augmented with timers and... more
Cyclic data structures can be tricky to create and manipulate in declarative programming languages. In a declarative setting, a natural way to view cyclic structures is as denoting regular trees, those trees which may be infinite but have... more
The conventional approach for the implementation of the knowledge base of a planning agent, on an intelligent embedded system, is solely of software nature. It requires the existence of a compiler that transforms the initial declarative... more
We introduce an approach of automatically identifying attacks by insider agents on data-flow based processes having a collection-oriented data model, and then improving the processes to prevent the attacks against them. Some process data,... more