Monthly Archives: September 2014

Le origini del linguaggio Ruby

Guida alla programmazione con Ruby

Ruby rappresenta un linguaggio di scripting interpretato per la programmazione orientata agli oggetti, dove il termine interpretato sta a significare che un’applicazione Ruby sarà eseguita senza che la stessa necessiti preventivamente di essere compilata.

Il linguaggio Ruby è nato nel 1993 come progetto personale del giapponese Yukihiro Matsumoto (spesso chiamato semplicemente Matz), pertanto Ruby rappresenta il primo esempio di linguaggio di programmazione sviluppato completamente in oriente che è riuscito a guadagnare abbastanza popolarità in occidente.

Questo perché fino ad allora, in ragione di evidenti problemi dovuti alle differenze linguistiche che si manifestano anche e soprattutto a causa del set di caratteri totalmente diverso da quello adottato nella informatica internazionale, gli sviluppatori nipponici erano stati ghettizzati e quindi costretti ad utilizzare i prodotti che provenivano dall’altra parte del mondo per evitare di peggiorare lo stato di isolamento in cui imperversavano.

Grazie a Ruby questa tendenza è stata spinta nella direzione contraria, ed oggi possiamo affermare che numerosi progetti di rilievo in ambito internazionale siano stati scritti utilizzando la nuova piattaforma.

 Il linguaggio Ruby trae origini da linguaggi ad oggetti quali lo Smalltalk, da cui ha tratto la maggior parte delle sue caratteristiche, quindi il Lisp quale linguaggio funzionale, a cui si devono i blocchi, ed infine il Perl, da cui derivano la sintassi e l’espressività.

 lisp

Come già anticipato Ruby rappresenta un linguaggio interpretato, nel senso che per poter essere eseguito non necessita di una preventiva compilazione, come invece avviene per la maggior parte del linguaggi di programmazione, ma è sufficiente che sia presente un interprete che traduca le istanze e le trasformi in linguaggio comprensibile all’utente.

L’interprete è stato scritto in linguaggio C, rilasciato sotto doppia licenza, GPL e Ruby license, che rappresenta una sorta di licenza BSD ovvero una famiglia di licenze permissive per il software. Tutto questo per dire in parole povere che con Ruby possiamo farci tutto quello che vogliamo, anche se la cosa migliore che potremmo fare è contribuire alla crescita della piattaforma. La distribuzione di Ruby si trova attualmente alla versione 1.8.6 mentre si è in trepidante attesa per l’annunciata versione 2.0 che promette delle interessanti novità.

Il successo di Ruby è dovuto anche alla presenza di framework di successo per lo sviluppo di applicazioni web, come Nitro e Ruby On Rails che rappresentano degli ambienti integrati che permettono di realizzare interi siti con il minimo impegno offrendo una serie di librerie di codice.

Come definire una funzione in Matlab

MATLAB

In questa lezione impareremo come definire una funzione in Matlab. Le Funzioni ci danno la possibilità di estendere le potenzialità di MATLAB. È possibile creare nuove funzioni specifiche per il problema che poi assumono lo stesso status delle altre funzioni di MATLAB. Le variabili in un file di funzione sono locali per impostazione predefinita. Tuttavia, dalla versione 4.0 di Matlab ci è permesso di utilizzare una variabile da dichiarare globale.

Le Funzioni sono M-file che possono accettare argomenti d’entrata e forniscono argomenti di uscita. Il nome dell’M-file e della funzione deve essere lo stesso. Le Funzioni operano su variabili definite nel workspace proprio, separato dal workspace a cui si accede all’ingresso di MATLAB, cio`e le variabili usate all’interno della funzione sono locali.

Vediamo come scrivere una una funzione con parametri in ingresso e parametri in uscita. Si voglia costruire una funzione che, dati i lati ”a” e ”b” di un rettangolo fornisca l’area ”A”, il perimetro ”p” e la diagonale ”d”. Indichiamo con (a; b) la lista d’ingresso (parentesi tonde) e con [A; p; d] la lista d’uscita (parentesi quadre) (si noti la virgola fra i parametri).

function [ A , p , d ] =rettang ( a , b )
A = a * b;
p = 2 * ( a + b );
d =sqrt ( a^2 + b^2 );

Si noti che non c’e’ confusione tra la lettera A e la a perche’ MATLAB distingue le lettere maiuscole dalle minuscole. Questa function, salvata con il nome rettang.m puo’ essere richiamata da un altro modulo o direttamente dalla finestra comandi ad esempio con il comando:

[area; perim; diag] =rettang(2; 3)

Quindi la sintassi e’ la seguente:

function [lista d’uscita] = nome (lista d’ingresso)

L’uso delle funzioni ci permette di racchiudere un algoritmo complesso in un singolo script allo scopo di riutilizzare lo stesso magari in un’altra applicazione. Nella programmazione procedurale si fa largo uso delle funzioni, e spesso è possibile utilizzare delle funzioni già disponibili, magari recuperate su internet in modo da semplificarci il lavoro.

LINK DI APPROFONDIMENTO PER L’ARGOMENTO: