| 
 
 
 |  What is  Lem   
          It is nothing more than a hobby. I do it simply for the fun, 
          which sometime leads me to implement strange things 
            
          Lem is an object oriented and modular extension programming 
          language (Lem stands for "Language d'Extension Modulaire" in 
          french). It has been designed to support 
            
             
              Scripting : It aims at providing functionalities similar to 
               Perl . 
               
              Application extension : like tcl or guile,  Lem  can be 
              embedded within an application. The hosting application can 
              invoke functions to execute piece of  Lem  code. 
              Alternatively, the application can register builtin 
              functions written in C or C++ which can be
              invoked from  Lem  applications.
               
              The creation of domain specific language (lemsh is such an 
              example) 
              Features  
           Lem  features : 
            
             
              It has a syntax inspired from C and lisp. 
               
              It provides operator overloading, in fact operator are 
              syntax sugar for the methods. 
               
              It provides object-orientation thorugh class inheritance. 
               
              It is at the moment strongly typed. In some sense the type 
              system is closer from  Java  than  Lisp . 
               
              It allows to create domain specific languages throught the 
              use of the following features : 
               
                 
                  One can include multiple lexers (The 
                  portion of code which translates the program input in a 
                  set of lexems (or token). ) 
                   
                  One can extend the parser to provide adapted syntax for 
                  specialized language. 
                 
              It supports modularity through module/importdirectives. 
               Lem  provides garbage collection. 
               
               Lem  program are compiled in native code or in a bytecode. In 
              particular, lemshis the only shell providing compiled 
              script. 
               Lem  is fast. 
              News  
            
            26/1/2003 : 0.6.3 releasedThis version :
  
                 
                  Fixes unary operator handling 
                   
                  Implements merge of history 
                   
                  includes many fixes 
                26/11/2003 : 0.6.2 releasedInitial public version
  How to help  
          They are many way : 
            
             
              Just try  Lemsh  and give me some feedback. 
               
              Provide some ideas (use the mailing list). 
               
              Extending it (for instance pick an item in the 
              To do list 
               
              ... 
              Status  
          I use  Lemsh  in my day to day life without too much trouble. 
          However it has not all the bells and whistles provided by shells 
          like  Bash  or  Zsh  (especially in term of completion and line 
          edition). 
          
          Of course, ultimatly, I 'd like to provide something of a 
          similar level. Moreover, it is in development so it is not as 
          reliable as a Bash, Zsh .. 
          History  
          A few years ago, I had to write a test suite to test a 
          distributed 
          system. This task, consisted of writing code mixing Shell,  Perl  
          script and C program. 
          
          I had to learn many languages. This langage sharing common 
          structure (most of langage have a "while" loop.) but having 
          different syntaxes. Finally, I would have been very happy a 
          language which could replace C,  Bash  and  Perl ; so, I thought 
          "let's try" and  Lem  was born... 
         |