Powerscript è il nome del linguaggio di programmazione che si utlizza quando si sviluppa utilizzando il RAD PowerBuilder realizzato dalla PowerSoft diventato poi SyBase e attualmente di proprietà della SAP AG.
E' un lin
guaggio con una sintassi molto simile a Visual Basic ma che a differenza di quest'ultimo integra i paradigmi OO permettendo una effettiva programmazione Object Oriented.
Questo linguaggio di programmazione non ha avuto un grosso successo in Italia ed è pressochè impossibile trovare manuali di powerbuilder in italiano.
Di seguito descrivo solo alcune caratteistiche del linguaggio:
Incapsulamento attributi
Public: visibile a tutti gli oggetti della classe
Private: visibile solo all’interno della stessa classe
Protected: visibile all’interno della stessa classe e dalle classi che discendono da quest’ultima.
E’ inoltre possibile specificare se un attributo Protected è: PrivateRead o PrivateWrite
Per gli attributi Public si può specificare se sono: ProtectedRead o ProtectedWrite e PrivateRead o PrivateWrite.
Esistono tre modi per aggiungere metodi ad un oggetto:
1. Eventi definiti dall’utente
2. Funzioni definite dall’utente
3. Funzioni esterne locali
Gli eventi triggered e le funzioni chiamate sono sincrone, ossia inviano un messaggio e aspettano la risposta.
Gli eventi posted sono asincroni, i messaggi sono inseriti in una coda, e non viene attesa una risposta.
I metodi Posted non ritornano un valore, non possono essere usati come operatori in una espressione o come argomenti in una funzione.
Se sono inseriti in una sequenza di chiamate a cascata devono essere l’ultimo metodo chiamato.
Le funzioni degli anchestor sono sovrascritte (override) se un discendete implements la funziona con lo stesso nome e gli stessi argomenti.
Gli eventi sono sempre parte di un oggetto ad interfaccia pubblica.
Le funzioni possono essere incapsulate e possono essere: public, private, protected
E’ possibile definire nuovi eventi in:
User objects
Windows
Controllo disegnati all’interno delle finestre
E’ possibile definire nuove funzioni n:
Applicazioni
Menù
User object
Windows
Sintassi di funzioni o eventi:
{Object name.} {method type} {type check option} {WHEN} functionname {argument list}
Method type:
Function (default)
Event
Type checking option
PowerBuilder verifica l’esistenza di funzioni o eventi a seconda di come sono definiti:
STATIC: (default) il controllo viene effettuato a compile time
DYNAMIC: verifica a runtime
Gli eventi e le funzioni statiche causano errori a compile time se non vengono trovate
Gli eventi Dynamics NON causano runtime error se non vengono trovati
Le funzioni Dynamics causano runtime error se non vengono trovate.
WHEN
La parola chiave WHEN definisce se un evento o una funzione vengono eseguiti in modalità POST o TRIGGER
TRIGGER: esecuzione immediata (default)
POST: l’esecuzione viene inserita in una coda ed eseguita quando è il suo turno
Functionname
Nome della funzione o dell’evento dell’oggetto che si vuole richiamare.
Method Type, Type checking e WHEN possono essere inseriti in qualsiasi ordine dopo il punto.
Esempio di sintassi di chiamata di un evento:
w_employe.EVENT DYNAMIC POST ue_update()
w_employe.EVENT ue_update() //STATIC E TRIGGERED sono di default
Overloading
Si definisce Overloading una funzione con lo stesso nome e lo stesso tipo di valore di ritorno ma con numero di parametri diversi.
Gli Eventi non possono essere Overloaded
Override:
Si definisce Override una funzione con lo stesso nome, stesso valore di ritorno e parametri ma ridefinita in più classi appartenenti alla stessa gerarchia.
Polimorfismo:
Lo stesso metodo è implementato in classi diversi, con lo stesso nome e gli stessi parametri.