Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
Practical optional types for Clojure
Bonnaire-Sergeant A., Davies R., Tobin-Hochstadt S.  ESOP 2016 (Proceedings of the 25th European Symposium on Programming, Apr 2-8, 2016)68-94.2016.Type:Proceedings
Date Reviewed: Nov 22 2016

Clojure is an untyped dynamic Lisp-like language that targets the Java virtual machine (JVM). This paper discusses adding a type system to the language. It is based on real-world work, the Typed Clojure project and core.typed library, which are apparently based on ideas from the Racket language.

This paper will be of interest to anyone interested in building a type system for languages similar to Clojure. The authors focus on three aspects of the language: JVM and the challenge of Java nulls, multimethods, and heavy use of heterogeneous maps. Their discussion includes a nice blend of practical issues and theoretical underpinnings. The paper also contains an extensive references section, with 26 citations ranging from 1988 to 2015.

Typed Clojure is based on compile-time type checking. In the active Clojure world, it appears that this approach may be surpassed by run-time verification systems, most recently the clojure.spec library available in alpha versions of Clojure 1.9. I commend the authors of this paper for addressing the challenges faced by the current version of Typed Clojure and acknowledging these “competing” solutions. I look forward to ongoing development as the teams challenge each other to create ever-improving tools.

Reviewer:  David Goldfarb Review #: CR144937 (1702-0141)
Bookmark and Share
  Reviewer Selected
Featured Reviewer
 
 
Type Structure (F.3.3 ... )
 
 
Program Analysis (F.3.2 ... )
 
 
Language Constructs and Features (D.3.3 )
 
Would you recommend this review?
yes
no
Other reviews under "Type Structure": Date
Equational type logic
Manca V., Salibra A., Scollo G. (ed) Theoretical Computer Science 77(1-2): 131-159, 1990. Type: Article
Dec 1 1991
Data types over multiple-valued logics
Pigozzi D. Theoretical Computer Science 77(1-2): 161-194, 1990. Type: Article
Aug 1 1992
An algebraically specified language for data directed design
Wagner E. Theoretical Computer Science 77(1-2): 195-219, 1990. Type: Article
Jul 1 1991
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy