HOME

TheInfoList



OR:

The LogicBlox system is a commercial, declarative, incremental
logic programming language Logic programming is a programming paradigm which is largely based on formal logic. Any 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 prog ...
and
deductive database A deductive database is a database system that can make deductions (i.e. conclude additional facts) based on rules and facts stored in the (deductive) database. Datalog is the language typically used to specify facts, rules and queries in deducti ...
inspired by Datalog. The LogiQL programming language extends Datalog with several features, including stratified negation, aggregation, and a module system. LogicBlox has been used to build pointer analyses for
Java Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's List ...
.


Features

*
Stratified Stratification may refer to: Mathematics * Stratification (mathematics), any consistent assignment of numbers to predicate symbols * Data stratification in statistics Earth sciences * Stable and unstable stratification * Stratification, or st ...
negation * Aggregate functions * Evaluation using a novel worst-case optimal
join algorithm A join clause in SQL – corresponding to a join operation in relational algebra – combines columns from one or more tables into a new table. Informally, a join stitches two tables and puts on the same row records with matching fields : INNER, ...
. *
Data constructor In computer programming, especially functional programming and type theory, an algebraic data type (ADT) is a kind of composite type, i.e., a type formed by combining other types. Two common classes of algebraic types are product types (i.e., t ...
s * Static typing * A
module Module, modular and modularity may refer to the concept of modularity. They may also refer to: Computing and engineering * Modular design, the engineering discipline of designing complex devices using separately designed sub-components * Modul ...
system * Probabilistic programming features *
Incremental computation Incremental computing, also known as incremental computation, is a software feature which, whenever a piece of data changes, attempts to save time by only recomputing those outputs which depend on the changed data. When incremental computing is su ...
* Debugging with provenance


References


Notes


Sources

* * *


Further reading

* {{Cite book , last1=Halpin , first1=Terry , url=https://books.google.com/books?id=UBYeBQAAQBAJ&dq=logicblox&pg=PP1 , title=LogiQL: A Query Language for Smart Databases , last2=Rugaber , first2=Spencer , date=2014-11-13 , publisher=CRC Press , isbn=978-1-4822-4493-9 , language=en


See also

* Datalog Logic programming languages High-level programming languages