Cobra by examples



Introduzione          

Per questo interessante linguaggio, creato dal programmatore californiano Chuck Esterbrook, proverò un approccio differente rispetto a quello sperimentato per gli altri argomenti di questa sezione e che sarà basato, per lo più, sugli esempi commentati che man mano riuscirò a compilare, con l'intento poi in seguito di migliorare la completezza delle spiegazioni di questo strumento davvero notevole e, ahimè, sottovalutato.

0101 Hello World
1
2
3
class Program
    def main
        print 'Hello, world.'

I programma scritti in Cobra seguono le regole del mondo Python relativamente all'obbligo di indentazione. Questa può esere eseguita in due modi:
- con sequenza costituite da 4 spazi
- con il classico tabulatore

le due spaziature possono anche essere mischiate ma è meglio, molto meglio a mio avviso, scegliere una via o l'altra nell'ambito di un singolo programma.

Ogni programma deve contenere la classica procedura main che costituisce l'entry point.
Essa deve trovarsi all'interno di una classe. Il nome della classe deve iniziare con la lettera maiuscola.
Ogni funzione viene introdotta dalla keyword def.

Vediamo ora come definire la variabili per qualche operazione di base:

0102 Variabili
1
2
3
4
5
6
class Test
    def main
        x = 10
        y = 2.5
        print x / y
        print 4 / 3

come si vede non sono definiti esplicitamente i tipi: Cobra infatti prevede, come ci si aspetta da un linguaggio moderno, l'inferenza di tipo che permette al compilatore di attribuire il tipo corretto ad una variabile sulla base del valore ad esso attribuito. Questo non impedisce che si espliciti il tipo per una variabile; potevamo infatti scrivere:

x as int = 10

e le cose avrebbero funzionato allo stesso modo senza problemi.

Cobra permette di definire più variabili in un'unica passata:

x1, x2, x3 = 0, 50, 2 + 3

Questa definizione funziona perfettamente. Da notare l'espressione che determina il valore di x3.
Infine mi piace osservare che  4/3 vi da come risultato
1.33333333333333.....
finalmente! 4/3 non fa 1, fa 1.3...... se poi si vuole ricavare la parte intera, ovvero il quoziente, allora è un altro discorso.

L'istruzione print stampa una stringa a video e va a capo, come risulta dagli esempi mostrati finora. Affinchè l'eventuale print successivo resti sulla stessa riga, quindi se vogliamo evitare di andare a capo,  è necessario concludere l'istruzione con la parola stop:

print "ciao stop

Per la lettura ci appoggiamo alle potenti classi presenti in .Net, in particolare alla classe Console del namespace System; per importare tale namespace Cobra ci fa usare la keyword use. Vediamo l'esempio:

0103 Lettura e scrittura
1
2
3
4
5
6
use System
class Test
    def main
        print "Inserisci il tuo nome: " stop
        nome = Console.readLine
        print "ciao, " + nome

La riga 5 ci presenta appunto l'uso del metodo readLine della classe Console appartenente al namespace System richiamato alla riga 1.