software.wikisort.org - Linguaggio

Search / Calendar

Sather è un linguaggio di programmazione orientato agli oggetti. Nacque all'incirca nel 1990 all'International Computer Science Institute dell'Università della California, sviluppato da un gruppo internazionale guidato da Steve Omohundro. Supporta la garbage collection e la programmazione generica dei sottotipi. In origine si basava su Eiffel ma ora include anche caratteristiche di programmazione funzionale.

Sather
linguaggio di programmazione
AutoreSteve Omohundro
Data di origine1990
Ultima versione1.2.3 (7 luglio 2007)
Paradigmiorientato agli oggetti, funzionale
Tipizzazionestatica, forte
Implementazione di riferimento
LicenzaGNU GPL v3
Sito webwww.gnu.org/software/sather/

Hello World


class HELLO_WORLD is
 main is 
  #OUT+"Hello World\n"; 
 end; 
end;

Alcuni commenti sul codice:


Esempio di iteratori


Questo programma stampa i numeri da 1 a 10.

 class MAIN is
   main is
     loop
      i := 1.upto!(10);
      #OUT + i + "\n";
     end;
   end;
 end;

loop ... end è il costrutto preferito per cicli, anche se while e repeat-until sono disponibili. Nel costrutto possono essere usati uno o più iteratori, i cui nomi finiscono sempre con un punto esclamativo. (Questa convenzione è controllata dal compilatore del linguaggio.) upto! è un metodo della classe INT che accetta un argomento once, un argomento il cui valore non cambierà all'interno dell'iteratore. upto! potrebbe essere implementato col seguente codice.

  upto!(once m:INT):SAME is
    i: INT := self; -- inizializza i al valore di self, 
                    -- che è l'intero per il quale il metodo è invocato.
    loop
      if i>m then 
        quit;  -- Esci dal ciclo quando i è maggiore di m.
      end;
      yield i; -- Altrimenti use i come valore di ritorno e continua il ciclo.
      i := i + 1; -- Incrementa il suo valore di 1.
    end;
  end;

L'informazione sul tipo di una variabile è indicata usando la sintassi post-fissa variable:CLASS. Il tipo della variabile può essere spesso dedotto ed è quindi una informazione opzionale, come in anInteger::=1. SAME è una pseudo-classe che si riferisce alla classe attuale.


Collegamenti esterni





Текст в блоке "Читать" взят с сайта "Википедия" и доступен по лицензии Creative Commons Attribution-ShareAlike; в отдельных случаях могут действовать дополнительные условия.

Другой контент может иметь иную лицензию. Перед использованием материалов сайта WikiSort.org внимательно изучите правила лицензирования конкретных элементов наполнения сайта.

2019-2025
WikiSort.org - проект по пересортировке и дополнению контента Википедии