A Calculus with partially dynamic records for typeful manipulation of json objects

Atsushi Ohori, Katsuhiro Ueno, Tomohiro Sasaki, Daisuke Kikuchi

研究成果: Conference contribution

抄録

This paper investigates language constructs for high-level and type-safe manipulation of JSON objects in a typed functional language. A major obstacle in representing JSON in a static type system is their heterogeneous nature: in most practical JSON APIs, a JSON array is a heterogeneous list consisting of, for example, objects having common fields and possibly some optional fields. This paper presents a typed calculus that reconciles static typing constraints and heterogeneous JSON arrays based on the idea of partially dynamic records originally proposed and sketched by Buneman and Ohori for complex database object manipulation. Partially dynamic records are dynamically typed records, but some parts of their structures are statically known. This feature enables us to represent JSON objects as typed data structures. The proposed calculus smoothly extends with ML-style pattern matching and record polymorphism. These results yield a typed functional language where the programmer can directly import JSON data as terms having static types, and can manipulate them with the full benefits of static polymorphic type-checking. The proposed calculus has been embodied in SML#, an extension of Standard ML with record polymorphism and other practically useful features. This paper also reports on the details of the implementation and demonstrates its feasibility through examples using actual Web APIs. The SML# version 3.1.0 compiler includes JSON support presented in this paper and is available from Tohoku University as open-source software under a BSD-style license.

本文言語English
ホスト出版物のタイトル30th European Conference on Object-Oriented Programming, ECOOP 2016
編集者Benjamin S. Lerner, Shriram Krishnamurthi
出版社Schloss Dagstuhl- Leibniz-Zentrum fur Informatik GmbH, Dagstuhl Publishing
ページ181-1825
ページ数1645
ISBN(電子版)9783959770149
DOI
出版ステータスPublished - 2016 7 1
イベント30th European Conference on Object-Oriented Programming, ECOOP 2016 - Rome, Italy
継続期間: 2016 7 182016 7 22

出版物シリーズ

名前Leibniz International Proceedings in Informatics, LIPIcs
56
ISSN(印刷版)1868-8969

Other

Other30th European Conference on Object-Oriented Programming, ECOOP 2016
国/地域Italy
CityRome
Period16/7/1816/7/22

ASJC Scopus subject areas

  • ソフトウェア

フィンガープリント

「A Calculus with partially dynamic records for typeful manipulation of json objects」の研究トピックを掘り下げます。これらがまとまってユニークなフィンガープリントを構成します。

引用スタイル