Embedded ML
Embedded ML
This SourceForge project allows functional programmers to compile functional programs that can be run on small “hobbyist-class” machines. The compiler available here is fully operational; it has been used to compile several fairly large applications, including
The UMIX environment that was a critical component in the 2006 ICFP programming contest. The UMIX environment is several tens of thousands of lines of ML.
Power monitoring software within the Scarab rover developed at the Carnegie Mellon University Field Robotics Center.
This compiler was initially developed by the Principles of Programming Group at Carnegie Mellon University by the folks who brought you the 2006 ICFP Programming Contest. Two new backend code generators for C and Forth allow the compiler to take on a new role for functional programmers wanting to target small machines.
If you’re interested in using the compiler, follow these instructions to obtain and compile it. For now, the runtime required by the compiler only supports 32-bit capable target architectures. Building the compiler is hopefully not terribly painful, but it does require that you have the MLton SML compiler installed, as well as Subversion, and the GNU C Compiler (gcc).
It is easy to compile functional programs for small hobbyist class machines as long as the cross compilation tools are available. For example, compiling an application to run on the Gumstix requires nothing more than an additional command line argument to the compiler: “-gcctarget arm-angstrom-linux-gnueabi”.
Subscribe to one (or both) of the mailing lists if you have further interest, questions, or need help!