[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#312734: ITP: felix -- a high performance statically typed scripting language



Package: wnpp
Severity: wishlist

* Package Name   : felix
  Version        : 1.1.0
  Upstream Author: john skaller<skaller@users.sourceforge.net>
* URL            : http://felix.sourceforge.net
* License        : BSD
* Description    : high performance statically typed scripting language

Felix is a new high performance language with
support for functional programming, ultra-lightweight
high performance user space threads, garbage
collection, and C/C++ interoperability.

Felix provides a scripting harness with auto-compilation 
in the style of systems such as Python. Underneath, however,
the translator generates C++ which is compiled into binary
executable code, by default a shared library which is run by a 
driver. 

There is a strong functional subsystem which provides
first class lexically scoped functions, pattern matching,
variants, and other common features of ML family languages,
with a syntax adapted to be slightly more familiar to
the target audience, C and C++ programmers. 

Felix also provides ultra high performance user space
threading (cooperative multi-tasking). The system
translates blocking message reads into event driven 
callbacks to achieve this. This is basically
a procedural continuation passing model, more
precisely it uses the method of resumptions.

The original inspiration for this work was a system
for managing telephone calls in an embedded environment
requiring sub-second response times, call creation rate
of around 600 threads/second, and supporting several
hundred thousand concurrent threads --- a continuously
running system also requiring live upgrades.

Other special features include builtin linear
regular expression matching in the style of lex tools,
and a builtin GLR (generalised LR) parsing engine
based on Elkhound, which is capable of parsing any
context free language.

The system also features a rich syntax for binding
to a C/C++ code, and, by both adopting the C/C++
object model and supporting source level interleaving,
assures a smooth migration to Felix in a manner
similar to the path from C to C++.

-- 
John Skaller, skaller at users.sf.net
PO Box 401 Glebe, NSW 2037, Australia Ph:61-2-96600850 
Download Felix here: http://felix.sf.net




Reply to: