-+  Associazione
-+  Documenti
 |-  Modern Perl
 |-  Bibliografia
 |-  Articoli
 |-  Talk
 |-  Perlfunc
 |-  F.A.Q.
 |-  F.A.Q. iclp
-+  Eventi
-+  Community
-+  Blog
-+  Link
Corso di Perl



 

Un linguaggio che non teme confronti di Daniele Radogna

Versione stampabile.

1. Introduzione 2. Software Integrated Circuits 3. Multipiattaforma 4. Integrazione verticale 5. Metafore 6. Apprendimento 7. Conclusioni 

Metafore

Elemento essenziale di ogni sviluppo software è il processo di astrazione rispetto al problema che si deve risolvere. Per astrazione non si intende il un processo di allontanamento dalla realtà o dalla pratica, bensì un processo di modellazione intelligente in cui si identificano elementi e relazioni realmente costitutivi di un problema o di una soluzione in funzione dello scopo che ci si prefigge e si trascura quanto è irrilevante. L’ astrazione necessita di strumenti concreti su cui poggiarsi, ovvero necessita dei building blocks necessari per l’ articolazione e la costruzione di un modello. La ricchezza e la potenza delle metafore messe a disposizione definisce l’ orizzonte di ciò che è facile fare e, a volte, di ciò che è possibile fare tout court. Il Perl dispone di un insieme di astrazioni e strumenti nativi che agevolano in modo sostanziale questo processo di astrazione consentendo la realizzazione di soluzioni che sono semplici ed efficaci proprio in virtù delle qualità degli strumenti su cui poggiano. Vale la pena di citare alcuni di questi strumenti, tra i tanti disponibili:

Hash
Le hash, dette altrove memorie associative o dizionari dei dati, probabilmente note, a molti, implementano un meccanismo di accesso a liste di dati di grande interesse ed estrema utilità pratica. E’ possibile sovrasemplificarne la definizione dicendo che le hash sono strutture dati che consentono di associare a ogni individuo di una collezione di dati una chiave testuale che ne rende possibile l’ accesso. Le hash vengono spesso presentate come dei vettori in cui l’ accesso agli elementi avviene mediante una stringa invece che con un numero. Questo si rivela effettivamente un understatement se si adotta un punto di vista più formale e si colgono in pieno le conseguenze di un meccanismo di accesso a liste dati che non impone un inerente ordinamento come avviene per i vettori: la differenza è rilevante anche in una ottica algebrica e in sostanza consente, di fatto, di rendere banali tute le operazioni insiemistiche sui dati.
Espressioni Regolari
Le espressioni regolari sono un formidabile strumento concettuale e pratico il cui supporto in Perl è semplicemente imbattibile. Le espressioni regolari trovano la loro origine in un settore teoricamente fondante della Computer Science ma che, praticamente, mette a disposizione uno strumento di cui è ben difficile sottostimare l’ efficacia soprattutto nel contesto in cui il Perl eccelle, ovvero il trattamento di testi. Ora, il punto reale è che le espressioni regolari, o RE, non sono semplicemente uno strumento, bensì un modo di pensare. La disponibilità della relativa metafora, su cui non spenderemo molte parole perché si tratta di concetti che non si possono liquidare in poche righe, mette in condizione di abbattere la complessità di intere classi di problemi, come per esempio la validazione di codici o la definizione di specifiche formali, esattamente come la disponibilità di un sistema di notazione posizionale rende semplici moltiplicazioni e divisioni che a suo tempo erano fuori dalla portata dei comuni mortali.
Supporto sia per programmazione funzionale che per programmazione a oggetti
Questa flessibilità non è un fatto astratto, bensì una flessibilità che consente di scegliere il proprio paradigma e il livello di astrazione desiderato in modo non rigido, bensì adattato alla natura concreta del problema che si intende risolvere. Aspetto essenziale delle qualità del linguaggio è legata al fatto che è possibile combinare in modo complesso le strutture dati con cui si realizzano appropriate astrazioni con innesti arbitrari e con la massima semplicità in quanto la allocazione, disallocazione e il mantenimento di tali strutture dati è effettuata dall’ interprete e non richiede altra attenzione da parte del programmatore che una elementare forma di diligenza. Ovvero, riassumendo il concetto con uno slogan, complessità a costo zero: si possono creare strutture dati la cui complessità non è limitata dal costo delle realizzazione del codice che serve a mantenerle bensì dalla loro capacità di modellare adeguatamente il problema sotto esame.

Efficienza nel trattamento di dati testuali
L’ efficienza del Perl quando si tratta di gestione di dati testuali non è contestabile e l’ intenzionalità di tale efficienza è codificata nello stesso nome: Pratical Extraction and Reporting Language. Si tenga presente che il dato testuale non è, in tutta ovvietà, il semplice file di testo: gestire bene ed economicamente dati testuale significa sostanzialmente disporre di tecnologie abilitanti per internet, in quanto i relativi protocolli trattano prevalentemente dati testuali; ma significa anche XML, oppure capacità di trattare sorgenti in C. Ovvero, l’ efficacia nativa del Perl per questi scopi attestata nelle raccomandazione W3C relativa al linguaggio XML - può essere erogata non solamente su quelle che sono le tecnologie di frontiera ma negli stessi processi di creazione del codice. Ciò vuol dire che anche laddove si sviluppa codice a basso livello per che so generare i meccanismi di stabilizzazione di un satellite quando si muove un braccio munito di antenna, una professionalità dotata di buona fluenza in Perl può facilmente implementare a basso costo meccanismi funzionali a una politica della qualità nella produzione di codice che sono in tutta evidenza vantaggi competitivi. Tali meccanismi possono comprendere ma non sono limitati a economici script di verifica di adesione a standard nella codifica, implementazione di metriche funzionali a processi di software engineering, implementazione di processi automatici a supporto di meccanismi di configuration management, implementazione di meccanismi test a white box il tutto nel medesimo linguaggio con cui è possibile realizzare un sistema gestionale multipiattaforma che impiega un qualunque database con una interfaccia grafica portabile da Xwindows a Windows.

‹‹ Integrazione verticale

Apprendimento ››

D:
Progetti e documenti in rilievo
Corso di Perl Progetto pod2it
D:
La ML di Perl.it
mongers@perl.it è la lista ufficiale di Perl Mongers Italia per porre quesiti di tipo tecnico, per rimanere aggiornato su meeting, incontri, manifestazioni e novità su Perl.it.
Iscriviti!
D:
Annunci Google