Welcome to the SALSA Programming Language!

SALSA: Simple Actor Language System and Applications is a prototype programming language, dialect of Java, to develop concurrent active object (actor) systems for distributed environments, like the World Wide Computer (WWC).

A preprocessor moves SALSA source code into Java source code. SALSA-generated code uses an actor library and run-time support developed specially for execution of SALSA programs on top of the WWC.


Installation and Testing Instructions

    The current SALSA version is 0.3.2.  You must be running the JDK 1.1.6 or above.
     
  1. Download the SALSA code and unpack it in a local directory:

  2. -->  cd $Salsa
    -->  gunzip Salsa0.x.x.tar.gz
    -->  tar -xvf Salsa0.x.x.tar
     

  3. Make sure your CLASSPATH environment variable includes the directories where Java can find the compiler, the test examples, and the run-time support:


  4. -->  setenv CLASSPATH "($CLASSPATH):$Salsa/src/salsac:$Salsa/src/salsac/examples:$Salsa/src"

    where $Salsa is the directory where you unpacked the code.

  5. Compile the SALSA compiler and create a "salsac" alias: 

    -->  cd $Salsa/src/salsac/ 
    -->  javac SalsaCompiler 
    -->  alias salsac = "java SalsaCompiler"


  6. Go to the examples directory: 

    --> cd $Salsa/src/salsac/examples

  7. Compile the examples: 

    --> compiletests 
    --> compiletests2


  8. Run them: 

    --> runtests 
    --> runtests2



  9. You can now edit these examples, or create your own!

World Wide Computer Support

    To test universal actor naming, migration and remote communication between two machines A and B:
     
  1. SALSA 0.3.2 or above, must be installed on both machines.

  2. Make sure you use full DNS names for "A" and "B" below.

  3. Compile the WWC code in both machines:

    (A&B) --> cd $Salsa/src/wwc 
    (A&B) --> javac */*java */*/*java


  4. Select one machine to run the Universal Actor Name server:

    A --> ./runNameServer

  5. Run the WWC Stages at both machines:

    A --> ./runStage 
    B --> ./runStage


  6. Start the migrating agent:

    (A|B) --> java migration.Agent uan://A:3030/agent rmsp://A:4040/agent 

  7. Test remote communication using the Universal Actor Location (UAL):

    (A|B) --> java migration.RemoteSend rmsp://A:4040/agent 

  8. Test migration:  First, edit "$Salsa/src/salsac/examples/Migrate.salsa": change UAN there for your Agent's name:  "uan://A:3030/agent", Second, recompile it. Third, run the migration program:

    (A|B) --> java migration.Migrate rmsp://B:4040/agent

  9. If you have any questions, please send us email at salsa@cs.uiuc.edu.


    Open Systems Laboratory

    Last modified: Wed Mar 8 19:20:48 MET 2000