Live programming support in the LogicBlox system: a MetaLogiQL approach

<p>The emerging category of self-service enterprise applications motivates support for "live programming" in the database, where the user's iterative data exploration triggers changes to installed application code and its output in real time.</p> <p>This paper discu...

Full description

Bibliographic Details
Main Authors: Green, TJ, Olteanu, D, Washburn, G
Format: Conference item
Language:English
Published: Proceedings of the Vldb Endowment International Conference on Very Large Data Bases 2015
_version_ 1797112470902407168
author Green, TJ
Olteanu, D
Washburn, G
author_facet Green, TJ
Olteanu, D
Washburn, G
author_sort Green, TJ
collection OXFORD
description <p>The emerging category of self-service enterprise applications motivates support for "live programming" in the database, where the user's iterative data exploration triggers changes to installed application code and its output in real time.</p> <p>This paper discusses the technical challenges in supporting live programming in the database and presents the solution implemented in the LogicBlox commercial system. The workhorse architectural component is a "meta-engine" that incrementally maintains metadata representing application code, guides its compilation into an internal representation in the database kernel, and orchestrates maintenance of materialized views based on those changes. Our approach mirrors LogicBlox's declarative programming model and describes the maintenance of application code using declarative meta-rules; the meta-engine is essentially a "bootstrap" version of the database engine proper.</p> <p>Beyond live programming, the meta-engine turns out effective for a range of static analysis and optimization tasks. Outside of the database context, we speculate that our design may even provide a novel means of building incremental compilers for general-purpose programming languages.</p>
first_indexed 2024-03-07T08:26:14Z
format Conference item
id oxford-uuid:7494dda3-a54c-4f28-a81c-f5509f4ade82
institution University of Oxford
language English
last_indexed 2024-03-07T08:26:14Z
publishDate 2015
publisher Proceedings of the Vldb Endowment International Conference on Very Large Data Bases
record_format dspace
spelling oxford-uuid:7494dda3-a54c-4f28-a81c-f5509f4ade822024-02-15T08:00:23ZLive programming support in the LogicBlox system: a MetaLogiQL approachConference itemhttp://purl.org/coar/resource_type/c_5794uuid:7494dda3-a54c-4f28-a81c-f5509f4ade82EnglishSymplectic Elements at OxfordProceedings of the Vldb Endowment International Conference on Very Large Data Bases2015Green, TJOlteanu, DWashburn, G<p>The emerging category of self-service enterprise applications motivates support for "live programming" in the database, where the user's iterative data exploration triggers changes to installed application code and its output in real time.</p> <p>This paper discusses the technical challenges in supporting live programming in the database and presents the solution implemented in the LogicBlox commercial system. The workhorse architectural component is a "meta-engine" that incrementally maintains metadata representing application code, guides its compilation into an internal representation in the database kernel, and orchestrates maintenance of materialized views based on those changes. Our approach mirrors LogicBlox's declarative programming model and describes the maintenance of application code using declarative meta-rules; the meta-engine is essentially a "bootstrap" version of the database engine proper.</p> <p>Beyond live programming, the meta-engine turns out effective for a range of static analysis and optimization tasks. Outside of the database context, we speculate that our design may even provide a novel means of building incremental compilers for general-purpose programming languages.</p>
spellingShingle Green, TJ
Olteanu, D
Washburn, G
Live programming support in the LogicBlox system: a MetaLogiQL approach
title Live programming support in the LogicBlox system: a MetaLogiQL approach
title_full Live programming support in the LogicBlox system: a MetaLogiQL approach
title_fullStr Live programming support in the LogicBlox system: a MetaLogiQL approach
title_full_unstemmed Live programming support in the LogicBlox system: a MetaLogiQL approach
title_short Live programming support in the LogicBlox system: a MetaLogiQL approach
title_sort live programming support in the logicblox system a metalogiql approach
work_keys_str_mv AT greentj liveprogrammingsupportinthelogicbloxsystemametalogiqlapproach
AT olteanud liveprogrammingsupportinthelogicbloxsystemametalogiqlapproach
AT washburng liveprogrammingsupportinthelogicbloxsystemametalogiqlapproach