Oxygene (linguaggio)

Da Wikipedia, l'enciclopedia libera.
Vai alla navigazione Vai alla ricerca
Oxygene
linguaggio di programmazione
AutoreRemObjects Software
Data di origine2005
Ultima versione10.0.0.2485 (18 febbraio 2020)
Paradigmiprogrammazione orientata agli oggetti e calcolo parallelo
Implementazione di riferimento
Licenzashareware
Sito webelementscompiler.com/elements/oxygene/

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à nelle versioni precedenti, 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 wikitesto]

Oxygene tra le sue origini da Object Pascal (in generale) e da Delphi (in particolare) è 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 wikitesto]

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

class operator implicit(i : Integer) : MyClass;

Struttura di un programma[modifica | modifica wikitesto]

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.

Note[modifica | modifica wikitesto]

Collegamenti esterni[modifica | modifica wikitesto]