Mumps, for those not familiar with it, is a database scripting
language developed in late 60's. It supported an hierarchical database
and was/is widely used in medical applications.

Our Linux/Cygwin implementation of Mumps is open source/GPL and 
available at:

http://www.cs.uni.edu/~okane/source/MUMPS-MDH/

see also:

http://www.cs.uni.edu/~okane/

and:

http://www.amazon.com/Mumps-II-Programming-Language/dp/143824617X/ref=sr_1_5?ie=UTF8&s=books&qid=1216904848&sr=1-5

This version of Mumps is available as both an interpreter an compiler.
The interpreter is a scripting shell while the compiler translates
Mumps to C++ for compilation.

Our new version permits storage of the Mumps global (hierarchical)
arrays in a PostgreSQL database server.

In this new version, global array data bases built by Mumps programs
can also be retrieved, updated and manipulated by SQL commands. A
short example follows:

A small Mumps program to create a tiny data base:

#!/usr/bin/mumps

      sql/f

      set ^lab(1111,"hct",$zd1,44)=""
      set ^lab(2222,"hct",$zd1,45)=""
      set ^lab(3333,"hct",$zd1,46)=""
      set ^lab(4444,"hct",$zd1,47)=""
      set ^lab(5555,"hct",$zd1,48)=""

      set ^bp(1111,$zd1,128,70)=""
      set ^bp(2222,$zd1,127,71)=""
      set ^bp(3333,$zd1,126,72)=""
      set ^bp(4444,$zd1,125,73)=""
      set ^bp(5555,$zd1,124,74)=""

      set ^prob(1111,$zd1,"123.45")=""
      set ^prob(2222,$zd1,"223.45")=""
      set ^prob(3333,$zd1,"323.45")=""
      set ^prob(4444,$zd1,"423.45")=""
      set ^prob(5555,$zd1,"523.45")=""

The first line (#!/usr/bin/mumps) starts the Mumps interpreter under
Linux. The command: sql/f clears the SQL server Mumps data base. $zd1
is a builtin variable in our system that gives the Linux system time
(number of seconds since Jan 1, 1970). The ^... figures are global
arrays (name followed by some number of indices). Each index describes
a successive path through a tree.

Because the Mumps globals reside in relational tables, they are also
accessible to SQL queries.

Having run the above, we accessed it using the simple pgsql program
which is part of the PostgreSQL distro (note: views can be created and
column names aliased in SQL so the column headings A1, A2, ... can be
altered): (I hope this formats okay)

[EMAIL PROTECTED]:~/mumps/demos$ psql -d mumps

Welcome to psql 8.3.1, the PostgreSQL interactive terminal.

Type:  copyright for distribution terms
       h for help with SQL commands
       ? for help with psql commands
       g or terminate with semicolon to execute query
       q to quit

mumps=# select * from mumps;

 gbl  |  a1  |       a2   |   a3       | a4 | a5 | a6 | a7 | a8   | a9
| a10     
------+------+------------+------------+----+----+----+----+----+----+-----+-----
 lab  | 1111 | hct        | 1213390964 | 44 |    |    |    |      |  
 |         |
 lab  | 2222 | hct        | 1213390964 | 45 |    |    |    |      |  
 |         |
 lab  | 3333 | hct        | 1213390964 | 46 |    |    |    |      |  
 |         |
 lab  | 4444 | hct        | 1213390964 | 47 |    |    |    |      |  
 |         |
 lab  | 5555 | hct        | 1213390964 | 48 |    |    |    |      |  
 |         |
 bp   | 1111 | 1213390964 | 128        | 70 |    |    |    |      |  
 |         |
 bp   | 2222 | 1213390964 | 127        | 71 |    |    |    |      |  
 |         |
 bp   | 3333 | 1213390964 | 126        | 72 |    |    |    |      |  
 |         |
 bp   | 4444 | 1213390964 | 125        | 73 |    |    |    |      |  
 |         |
 bp   | 5555 | 1213390964 | 124        | 74 |    |    |    |      |  
 |         |
 prob | 1111 | 1213390964 | 123.45     |    |    |    |    |      |  
 |         |
 prob | 2222 | 1213390964 | 223.45     |    |    |    |    |      |  
 |         |
 prob | 3333 | 1213390964 | 323.45     |    |    |    |    |      |  
 |         |
 prob | 4444 | 1213390964 | 423.45     |    |    |    |    |      |  
 |         |
 prob | 5555 | 1213390964 | 523.45     |    |    |    |    |      |  
 |         |
(15 rows)


mumps=# select a1 from mumps where gbl = 'lab' and a2 = 'hct' and a4 >
'45';

  a1
------
 3333
 4444
 5555
(3 rows)

----------------------------------------------------------------------------------------------------

Overall performance is about 0.005 seconds per global array insert on
a four year old desktop PC running the current version of Ubuntu. The
test consisted of the insertion and retrieval of 100,000 Mumps
randomly generated Mumps globals.

Mumps can access other relational tables if appropriate views are
first constructed. 

The Mumps command 'sql' permits any SQL or PostgreSQL command to be
passed to and processed by the backend. This command is similar to our
shell and html commands in that Mumps variables and expressions can be
embedded into the SQL command.

Full documentation is under development but for the time being, see
the file POSTGRESS_README in the distribution.

This package works with Linux and Cygwin and is compatible with the
Apache web server for active server pages.

The Mumps interpreter and compiler are written in C/C++. The Mumps
compiler translates Mumps to C++.

Comments and suggestions welcome.


------------------------------------

To unsubscribe from this list, please email [EMAIL PROTECTED] & you will be 
removed.Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/LINUX_Newbies/

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/LINUX_Newbies/join
    (Yahoo! ID required)

<*> To change settings via email:
    mailto:[EMAIL PROTECTED] 
    mailto:[EMAIL PROTECTED]

<*> To unsubscribe from this group, send an email to:
    [EMAIL PROTECTED]

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/

Reply via email to