Monday, June 9, 2014

Logic programming


Logic programming is a programming paradigm based on formal logic. A program written in a logic programming language is a set of sentences in logical form, expressing facts and rules about some problem domain. Major logic programming language families include Prolog, Answer set programming (ASP) and Datalog. In all of these languages, rules are written in the form of clauses:

H :- B1, …, Bn.
and are read declaratively as logical implications:

H if B1 and … and Bn.
H is called the head of the rule and B1, …, Bn is called the body. Facts are rules that have no body, and are written in the simplified form:

H.
In the simplest case in which H, B1, …, Bn are all atomic formulae, these clauses are called definite clauses or Horn clauses. However, there exist many extensions of this simple case, the most important one being the case in which conditions in the body of a clause can also be negations of atomic formulae. Logic programming languages that include this extension have the knowledge representation capabilities of a non-monotonic logic. Continue ReadingFrom Wikipedia, the free encyclopedia

Learn Logic Programming Online

Logic Programming Books
Logic & Functional Programming Book

The Haskell Road to Logic, Maths and Programming

Parallel Programming




A parallel programming model is a model for writing parallel programs which can be compiled and executed. The value of a programming model is usually judged on its generality: how well a range of different problems can be expressed and how well they execute on a range of different architectures. The implementation of a programming model can take several forms such as libraries invoked from traditional sequential languages, language extensions, or complete new execution models.
Consensus on a particular programming model is important as it enables software expressed within it to be transportable between different architectures. The von Neumann model has facilitated this with sequential architectures as it provides an efficient bridge between hardware and software, meaning that high-level languages can be efficiently compiled to it and it can be efficiently implemented in hardware.Continue Reading
From Wikipedia, the free encyclopedia

Read Parallel Programming online
http://en.wikipedia.org/wiki/Parallel_computing
http://web.eecs.umich.edu/~qstout/parallel.html

Parallel Programming Books

Structured Parallel Programming: Patterns for Efficient Computation
Designing and Building Parallel Programs
Parallel Programming Using C++
An Introduction to Parallel Programming
Patterns for Parallel Programming