anyone know 'bout LAKOTA? 
Author Message
 anyone know 'bout LAKOTA?

I'm hunting for a simple, fast language that's easy to embed in C.
I've seen a few references to LAKOTA, which sounds like a
multithreaded interpreter.  But I can't find more than a summary of
it, and the author is at a site my system doesn't recognize: Richard

Is anyone out there using this one?  Anyone at least know which way to
turn to get more info on it, or ideally, ftp it?

Thanks for any help!

 "Fainali, xen, aafte sam 20 iers ov orxogrefkl riform, wi wud hev a lojikl,
   kohirnt speling in ius xrewawt xe Ingliy-spiking werld."  -- Mark Twain
         Placement of smilies is left as an exercise for the reader.

Fri, 28 Feb 1997 23:14:40 GMT  
 anyone know 'bout LAKOTA?

>I'm hunting for a simple, fast language that's easy to embed in C.
>I've seen a few references to LAKOTA, which sounds like a
>multithreaded interpreter.  But I can't find more than a summary of
>it, and the author is at a site my system doesn't recognize: Richard

>Is anyone out there using this one?  Anyone at least know which way to
>turn to get more info on it, or ideally, ftp it?

contacting me.  The only restrictions are (a) you will need to sign
a license agreement and (b) it not be distributed.

As far as multi-threading is concerned, here is the general info:
Lakota is implemented as an embeddable kernel.  Calls may be made into
the kernel to create and resume execution frames (threads).  Extensions
(user defined commands and functions) can be added to individual threads.
Each thread is independent; however they all run under the same OS process,
i.e. as far as C is concerned they are function calls.  You can run
synchronous and asynchronous sub-processes but they are not Lakota sub threads.
Each execution frame is a separate data space; in effect each has its own
copy of the interpreter (code is actually shared, of course).

The language is pretty simple, syntax wise, and is reasonably fast.
The following is a canned information file:


Language name:          Lakota
Description:            General purpose interpreted scripting language
Implemented in:         C
Platforms:              DOS,VMS,UNIX
Usage choices:          script files, interactive shell, embedded scripts
Special characters:     Space, tab, newline, parentheses, braces
Primitive Data Types:   Dynamic indexed list of strings
Context types:          Boolean, fixed point numbers
Statement delimiter:    Newline
Block Delimiting:       Indentation
Statement syntax:       [indentation] tokens [terminating string]
Scope type:             Lexical with module globals
Namespaces:             3 level with threads, modules, and procedures
Text patterns:          Equivalent of UNIX wildcards (*,?,[])
Comment style:          Initial #, # as comment function
Special char escapes:   Predefined variables containing special characters
Program style:          Looks like structured pseudo code

Case sensitivity:       Case sensitive

Flow control constructs:
        infinite loop
        loop indexed on list
        loop indexed on integer sequence
        while loop
        select/case: [cases are lists of text patterns]

        predefined [no user defined functions]
        delimited by braces {}
        prefix syntax (infix mode available)
        Function syntax same as commands
        function usable as commands

OS File system operations:
        access to file and directory attributes
        file and directory creation and deletion
        pattern search on file(s) [grep equivalent]
        direct execution of OS executable files

String manipulation and parsing:
        substring matching and splitting
        tokenize by selected characters
        substring and character replacement
        concatenation by abutment
        cut strings at specified columns

List manipulation:
        list append, prepend
        split list into sublists on index
        split list into sublists on pattern
        intersection, union, join
        eliminate duplicates, non-duplicates

        fixed point, unlimited length before and after decimal point

        Access to procedure text
        Debug commands (trace/timing/controlled error printouts)
        Dynamic eval
        Execute strings and files
        Program data available (current procedures, variables)
        Dynamic creation and deletion of program components
        All statements set a return code
        Procedures return lists
        Variadic calling sequences
        Strong name space isolation
        Variable value indicated by parentheses -- nesting permitted
        Recursive calls

--------------- Listing of commands and functions --------------

#                     *                     +                    
-                     /                     <                    
<=                    =?                    >                    

>=                    all-arguments         all-but-first        

all-but-last          all-of                and                  
and-if                append-to-list        argument              
argument-text         assign                begin-list            
begin-string          capture-from-caller   case                  
chars                 chop                  close-file            
commands              content?              count-args            
create-directory      create-file           create-thread        
cycle                 date                  decrement            
defined?              delete-directory      delete-file          
delete-procedure      delete-thread         delete-variable      
directory?            do                    else                  
environment           equal-any-of?         equal?                
error-file            error-file-is         escape                
eval                  executable?           execute-file          
execute-string        export                fail-returning        
fields                file-checksum         file-owner            
file-permissions      file-read-loop        file?                
first                 first-arg             for                  
function?             functions             global                
global?               history               host                  
if                    import-from           increment            
infix                 instance-deletion     intersection          
invocation-stack      known?                last                  
last-accessed         last-arg              last-changed          
left-part-of          length-of-list        length-of-string      
lines-read-from       list-contains?        list-difference      
list-dir              list-index            local                
loop                  lowercase             match                
match-any-of?         match?                module                
module?               modules               next                  
no-of-arguments       non-uniq              not                  
not-defined?          not-equal?            number?              
open-file             open-files            or                    
or-if                 output-file           output-file-is        
output-of             pad-left              pad-right            
prepend-to-list       previous              print                
print-error           printable?            procedure            
procedure?            procedures            process-id            
quit                  quit-returning        random                
raw-file-checksum     raw-print             read                  
read-file             readable?             remove-from-list      
remove-instance       rename-file           replace              
replicate             return                reverse-list          
reverse-string        right-part-of         search-file          
seed-random-with      select                separate              
sequence              set-directory-to      set-error-level      
set-file-permissions  set-list              set-list-index-to    
set-string            size-of-file          sleep                
sort                  split                 start-child          
string                string-checksum       substring            
suspend-returning     symbolic-link         symbolic-link?        
time-procedure        timing-off            timing-on            
tokenize              tokens                trace-calls          
trace-list            trace-off             trace-on              
trace-procedure       trace-vars            translate            
umask                 uniq                  uppercase            
user-name             while                 writable?            
This sentence contains three a's, one b, three c's, two d's, thirty five e's,
six f's, two g's, seven h's, eleven i's, one j, one k, two l's, one m,
twenty two n's, fif{*filter*} o's, one p, one q, five r's, twenty six s's,
twenty one t's, one u, seven v's, eight w's, three x's, and one z.

Thu, 06 Mar 1997 04:04:33 GMT  
 [ 2 post ] 

 Relevant Pages 

1. Anyone know how to link Clipper .DBF's to an Access 8.0 database

2. Does anyone have or know URL of Intel's 486 manual

3. Anyone who knows ISA'S OSCARS application

4. anyone know what's obsolete code now?

5. Anyone Know What's Wrong?

6. Anyone know what's wrong with this?

7. anyone know what's wrong with this???

8. anyone know what's wrong with this?

9. Anyone know tk4.0's enhancement list ?

10. Question 'bout Collections

11. A question 'bout prices....

12. someone help 'bout modem communication


Powered by phpBB® Forum Software