Lush Publisher's description
Lush is an object-oriented programming language designed for researchers, experimenters, and engineers interested in large-scale numerical and graphic applications.
Lush is an object-oriented programming language designed for researchers, experimenters, and engineers interested in large-scale numerical and graphic applications. Lush is designed to be used in situations where one would want to combine the flexibility of a high-level, weakly-typed interpreted language, with the efficiency of a strongly-typed, natively-compiled language, and with the easy integration of code written in C, C++, or other languages.
Lush is Free Software (under the GPL license) and runs on GNU/Linux, Solaris, Irix, and Windows under Cygwin.
Lush can be used advantageously for projects where one would otherwise use a combination of an interpreted language like Matlab, Python, Perl, S+, or even (gasp!) BASIC, and a compiled language like C. Lush brings the best of both worlds by wrapping three languages into one: (1) a weakly-typed, garbage-collected, dynamically scoped, interpreted language with a simple Lisp-like syntax, (2) a strongly-typed, lexically-scoped compiled language that uses the same Lisp-like syntax, and (3) the C language, which can be freely mixed with Lush code within a single program, even within a single function. It sounds complicated, but it is not. In fact, Lush is designed to be very simple to learn and easy to use.
If you do research and development in signal processing, image processing, machine learning, computer vision, bio-informatics, data mining, statistics, simulation, optimization, or artificial intelligence, and feel limited by Matlab and other existing tools, Lush is for you. If you want a simple environment to experiment with graphics, video, and sounds, Lush is for you.
Lush's main features includes:
* A very clean, simple, and easy to learn Lisp-like syntax.
* A compiler that produces very efficient C code and relies on the C compiler to produce efficient native code (no inefficient bytecode or virtual machine).
* An easy way to interface C functions and libraries, and a powerful dynamic linker/loader for object files or libraries (.o, .a and .so files) written in other compiled languages.
* The ability to freely mix Lisp and C in a single function.
* A powerful set of vector/matrix/tensor operations.
* A huge library of over 10,000 numerical routines, including full interfaces to GSL, LAPACK, and BLAS.
* A library of image and signal processing routines.
* An extensive set of graphic routines, including an object-oriented GUI toolkit, an interface to OpenGL/GLU/GLUT, and the OpenInventor scene rendering engine.
* An interface to the Simple Directmedia Layer (SDL) multimedia library, including a sprite class with pixel-accurate collision detection (perfect for 2D games).
* Sound and video grabbing (using ALSA and Video4Linux).
* Several libraries for machine learning, neural net, statistical estimation, Hidden Markov Models (gblearn2, Torch, HTK, SVM).
* libraries for computer vision (OpenCV, Intel's open source Vision Library), and 3D scene rendering (OpenInventor).
* bindings to the JavaVM API and to the Python C API.
* Lush is Free Software.
Pre-requisites: On Debian/Ubuntu, you must install the following packages: gcc, g++, libx11-dev, libinutils-dev, indent, libreadline5, libreadline5-dev libgsl0, libgsl0-dev. On other distros (Mandriva, SuSE, Fedora Core, etc), there are corresponding packages with slightly different names.
Optional pre-requisites: Optionally, you can also install the OpenGL development packages (freeglut3, freeglut3-dev, libgl1-mesa-dev), SDL development packages (libsdl1.2debian, libsdl1.2-dev), and BLAS/LAPACK (lapack3, lapack3-dev).
Then, compile Lush with:
You can run Lush directly by typing wherever-you-installed-lush/bin/lush, or by adding wherever-you-installed-lush/bin to your shell path.
However, you can also perform a system-wide install as follows:
[type your root password]
or (on Ubuntu):
sudo make install
[type your password]
This will install Lush and its libraries in /usr/local/share/lush and the executable in /usr/local/bin/lush with a link from /usr/bin/lush.
To start Lush, type "lush" at the prompt (and CTRL-D to exit).
Emacs users will prefer to run Lush within Emacs. To do so, add the following line to your .emacs file:
Then type "ALT-X lush" in Emacs to start Lush.
At the Lush prompt, type (helptool) to fire up the documentation browser.
NOTE:: on the old Mandrake 9.2, change the "-O3" to "-O2" in the lush/src/Makefile or Lush may crash (due to some bug in gcc).
System Requirements:No special requirements.
Program Release Status: New Release
Program Install Support: Install and Uninstall