Functional logic programming languages | Logic programming languages

Algebraic Logic Functional programming language

Algebraic Logic Functional programming language, also known as ALF, is a programming language which combines functional and logic programming techniques. Its foundation is Horn clause logic with equality which consists of predicates and Horn clauses for logic programming, and functions and equations for functional programming. ALF was designed to be genuine integration of both programming paradigms, and thus any functional expression can be used in a goal literal and arbitrary predicates can occur in conditions of equations. ALF's operational semantics is based on the resolution rule to solve literals and narrowing to evaluate functional expressions. In order to reduce the number of possible narrowing steps, a leftmost-innermost basic narrowing strategy is used which, it is claimed, can be efficiently implemented. Terms are simplified by rewriting before a narrowing step is applied and equations are rejected if the two sides have different constructors at the top. Rewriting and rejection are supposed to result in a large reduction of the search tree and produce an operational semantics that is more efficient than Prolog's resolution strategy. Similarly to Prolog, ALF uses a backtracking strategy corresponding to a depth-first search in the derivation tree. The ALF system was designed to be an efficient implementation of the combination of resolution, narrowing, rewriting, and rejection. ALF programs are compiled into instructions of an abstract machine. The abstract machine is based on the Warren Abstract Machine (WAM) with several extensions to implement narrowing and rewriting. In the current ALF implementation programs of this abstract machine are executed by an emulator written in C. In the Carnegie Mellon University Artificial Intelligence Repository, ALF is included as an AI programming language, in particular as a functional/logic programming language Prolog implementation. A user manual describing the language and the use of the system is available. The ALF System runs under Unix and is available under a custom proprietary software license that grants the right to use for "evaluation, research and teaching purposes" but not commercial or military use. (Wikipedia).

Video thumbnail

Programming Languages - (part 5 of 7)

How source code becomes a running program, how languages are categorized, and a survey of important languages. Part of a larger series teaching programming. Visit http://codeschool.org

From playlist Programming Languages

Video thumbnail

Don’t Be Scared Of Functional Programming

As software becomes more and more complex, it is more and more important to structure it well. Well-structured software is easy to write, easy to debug, and provides a collection of modules that can be re-used to reduce future programming costs. Conventional languages place conceptual limi

From playlist Functional Programming

Video thumbnail

The Essence of Functional Programming

This talk dives into the origins of functional programming, going all the way back to where the term was first introduced, to see how it evolved over time into our modern understanding of what FP essentially involves. PUBLICATION PERMISSIONS: Original video was published with the Creative

From playlist Functional Programming

Video thumbnail

Lesson 01_05 A more functional way of coding 1 plus 1

Download the notebook files as they are added at: http://www.juanklopper.com/computer-programming/ In this section I will show you that simple arithmetic can also be done using functions. We will have a separate lesson on functions, but this will give you a nice glimpse of what is to com

From playlist The Julia Computer Language

Video thumbnail

Algebraic JavaScript

Ian talks about leveraging algebraic theory in JavaScript to create functional, structured code that is simple to test and demonstrates algebraic traits. EVENT: Vancouver Full Stack, 2019-09-17 SPEAKER: Ian Hofmann-Hicks PUBLICATION PERMISSIONS: Original video was published with the

From playlist JavaScript

Video thumbnail

Why Algebraic Data Types Are Important

Strong static typing detects a lot of bugs at compile time, so why would anyone prefer to program in JavaScript or Python? The main reason is that type systems can be extremely complex, often with byzantine typing rules (C++ comes to mind). This makes generic programming a truly dark art.

From playlist Functional Programming

Video thumbnail

!!Con 2022 - La-La-Lambda Calculus: A Functional Musical Journey! by Anjana Vakil

La-La-Lambda Calculus: A Functional Musical Journey! The lambda calculus is a logical formalism that lets us represent programs - all their logic and data - as nothing but pure, anonymous, single-parameter functions. Numbers, operators, booleans, control flow, data structures… any way you

From playlist !!Con 2022

Video thumbnail

C9 Lectures: Dr. Erik Meijer - Functional Programming Fundamentals Chapter 6 of 13

We've kicked off C9 Lectures with a journey into the world of Functional Programming with functional language purist and high priest of the lambda calculus, Dr. Erik Meijer (you can thank Erik for many of the functional constructs that have shown up in languages like C# and VB.NET. When yo

From playlist Haskell - Functional Programming Fundamentals (Dr. Erik Meijer )

Video thumbnail

Programming with Math (Exploring Type Theory)

As programs are getting more complex, it's time to go back to basics, to the old well tested approach to complexity called mathematics. Let compilers deal with the intricacies of Turing machines. Our strength is abstract thinking. Let's use it! EVENT: Øredev 2018 SPEAKER: Bartosz Milew

From playlist Software Development

Video thumbnail

Proof synthesis and differential linear logic

Linear logic is a refinement of intuitionistic logic which, viewed as a functional programming language in the sense of the Curry-Howard correspondence, has an explicit mechanism for copying and discarding information. It turns out that, due to these mechanisms, linear logic is naturally r

From playlist Talks

Video thumbnail

Séminaire Bourbaki - 21/06/2014 - 3/4 - Thomas C. HALES

Developments in formal proofs A for mal proof is a proof that can be read and verified by computer, directly from the fundamental rules of logic and the foundational axioms of mathematics. The technology behind for mal proofs has been under development for decades and grew out of efforts i

From playlist Bourbaki - 21 juin 2014

Video thumbnail

Ross Duncan: Quantum formal methods

CIRM VIRTUAL EVENT Recorded during the meeting "Spring School in Theoretical Computer Science" the May 25, 2021 by the Centre International de Rencontres Mathématiques (Marseille, France) Filmmaker: Guillaume Hennenfent Find this video and other talks given by worldwide mathematicians

From playlist Virtual Conference

Video thumbnail

Integrating Inference with Stochastic Process Algebra Models - Jane Hillston, Edinburgh

ProPPA is a probabilistic programming language for continuous-time dynamical systems, developed as an extension of the stochastic process algebra Bio-PEPA. It offers a high-level syntax for describing systems of interacting components with stochastic behaviours where some of the parameters

From playlist Logic and learning workshop

Video thumbnail

Wolfram Physics Project: Working Session Tuesday, Feb. 2, 2021 [Proofs and Metamathematics]

This is a Wolfram Physics Project working session about proofs and metamathematics. Begins at 3:22 Originally livestreamed at: https://twitch.tv/stephen_wolfram Stay up-to-date on this project by visiting our website: http://wolfr.am/physics Check out the announcement post: http://wolfr.

From playlist Wolfram Physics Project Livestream Archive

Video thumbnail

The mathematical work of Vladimir Voevodsky - Dan Grayson

Vladimir Voevodsky Memorial Conference Topic: The mathematical work of Vladimir Voevodsky Speaker: Dan Grayson Affiliation: University of Illinois, Urbana-Champaign Date: September 11, 2018 For more video please visit http://video.ias.edu

From playlist Mathematics

Video thumbnail

Substructural Type Theory - Zeilberger

Noam Zeilberger IMDEA Software Institute; Member, School of Mathematics March 22, 2013 For more videos, visit http://video.ias.edu

From playlist Mathematics

Video thumbnail

C9 Lectures: Dr. Erik Meijer - Functional Programming Fundamentals Chapter 3 of 13

We've kicked off C9 Lectures with a journey into the world of Functional Programming with functional language purist and high priest of the lambda calculus, Dr. Erik Meijer (you can thank Erik for many of the functional constructs that have shown up in languages like C# and VB.NET. When yo

From playlist Haskell - Functional Programming Fundamentals (Dr. Erik Meijer )

Video thumbnail

C9 Lectures: Dr. Erik Meijer - Functional Programming Fundamentals Chapter 4 of 13

We've kicked off C9 Lectures with a journey into the world of Functional Programming with functional language purist and high priest of the lambda calculus, Dr. Erik Meijer (you can thank Erik for many of the functional constructs that have shown up in languages like C# and VB.NET. When yo

From playlist Haskell - Functional Programming Fundamentals (Dr. Erik Meijer )

Video thumbnail

Algebra and Artificial Intelligence

This is the audio from a talk I gave in May 2018 for the Melbourne logic seminar on the subject of algebra and artificial intelligence. The aim was to explain to an audience of logicians and mathematicians some of the recent progress in machine learning, and how events like the AlphaGo mat

From playlist Talks

Related pages

Depth-first search | Warren Abstract Machine | Horn clause | Operational semantics | Logic programming