Venue: NeurIPS 2019 Workshop Program_Transformations

Reviews:

final_score: rating: 7: Good paper, accept
review_content: I like the type analysis, although of course ideally I’d like to see it in a non-staged-computation system.

The name sort of implies that the system does Reverse AD, to efficiently calculate gradients (“∇”) of high-dimensional systems. This isn’t clear from the description, which seems consistent with a system that only implements forward AD, and uses it to calculate gradients with O(n) overhead.

- The guts of Stalin∇ are described in Siskind and Pearlmutter (2008, Purdue TR-ECE-08-01, "Using Polyvariant Union-Free Flow Analysis to Compile a Higher-Order Functional-Programming Language with a First-Class Derivative Operator to Efficient {Fortran}-like Code", http://docs.lib.purdue.edu/ecetr/367). Also, Stalin∇ is in the Scheme family, not Haskell.

- I hate the use of the term “tensor” for arrays, but won’t belabour the point.

I think this probably falls in the poster category, because of its scope etc.

QUESTION FOR AUTHOR: Does Kotlin∇ support Reverse AD?
review_title: Interesting implementation

final_score: rating: 6: Marginally above acceptance threshold
review_content: This paper discusses a set of reasonable ideas and provides an interesting prototype demonstrating how the type system can be made more useful for numerical computing.  It seems like a bit of a mishmash of dimension types and autodiff, but the background is and related work discussion is thorough.

What's really missing is a bit more discussion of the limitations of this approach.

Questions:
 - what is meant by the "shape" of a return value?  For instance, what about lists and dicts of arrays?
 - I don't understand what is meant by "Kotlin∇ straddles the boundary between define-and-run and define-by-run"
 - In fig 6, how are the infinite precision methods producing numerical error?
review_title: Decent ideas but not fleshed out

Meta-review: The reviewers agreed that this is a good contribution to the workshop but that its scope makes it more appropriate for a poster presentation.
Decision: Accept (Poster)