Version 1.0.6 of the Felix programming language has now been released. You can obtain it as a Sourceforge file release or directly from the homepage:
Python 1.5.2 and Ocaml 3.07 or later are required to build it.
So far the package has been built on Linux, OSX, and Windows under Cygwin: help just checking it builds on other platforms is urgently needed.
What is it? Felix is a new Algol-like application programming language with a purely functional subsystem. It comes with a scripting engine which allows it to be used easily like Python or Perl, but it generates efficient machine binaries via a C++ compiler to provide high performance.
Unlike other scripting languages, Felix ihas a full scale ML-style static type system so you can be confident your script is likely to run if it passes the type checker. Like Java, Felix uses a garbage collector for easy memory management. Unlike Java, Felix already has generics: it currently supports first order compile time parametric polymorphism.
Felix provides both source and binary compatibility with C and C++. You can use your existing C++ classes directly as Felix datatypes via binding constructions. Unlike other systems, Felix provides 'seamless binding': there is no complex API or type conversions to manage, Felix uses the C/C++ object model directly.
One of the most interesting features of the system is builtin support for control inversion. What this means is that you can write code in a thread-like style, reading input data, and the compiler mechanically translates this into event driven code. By supplying a custom driver, you can embed Felix in a wide class of application frameworks, including GUIs, games, web servers, and telco applications, allowing millions of threads of control to be cooperatively multi-tasked with constant time context switching.
The Felix project now needs contributors in many areas, especially some brave users. If you're a programmer, and you have thoughts about what an ideal, Open Source, programming language should be like, your feedback will be valuable.
Log in to post a comment.