Over a million developers have joined DZone.

Quick Update on the Visi Scala Port

DZone's Guide to

Quick Update on the Visi Scala Port

· Java Zone ·
Free Resource

Java-based (JDBC) data connectivity to SaaS, NoSQL, and Big Data. Download Now.

The basic Visi parser is ported from Haskell to Scala.

I used the Parboiled parser because it has much better performance and location capturing capabilities than does Scala's built in parser combinators.

The basic type checker is working and most of the test cases from Haskell are passing. I haven't ported all the tests, but the ones I have ported are working.

In addition to having a running typer, Visi also calculates the dependency graph for each node in the typed lambda calculus. This will come in handy.

I took a brief detour through Clojure and, while I'd love the opportunity to write in Clojure, my brain works best in Scala because I know most of the potholes and craters in Scala.

What's next?

Rather than implementing the Visi runtime in Scala (like I did in Haskell), I'm going to compile Visi code to JavaScript so that it can be executed on any platform that can run JavaScript (the browser, the JVM, iOS, Node, etc.)

So, over the next few days, I'll be writing a compiler that will compile the typed lambda calculus to JavaScript and emit the sources and sinks as JSON objects. But the cool thing is that you'll also get a JavaScript function to call when each of the sources gets triggers such that the function will return a list of updated values for all of the recomputed sinks.


Connect any Java based application to your SaaS data.  Over 100+ Java-based data source connectors.


Published at DZone with permission of

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}