Tomas Petricek
University of Kent and fsharpWorks
tomas@tomasp.net | @tomaspetricek
Data journalism
Making facts great again!
Building more open, transparent and engaging data visualization
Can it be written by a non-expert?
Can the result be reproduced?
Can the reader check the logic?
Can the reader explore variations?
Capturing the essence of The Gamma
\[\begin{array}{rlcl} \textit{(programs)}\quad& p &::=& c_1; \ldots; c_n\\ \textit{(commands)}\quad& c &::=& \textbf{let}~x = t ~|~ t\\ \textit{(expressions)}\quad& e &::=& t ~|~ \lambda x\rightarrow e\\ \textit{(terms)}\quad& t &::=& o ~|~ x ~|~ t.m(e, \ldots, e)\\ \end{array}\]
What makes the language funny?
Two-phase process
Graph construction
Type providers generate types from data
Extensible to allow new kinds of types
Dependent types can depend on values
Generics for importing JS libraries
Interface with object members & type equality
1: 2: 3: |
|
Computes type from types & values of arguments
1: 2: 3: 4: 5: |
|
Generics / polymorphism
New ObjectType implementation
Generic methods do resolution
Type providers
Methods inspect data source
Generate simple object types
"Dependent" types
Method argument marked as static
Type function gets value from the system
Incremental type checking
Fancy extensible types
Funny languages are fun
What is the use case?
What assumptions still hold?
Live and extensible
Compilers must support editors
Language design based on uses?
Papers with more info
Foundations of a live data exploration environment
Data exploration through dot-driven development
Tomas Petricek, U. of Kent & fsharpWorks
tomas@tomasp.net | @tomaspetricek