TUTORIAL

THE SATELLITE PROGRAMMING LANGUAGE TUTORIAL:

EVERYTHING IN SATELLITE BEGINS WITH THE WORD “satellite” LIKE THIS:

// files that have "main" must include satellite
satellite.include(satellite)

// a function is called a capsule in satellite
satellite.capsule satellite.main(satellite.container.list<satellite.variable.string> arguments)
{
  // all satellite programs must have one "satellite.main" as the entry point, and arguments becomes the current directory arguments[0]
  satellite.console.display(arguments[0])
  
  // to do something in satellite, like declare a number, you need to say "satellite.variable.number"
  
  satellite.variable.number my_int = 0
  
  // to declare a string:
  satellite.variable.string my_str = "some str"
  
  // to use a statement:
  
  satellite.variable.number display_count = 0
  
  satellite.variable.number display_target = 99
  
  satellite.statement.while(display_count < display_target)
  {
    // you must include brackets around capsules, and statements...
    
    satellite.console.display("this message has been displayed " + display_count + " times.")
    
    // to run another capsule, you start a new thread:
    
    satellite.variable.thread thread_name = satellite.thread.new(capsule_name(arguments))
    
    // you could argue that satellite reserves the .start() word from threads you declare; so not every single word is reservered in SATELLITE
    thread_name.start()
    
    // increase display_count from before...    
    display_count = display_count + 1
  }
  
  // random numbers
  satellite.variable.number my_random_number = satellite.random.ultra(99)
  
  // display the random number
  satellite.console.display(my_random_number) // 99 digits ultra secure, takes 2000ms

  satellite.console.display("hello, satellite!")
  
  // satellite.main must return satellite, and you must satellite.include(satellite)
  satellite.return(satellite)
}

see https://github.com/satellitemadness1/satellite/ in the example folder, it has a full_test.satl if you don’t find it on this website, it might be on github.