Oxygene (linguaggio)

Da Wikipedia, l'enciclopedia libera.
Template-info.svg

Oxygene (noto in precedenza come Chrome) è un linguaggio di programmazione sviluppato da RemObjects Software per la Common Language Infrastructure (CLI). Oxygene è basato sul linguaggio Object Pascal. Rispetto a Delphi.NET (ora deprecato), Oxygene non garantisce piena compatibilità all'indietro, ma è progettato per essere pienamente integrato con la piattaforma .NET, supportando tutte le caratteristiche e le tecnologie fornite dal runtime .NET.

A partire dal 2008, RemObjects Software ha fornito in licenza il suo compilatore e la tecnologia IDE a Embarcadero per poterli usare nel prodotto Delphi Prism.[1] Delphi Prism offre piena integrazione in Visual Studio 2005/2008.

Il linguaggio Oxygene[modifica | modifica sorgente]

Oxygene trae le sue origini da Object Pascal in generale e da Delphi in particolare, ma è stato progettato per riflettere le linee guida .NET. Non tutte le caratteristiche di Object Pascal e Delphi, quindi, sono supportate da Oxygene. Oxygene è un linguaggio di programmazione orientato agli oggetti. Inoltre fornisce supporto al livello del linguaggio per la programmazione parallela. L'obiettivo è utilizzare tutti i processori di un computer al fine di migliorare le prestazioni di un programma. Per raggiungere tale obiettivo, i task devono essere distribuiti su diversi thread.

Overloading degli operatori[modifica | modifica sorgente]

In Oxygene gli operatori possono essere sovraccaricati usando la sintassi class operator:

class operator implicit(i : Integer) : MyClass;

Struttura di un programma[modifica | modifica sorgente]

Oxygene non utilizza le "Units" (unità) come fa invece Delphi, ma utilizza i namespace .NET per organizzare e raggruppare i tipi. Un namespace può estendersi attraverso molteplici file, ma un singolo file può contenere esclusivamente tipi di uno specifico namespace. Il namespace è definito in cima a ciascun file con la seguente sintassi:

namespace ConsoleApplication1;

I file Oxygene distinguono una sezione interfaccia e una di implementazione, una struttura mutuata da Delphi. La sezione interfaccia segue la dichiarazione del namespace e contiene le clausole uses, che in Oxygene importano tipi da altri namespace:

uses 
  System.Linq;

I namespace importati devono trovarsi nello stesso progetto o in "assembly" referenziati dallo stesso. Al contrario di C#, in Oxygene non è possibile definire alias per i namespace, ma solo per i singoli tipi.

Così come in Delphi, la sezione interfaccia può contenere inoltre dichiarazioni di tipo. Ad esempio:

interface
 
type
  ConsoleApp = class
  public
    class method Main;
  end;

Come in C#, nella sezione di implementazione il metodo Main è il punto d'ingresso (entry point) per ogni programma. Esso può avere un parametro args : Array of String per permettere il passaggio di argomenti da riga di comando.

L'implementazione dei metodi dichiarati è inserita nella sezione di implementazione:

implementation
 
class method ConsoleApp.Main;
begin
  // add your own code here
  Console.WriteLine('Hello World.');
end;
 
end.

Infine, i file terminano sempre con l'istruzione end.

Riferimenti[modifica | modifica sorgente]

  1. ^ (EN) Pagina Web di Embarcadero Delphi Prism