Tomas Petricek, Jan Liam Verter & Mikolas Fromm
Charles University, Prague



Not just a programming language feature
Dot-driven development
(Phil Trelford)
Type dot and choose from auto-complete!



Programming is
writing code
Formal semantics, implementation, paradigms, types
We know how
to study this!


Interacting with a stateful system
Feedback, liveness, interactive user interfaces
But how do we
study this?


Technical dimensions

Like this work




Correct and complete
Can construct all
possible programs
All constructed
programs are correct

Given expressions \(e\in \mathbb{E}\) and states \(\sigma \in \Sigma\)
Choose returns a program for a given state
Choices returns choices for a given state




State is a proof
term with holes
Completions offer tactics applicable
to the first hole




Subset of correct expressions \(\mathcal{E}\subseteq E\)
System is correct with respect to \(\mathcal{E}\) if and only if:

Subset of correct expressions \(\mathcal{E}\subseteq E\)
System is complete with respect to \(\mathcal{E}\) if and only if:





Data cube navigation, database aggregation, querying
~75 snippets with English summary
From before AI era!

// Most frequently fought
// enemeies of Dr Who
let topEnemies =
// Graph database query
drWho.Character.Doctor
.'ENEMY_OF'.'[any]'
.'APPEARED_IN'.'[any]'
.'explore_properties'.explore
// SQL-like aggregation
.'group data'.'by 1-name'
.'count distinct 2-name'.then
.'sort data'
.'by 2-name descending'.then
.paging.take(7).'get series'.
'with key 1-name'.'and value 2-name'
Specific patterns for each data source
[any] for graph query
then for aggregation
Names can get ugly and complex

The user wants to ... they selected ... next options are ... What should they choose next?


Useful but expensive and unreliable!
Not enough to "take back control"


Assigns probability
to given options
How often is the answer in top 3?
Auto-select if the system is certain?


We need more theories of programming systems
Program synthesis, data wrangling and more!
AI as more than just magical black box?
Tomas Petricek, Jan Liam Verter & Mikolas Fromm
