Logic, from Classical Greek λόγος (logos), originally meaning the word, or what is spoken, (but coming to mean thought or reason) is most often said to be the study of criteria for the evaluation of arguments, although the exact definition of logic is a matter of controversy among philosophers. However the subject is grounded, the task of the logician is the same: to advance an account of valid and fallacious inference to allow one to distinguish logical from flawed arguments.
Traditionally, logic is studied as a branch of philosophy. Since the mid-nineteenth century logic has been commonly studied in mathematics and law. More recently logic is applied in computer science and artificial intelligence. As a formal science, logic investigates and classifies the structure of statements and arguments, both through the study of formal systems of inference and through the study of arguments in natural language. The scope of logic can therefore be very large, ranging from core topics such as the study of fallacies and paradoxes, to specialist analyses of reasoning such as probably correct reasoning and arguments involving causality. Logic is also commonly used today in argumentation theory.
Declarative :: Languages
Functional :: Languages
Constraint Logic :: Logic based
Multiparadigm :: Languages

ALF - Foundation: Horn clause logic with equality which consists of predicates and Horn clauses for logic programming, and functions and equations for functional programming. A full integration of both programming models, so any functional expression can be used in a goal literal and arbitrary predicates can occur in conditions of equations.
BABEL - Operational semantics based on lazy narrowing; provides some higher-order features.
Curry - Multiparadigm declarative programming language seamlessly merges functional, logic, and concurrent programming paradigms; covers the most important operational principles in the area of integrated functional logic languages.
Escher - Declarative, general-purpose language, merges best features of functional and logic languages. Has types and modules, higher-order and meta-programming facilities, declarative input/output. Set of system modules provides many operations on standard data types: integers, lists, characters, strings, sets, programs.
Functional Logic Programming - Michael Hanus's pages on amalgamating functional and logic programming.
HAL - Strongly typed, weakly moded, constraint-logic functional language designed to support construction, extension, and use of new constraint solvers.
LPG - Generic functional logic language: functions defined by conditional rewrite rules, predicates defined by Horn clauses whose bodies may contain equations, disequations, or classical atomic formulae. Extant version uses extension of SLD-resolution merged with innermost narrowing.
RELFUN - Relational-Functional Language: logic-programming language with call-by-value (eager) expressions of non-deterministic, non-ground functions; clauses are Hornish, succeeding with true(s), or footed, returning any value(s), and define operations (relations, functions) allowing (apply-reducible) higher-order syntax with arbitrary terms (constants, structures, variables) as operators.
500
SEL - Subset-Equational Language: functional programming language based on equational and subset program clauses, with strict semantics, weak typing. Goal: declarative and efficient set processing compatible with functional and logic programming. Provides ability to define transitive closures through circular constraints. FTP site.
| Faith, Evolution, and Programming Languages | |
| Next Video | |