ATS and Session Types

I have been using the ATS-to-Erlang compiler (atscc2erl) for some time.

Here is an implementation of reversed ftp (rftp) server/client:

https://github.com/githwxi/ATS-Postiats-contrib/tree/master/contrib/libatscc/libatscc2erl/Session/TEST/myrftp

By using session types, you can formally specify a communication protocol
and then make sure both server
and client implement the same protocol. This is a HUGE help in distributed
programming as miscommunication
between server and client can be VERY difficult to debug.

BTW, the reversed FTP allows you to put a client behind a firewall and then
use the server to access client’s files.
If you know Erlang, then the Makefile should be able to tell you how to try
the code.

Cheers!

Cool! Might be worth posting that to the erlang lists!

Yes, some day.

Right now, it is too primitive. I want to at least implement some
meta-programming
support for allowing automatic generation of code needed to handle a
formally specified
protocol (e.g., the code in myrftp_protocol.dats).

Cool! Might be worth posting that to the erlang lists!