Bug#361008: RFP: factor -- compiler for the concatenative language Factor
Package: wnpp
Severity: wishlist
* Package name : factor
Version : 0.81
Upstream Author : Slava Pestov <slava@jedit.org>
* URL : http://factorcode.org/
* License : BSD
Programming Lang: C, Factor
Description : compiler for the concatenative language Factor
Factor is a dynamic programming language. The end goal is to have a high
performance, robust language for general-purpose client-side and server-side
application development.
.
Factor is a natural evolution of Forth, combining Forth's simplicity and
minimalism with a dynamically typed runtime supporting a Lisp-style object
model and meta-programming. Factor also builds upon ideas from Joy, K, and
Slate.
.
Language features:
- Highly minimalist, very consistent design. No layers upon layers of
indirection, no confusing corner-cases, no poorly-thought-out features.
- Postfix syntax with an extensible parser; values are passed on the stack.
- Higher-order programming allows code blocks to be treated as data
and used as parameters.
- A powerful and very generic collections library allows many
algorithms to be expressed in terms of bulk operations without
micro-management of elements, recursion, or loops.
- A very consistent object model based on generic predicate dispatch.
- Arithmetic operations that closely model mathematical concepts,
rather than just being a thin abstraction over underlying machine
arithmetic. All integer operations are done in arbitrary precision,
and exact fractions are supported. Complex numbers and
complex-valued elementary functions are integrated.
- Continuations, exception handling.
- Powerful and logical meta-programming facilities. Introspection,
code generation and extension of both syntax and semantics is very easy.
.
Implementation features:
- Live development environment allows code to be written and tested
without restarting your application. Any object in the system can
be inspected and modified, and any piece of code can be reloaded
and replaced on the fly.
- Optimizing compiler (x86, PowerPC, AMD64 backends).
- Generational garbage collection.
- Graphical user interface framework.
- Hypertext online help.
- Straightforward C library interface supporting callbacks.
- Bindings for OpenGL, FreeType, X11 and Cocoa.
- Static stack effect inference.
-- System Information:
Debian Release: testing/unstable
APT prefers unstable
APT policy: (500, 'unstable')
Architecture: i386 (i686)
Shell: /bin/sh linked to /bin/bash
Kernel: Linux 2.6.15.6
Locale: LANG=C, LC_CTYPE=fi_FI@euro (charmap=ISO-8859-15)
Reply to: