Corpus ID: 57885678

F# Data: Making structured data first-class citizens

  title={F\# Data: Making structured data first-class citizens},
  author={Tom{\'a}{\vs} Petř{\'i}{\vc}ek and Gustavo Guerra},
Most static type systems assume that a program runs in a closed world, but this is not the case. Modern applications interact with external services and often access data in structured formats such as XML, CSV and JSON. Static type systems do not understand such external data sources and only make accessing data more cumbersome. Should we just give up and leave the messy world of external data to dynamic typing and runtime checks? Of course, we should not give up! In this paper, we show how to… Expand
F# Data: Accessing structured data made easy
Programming may not be the new literacy, but it is finding its way into many areas of modern society. For example, making sense of large amounts of data that are increasingly made available throughExpand
Against the definition of types
“What is the definition of type?” Having a clear and precise answer to this question would avoid many misunderstandings and prevent meaningless discussions that arise from them. But having such clearExpand


Dependent type providers
This work shows that with dependent types it is possible to define a type provider mechanism that does not rely on code generation, and evaluates the practicality of this technique and explores future extensions. Expand
Ur: statically-typed metaprogramming with type-level record computation
Ad-hoc code generation is already in wide use in the popular Web application frameworks, and it is shown how that generation may be tamed using types, without forcing metaprogram authors to write proofs or forcing metAProgram users to write any fancy types. Expand
LINQ: reconciling object, relations and XML in the .NET framework
The .NET Language-Integrated Query (LINQ) framework, proposed for the next release of the .NET framework, approaches the problem of handling data from different data models by defining a pattern of general-purpose standard query operators for traversal, filter, and projection. Expand
Strongly-Typed Language Support for Internet- Scale Information Sources
The design and implementation of the type provider mechanism in F# 3.0 and its applications to typed programming with web ontologies, web-services, systems management information, database mappings, data markets, content management systems, economic data and hosted scripting are described. Expand
Gradual Typing for Objects
This paper develops a gradual type system for object-based languages, extending the Ob < : calculus of Abadi and Cardelli, and shows that gradual typing and subtyping are orthogonal and can be combined in a principled fashion. Expand
Gradual typing embedded securely in JavaScript
TS# , a gradual type system and source-to-source compiler for JavaScript, is presented and all the runtime invariants of the translation of TS# to JavaScript are proved, showing that translated programs are well-typed in JS#, a previously proposed dependently typed language for proving functional correctness of JavaScript programs. Expand
Typing Massive JSON Datasets
This paper sketches a typing algorithm that can be used to infer a succinct type from scratch for a collection of JSON objects, as well as to validate a dataset against a human-designed type and, if necessary, to adapt and improve this type. Expand
IDE Integrated RDF Exploration, Access and RDF-Based Code Typing with LITEQ
This demo presents a prototype of LITEQ that supports such a type mapping as well as autocompletion for NPQL queries. Expand
Making the future safe for the past: adding genericity to the Java programming language
GJ increases expressiveness and safety: code utilizing generic libraries is no longer buried under a plethora of casts, and the corresponding casts inserted by the translation are guaranteed to not fail. Expand
Unifying Tables, Objects and Documents
This paper proposes a number of type-system and language extensions to natively support relational and hierarchical data within a statically typed object-oriented setting. In our approach SQL tablesExpand