Declarative Logic Programming


Book Description

The idea of this book grew out of a symposium that was held at Stony Brook in September 2012 in celebration of David S.Warren's fundamental contributions to Computer Science and the area of Logic Programming in particular. Logic Programming (LP) is at the nexus of Knowledge Representation, Artificial Intelligence, Mathematical Logic, Databases, and Programming Languages. It is fascinating and intellectually stimulating due to the fundamental interplay among theory, systems, and applications brought about by logic. Logic programs are more declarative in the sense that they strive to be logical specifications of "what" to do rather than "how" to do it, and thus they are high-level and easier to understand and maintain. Yet, without being given an actual algorithm, LP systems implement the logical specifications automatically. Several books cover the basics of LP but focus mostly on the Prolog language with its incomplete control strategy and non-logical features. At the same time, there is generally a lack of accessible yet comprehensive collections of articles covering the key aspects in declarative LP. These aspects include, among others, well-founded vs. stable model semantics for negation, constraints, object-oriented LP, updates, probabilistic LP, and evaluation methods, including top-down vs. bottom-up, and tabling. For systems, the situation is even less satisfactory, lacking accessible literature that can help train the new crop of developers, practitioners, and researchers. There are a few guides onWarren’s Abstract Machine (WAM), which underlies most implementations of Prolog, but very little exists on what is needed for constructing a state-of-the-art declarative LP inference engine. Contrast this with the literature on, say, Compilers, where one can first study a book on the general principles and algorithms and then dive in the particulars of a specific compiler. Such resources greatly facilitate the ability to start making meaningful contributions quickly. There is also a dearth of articles about systems that support truly declarative languages, especially those that tie into first-order logic, mathematical programming, and constraint solving. LP helps solve challenging problems in a wide range of application areas, but in-depth analysis of their connection with LP language abstractions and LP implementation methods is lacking. Also, rare are surveys of challenging application areas of LP, such as Bioinformatics, Natural Language Processing, Verification, and Planning. The goal of this book is to help fill in the previously mentioned void in the LP literature. It offers a number of overviews on key aspects of LP that are suitable for researchers and practitioners as well as graduate students. The following chapters in theory, systems, and applications of LP are included.




Practical Aspects of Declarative Languages


Book Description

This book constitutes the refereed proceedings of the 9th International Symposium on Practical Aspects of Declarative Languages, PADL 2007, held in Nice, France, in January 2007, co-located with POPL 2007, the Symposium on Principles of Programming Languages. The 19 revised full papers presented together with two invited papers were carefully reviewed and selected from 58 submissions. All current aspects of declarative programming are addressed.




Improving Software Testing


Book Description

​Software is continuously increasing in complexity. Paradigmatic shifts and new development frameworks make it easier to implement software – but not to test it. Software testing remains to be a topic with many open questions with regard to both technical low-level aspects and to the organizational embedding of testing. However, a desired level of software quality cannot be achieved by either choosing a technical procedure or by optimizing testing processes. In fact, it requires a holistic approach.This Brief summarizes the current knowledge of software testing and introduces three current research approaches. The base of knowledge is presented comprehensively in scope but concise in length; thereby the volume can be used as a reference. Research is highlighted from different points of view. Firstly, progress on developing a tool for automated test case generation (TCG) based on a program’s structure is introduced. Secondly, results from a project with industry partners on testing best practices are highlighted. Thirdly, embedding testing into e-assessment of programming exercises is described.




Computational Logic


Book Description

Handbook of the History of Logic brings to the development of logic the best in modern techniques of historical and interpretative scholarship. Computational logic was born in the twentieth century and evolved in close symbiosis with the advent of the first electronic computers and the growing importance of computer science, informatics and artificial intelligence. With more than ten thousand people working in research and development of logic and logic-related methods, with several dozen international conferences and several times as many workshops addressing the growing richness and diversity of the field, and with the foundational role and importance these methods now assume in mathematics, computer science, artificial intelligence, cognitive science, linguistics, law and many engineering fields where logic-related techniques are used inter alia to state and settle correctness issues, the field has diversified in ways that even the pure logicians working in the early decades of the twentieth century could have hardly anticipated. Logical calculi, which capture an important aspect of human thought, are now amenable to investigation with mathematical rigour and computational support and fertilized the early dreams of mechanised reasoning: "Calculemus. The Dartmouth Conference in 1956 – generally considered as the birthplace of artificial intelligence – raised explicitly the hopes for the new possibilities that the advent of electronic computing machinery offered: logical statements could now be executed on a machine with all the far-reaching consequences that ultimately led to logic programming, deduction systems for mathematics and engineering, logical design and verification of computer software and hardware, deductive databases and software synthesis as well as logical techniques for analysis in the field of mechanical engineering. This volume covers some of the main subareas of computational logic and its applications. - Chapters by leading authorities in the field - Provides a forum where philosophers and scientists interact - Comprehensive reference source on the history of logic




Discoveries and Breakthroughs in Cognitive Informatics and Natural Intelligence


Book Description

Cognitive informatics is a multidisciplinary field that acts as the bridge between natural science and information science. Specifically, it investigates the potential applications of information processing and natural intelligence to science and engineering disciplines. This collection, entitled Discoveries and Breakthroughs in Cognitive Informatics and Natural Intelligence, provides emerging research topics in cognitive informatics research with a focus on such topics as reducing cognitive overload, real-time process algebra, and neural networks for iris recognition, emotion recognition in speech, and the classification of musical chords.




Logic-Based Program Synthesis and Transformation


Book Description

This book constitutes the thoroughly refereed post-conference proceedings of the 27th International Symposium on Logic-Based Program Synthesis and Transformation, LOPSTR 2017, held in Namur, Belgium, in October 2017. The 19 revised full papers were carefully reviewed and selected from 29 submissions. In addition to the 19 revised papers, this volume includes the abstracts of the invited talks by three outstanding speakers: Sumit Gulwani, Marieke Huisman, and Grigore Roşu. The aim of the LOPSTR series is to stimulate and promote international research and collaboration on logic-based program development. LOPSTR is open to contributions in all aspects of logic-based program development, all stages of the software life cycle, and issues of both programming-in-the-small and programming-in-the-large. LOPSTR traditionally solicits contributions, in any language paradigm, in the areas of synthesis, specification, transformation, analysis and verification, specialization, testing and certification, composition, program/model manipulation, optimization, transformational techniques in SE, inversion, applications, and tools.




Systematic Program Design


Book Description

A systematic program design method can help developers ensure the correctness and performance of programs while minimizing the development cost. This book describes a method that starts with a clear specification of a computation and derives an efficient implementation by step-wise program analysis and transformations. The method applies to problems specified in imperative, database, functional, logic and object-oriented programming languages with different data, control and module abstractions. Designed for courses or self-study, this book includes numerous exercises and examples that require minimal computer science background, making it accessible to novices. Experienced practitioners and researchers will appreciate the detailed examples in a wide range of application areas including hardware design, image processing, access control, query optimization and program analysis. The last section of the book points out directions for future studies.




Logic Based Program Synthesis and Transformation


Book Description

This volume contains selected papers from LOPSTR 2003, the 13th Inter- tional Symposium on Logic-Based Program Synthesis and Transformation. The LOPSTR series is devoted to research in logic-based program development. P- ticular topics of interest are speci?cation, synthesis, veri?cation, transformation, specialization, analysis, optimization, composition, reuse, component-based so- ware development, agent-based software development, software architectures, design patterns and frameworks, program re?nement and logics for re?nement, proofs as programs, and applications and tools. LOPSTR 2003 took place at the University of Uppsala from August 25 to August 27 as part of PLI 2003 (Principles, Logics, and Implementations of High- Level Programming Languages). PLI was an ACM-organized confederation of conferences and workshops with ICFP 2003 (ACM-SIGPLAN International C- ference on Functional Programming) and PPDP 2003 (ACM-SIGPLAN Inter- tional Conference on Principles and Practice of Declarative Programming) as the main events. The LOPSTR community pro?ted from the shared lectures of the invited speakers, and the active scienti?c discussions enabled by the co-location. LOPSTR 2003 was the thirteenth in a series of events. Past events were held in Manchester, UK (1991, 1992, 1998), Louvain-la-Neuve, Belgium (1993), Pisa, Italy (1994), Arnhem, The Netherlands (1995), Stockholm, Sweden (1996), L- ven, Belgium (1997), Venice, Italy (1999), London, UK (2000), Paphos, Cyprus (2001), and Madrid, Spain (2002).




Systematic Program Design


Book Description