Programming Languages: Principles and Paradigms

Programming Languages: Principles and Paradigms
Author: Maurizio Gabbrielli
Publisher: Springer Science & Business Media
Total Pages: 450
Release: 2010-03-23
Genre: Computers
ISBN: 1848829140

This excellent addition to the UTiCS series of undergraduate textbooks provides a detailed and up to date description of the main principles behind the design and implementation of modern programming languages. Rather than focusing on a specific language, the book identifies the most important principles shared by large classes of languages. To complete this general approach, detailed descriptions of the main programming paradigms, namely imperative, object-oriented, functional and logic are given, analysed in depth and compared. This provides the basis for a critical understanding of most of the programming languages. An historical viewpoint is also included, discussing the evolution of programming languages, and to provide a context for most of the constructs in use today. The book concludes with two chapters which introduce basic notions of syntax, semantics and computability, to provide a completely rounded picture of what constitutes a programming language. /div

The Logic Programming Paradigm

The Logic Programming Paradigm
Author: Krzysztof R. Apt
Publisher: Springer Science & Business Media
Total Pages: 457
Release: 2012-12-06
Genre: Computers
ISBN: 3642600859

This exciting new text reveals both the evolution of this programming paradigm since its inception and the impressively broad scope of current research in the field. The contributors to this book are all leading world experts in Logic Programming, and they deal with both theoretical and practical issues. They address such diverse topics as: computational molecular biology, machine learning, mobile computing, multi-agent systems, planning, numerical computing and dynamical systems, database systems, an alternative to the "formulas as types" approach, program semantics and analysis, and natural language processing. XXXXXXX Neuer Text Logic Programming was founded 25 years ago. This exciting book reveals both the evolution of this programming paradigm and its impressively broad scope of current research. The contributions by leading computer scientists deal with both theoretical and practical issues. They address diverse topics such as: computational molecular biology, machine learning, mobile computing, multi-agent systems, numerical computing and dynamical systems, database systems, program semantics, natural language processing, and promising future directions.

Declarative Logic Programming

Declarative Logic Programming
Author: Michael Kifer
Publisher: ACM Books
Total Pages: 615
Release: 2018-09-19
Genre:
ISBN: 9781970001969

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.

The Reasoned Schemer, second edition

The Reasoned Schemer, second edition
Author: Daniel P. Friedman
Publisher: MIT Press
Total Pages: 206
Release: 2018-03-09
Genre: Computers
ISBN: 0262535513

A new edition of a book, written in a humorous question-and-answer style, that shows how to implement and use an elegant little programming language for logic programming. The goal of this book is to show the beauty and elegance of relational programming, which captures the essence of logic programming. The book shows how to implement a relational programming language in Scheme, or in any other functional language, and demonstrates the remarkable flexibility of the resulting relational programs. As in the first edition, the pedagogical method is a series of questions and answers, which proceed with the characteristic humor that marked The Little Schemer and The Seasoned Schemer. Familiarity with a functional language or with the first five chapters of The Little Schemer is assumed. For this second edition, the authors have greatly simplified the programming language used in the book, as well as the implementation of the language. In addition to revising the text extensively, and simplifying and revising the “Laws” and “Commandments,” they have added explicit “Translation” rules to ease translation of Scheme functions into relations.

Logic Programming with Prolog

Logic Programming with Prolog
Author: Max A. Bramer
Publisher: Springer Science & Business Media
Total Pages: 246
Release: 2005-07-13
Genre: Computers
ISBN: 9781852339388

Written for those who wish to learn Prolog as a powerful software development tool, but do not necessarily have any background in logic or AI. Includes a full glossary of the technical terms and self-assessment exercises.

Logic Programming

Logic Programming
Author: Christoph Beierle
Publisher: Elsevier Publishing Company
Total Pages: 428
Release: 1995
Genre: Computers
ISBN:

This text aims at promoting a convergence between the technical challenges of developing advanced software systems and the formal techniques, tools and features evolving from the logic programming paradigm. It provides contributions towards different apsects of logic programming.

DSLs in Action

DSLs in Action
Author: Debasish Ghosh
Publisher: Simon and Schuster
Total Pages: 544
Release: 2010-11-30
Genre: Computers
ISBN: 1638351171

Your success—and sanity—are closer at hand when you work at a higher level of abstraction, allowing your attention to be on the business problem rather than the details of the programming platform. Domain Specific Languages—"little languages" implemented on top of conventional programming languages—give you a way to do this because they model the domain of your business problem. DSLs in Action introduces the concepts and definitions a developer needs to build high-quality domain specific languages. It provides a solid foundation to the usage as well as implementation aspects of a DSL, focusing on the necessity of applications speaking the language of the domain. After reading this book, a programmer will be able to design APIs that make better domain models. For experienced developers, the book addresses the intricacies of domain language design without the pain of writing parsers by hand. The book discusses DSL usage and implementations in the real world based on a suite of JVM languages like Java, Ruby, Scala, and Groovy. It contains code snippets that implement real world DSL designs and discusses the pros and cons of each implementation. Purchase of the print book comes with an offer of a free PDF, ePub, and Kindle eBook from Manning. Also available is all code from the book. What's Inside Tested, real-world examples How to find the right level of abstraction Using language features to build internal DSLs Designing parser/combinator-based little languages

Constraint Satisfaction in Logic Programming

Constraint Satisfaction in Logic Programming
Author: Pascal Van Hentenryck
Publisher: MIT Press (MA)
Total Pages: 250
Release: 1989
Genre: Constraint programming (Computer science).
ISBN:

This book tackles classic problems from operations research and circuit design using a logic programming language embedding consistency techniques, a paradigm emerging from artificial intelligence research. Van Hentenryck proposes a new approach to solving discrete combinatorial problems using these techniques.Logic programming serves as a convenient language for stating combinatorial problems, but its "generate and test" paradigm leads to inefficient programs. Van Hentenryck's approach preserves one of the most useful features of logic programming - the duality of its semantics - yet allows a short development time for the programs while preserving most of the efficiency of special purpose programs written in a procedural language.Embedding consistency techniques in logic programming allows for ease and flexibility of programming and short development time because constraint propagation and tree-search programming are abstracted away from the user. It also enables logic programs to be executed efficiently as consistency techniques permit an active use of constraints to remove combinations of values that cannot appear in a solution Van Hentenryck presents a comprehensive overview of this new approach from its theoretical foundations to its design and implementation, including applications to real life combinatorial problems.The ideas introduced in "Constraint Satisfaction in Logic Programming "have been used successfully to solve more than a dozen practical problems in operations research and circuit design, including disjunctive scheduling, warehouse location, cutting stock car sequencing, and microcode labeling problems.Pascal Van Hentenryck is a member of the research staff at the European Computer Industry Research Centre. "Constraint Satisfaction in Logic Programming" is based on research for the Centre's CHIP project. As an outgrowth of this project, a new language (CHIP) that will include consistency techniques has been developed for commercial use. The book is included in the Logic Programming series edited by Ehud Shapiro.