Perché usare l'Assembler?

L'utilizzo dell'Assembler come linguaggio di programmazione non è più così diffuso. Di norma i programmatori preferiscono usare linguaggi di terza o di quarta generazione (di seguito: 3GLs o 4GLs).

Normalmente - per applicazioni ordinarie - questo è assolutamente vero. Tuttavia ci sono casi in cui sarebbe consigliabile valutare bene sia gli argomenti a favore sia gli argomenti contro l'utilizzo di questo linguaggio.

Se da un lato gli argomenti contro l'uso dell'Assembler sono in larga parte frutto di pregiudizi, dall'altro i motivi a favore di questo linguaggio sono relativamente poco conosciuti. Quando si conoscono i pregiudizi contro l'Assembler senza conoscerne i vantaggi, diventa difficile scegliere obiettivamente il linguaggio di programmazione adatto.

Una regola importante - così come per qualsiasi linguaggio di programmazione - è la seguente: senza personale qualificato non si raggiungerà alcun obiettivo, senza un'adeguata documentazione si rischierà di non sapere più a che punto si è arrivati.

Di seguito troverai una panoramica dei più importanti vantaggi dell'Assembler. Proseguendo, proveremo a smontarne i pregiudizi. Alla fine cercheremo di trarre le conclusioni.

I vantaggi dell'Assembler.

Lavorare con l'Assembler offre una gamma di possibilità, non (tutte) disponibili nei 3GLs o 4GLs.

I pregiudizi contro l'Assembler.

Esistono diversi pregiudizi contro l'utilizzo dell'Assembler. Tra questi ricordiamo i più ricorrenti:

  1. In Assembler la programmazione strutturata è impossibile.
    Questo non è vero. Al contrario, l'Assembler offre in proposito molte più possibilità rispetto alla maggior parte dei 3GLs.
  2. La manutenzione dei programmi in Assembler è di gran lunga più costosa rispetto a quella dei 3GLs.
    Al tempo in cui i 3GLs furono introdotti, quest'affermazione poteva essere vera. Al presente questa posizione è certamente opinabile.
  3. L'Assembler è un linguaggio scomodo e difficile da imparare.
    L'Assembler è, certamente agli occhi di un profano, meno leggibile rispetto al Cobol. D'altra parte è molto più difficile avere la completa padronanza di linguaggi come il C e il C++.
Punto 1.
In Assembler la programmazione strutturata è impossibile.
Scrivere programmi in modo strutturato è essenzialmente una questione di stile e di abilità. Se il linguaggio di programmazione offre diverse possibilità in questo senso, questo rappresenta certamente un aiuto, ma niente di più.
Punto 2.
La manutenzione dei programmi Assembler è più costosa rispetto ai 3GLs.
Quando i 3GLs furono introdotti, esisteva già una vasta base di programmi Assembler. Siccome la programmazione strutturata era un principio relativamente nuovo per quei tempi, questi programmi lasciavano sotto questo aspetto molto a desiderare. In Assembler - così come per altri linguaggi - si può strutturare i propri programmi tanto quanto se ne desideri. Con conseguenze per la loro successiva manutenzione.
In Assembler, più che con i 3GLs, si hanno più possibilità di fare molta confusione. Tuttavia, grazie alle macro, si ha un considerevole numero di opzioni supplementari per strutturare i propri programmi rispetto agli altri linguaggi.
 
La questione dell'abilità è di primaria importanza. Un programmatore Cobol che "se la cava un po' con l'Assembler" non può certamente misurarsi con un programmatore Assembler senior. Gli effetti sono verificabili non solo per ciò che rigurda il tempo necessario per finire un determinato lavoro, ma anche per quello che riguarda la qualità del codice prodotto. Il principale problema quindi è come riuscire a trovare personale qualificato per il proprio team. Un problema che si pone comunque, a prescindere dal linguaggio scelto.
 
Così, se vogliamo fare un giusto paragone per il personale richiesto tra Assembler e 3GLs, dovremo paragonare professionisti con professionisti, prendendo anche in considerazione l'età dei programmi (leggi: grado di strutturazione), così come la documentazione disponibile.
 
La nostra esperienza ci dice che quando si lavora con l'Assembler per sviluppare nuovi programmi, si necessita un 10, 20 percento in più di personale. Per la manutenzione di programmi già esistenti la documentazione disponibile o il grado di strutturazione dei programmi stessi possono differire di molto da caso a caso, per cui diventa difficile fornire stime attendibili.
 
Un esempio: uno dei nostri clienti possiede un modulo in Assembler, creato da noi, e uno in Cobol. Entrambi i moduli fanno esattamente la stessa cosa. Per implementare alcune modifiche il programmatore Assembler ha avuto bisogno di una giornata, mentre il programmatore Cobol ha lavorato tre giorni. Anche se questo può sembrare un'eccezione, l'esempio ci mostra come l'aggiornamento di programmi Assembler non è necessariamente più oneroso rispetto ai 3GLs.
 
Punto 3.
L'Assembler è un linguaggio scomodo e difficile da imparare.
Se siete in mano a dei dilettanti sarebbe meglio evitare di scegliere l'Assembler. Così come per altri linguaggi, riuscireste solo a mettervi in difficoltà da soli.
Certamente esistono anche professionisti qualificati in giro. Non solo hanno la padronanza del linguaggio, ma posseggono una vasta conoscenza delle macro che questo linguaggio è in grado di offrire. Questo ci permette di scrivere programmi più rapidamente, efficienti e chiari.

Conclusioni.

Gli argomenti a favore e contro l'uso dell'Assembler possono essere riassunti come segue:

Concludendo, il nostro consiglio è il seguente: non usate l'Assembler quando non è necessario. D'altra parte, in presenza di buone ragioni, non scartatelo a priori; l'Assembler non deve spaventare. E in caso si è scelto di farne uso, utilizzatelo per quei moduli che ne trarranno vantaggio. La fetta più grande del vostro applicativo sarà probabilmente scritta in un 3GLs o 4GLs.

Un ultima considerazione: per alcuni applicativi è semplicente impossibile non usare l'Assembler. Questo vale soprattutto per la maggior parte delle exit. Non solo il sistema operativo, ma anche molti prodotti se ne servono per adattarne le funzionalità alle proprie esigenze. Per molte di queste exit la codifica in Assembler è inevitabile. E con gli argomenti discussi fin qui, quest'ultima non dovrebbe (più) rappresentare un problema insormontabile.

 

Questo sito è membro del WebRing.
Clicca qui per accedere una lista dei siti sui mainframe.
Tirannosauro Rex in azione I dinosauri non sono morti. Sono vivi e vegeti e vivono nei centri elaborazione dati intorno a te. Parlano una loro lingua e fanno strane magie con i computer. Stai in guardia! E in caso tu stia aspettando la loro prossima estinzione, ricorda che i dinosauri hanno dominato il mondo per 155 milioni di anni!
Dinosauri ed altri anacronismi
[ Iscriviti | Ring Hub | Casuale | << Prec | Succ >> ]
 

Vai a I vantaggi dell'Assembler.
Vai a I pregiudizi contro l'Assembler.
Vai alle Conclusioni.

Alla Home Page italiana.
Alla Home Page generale.



Di seguito troverai il logo del nostro sponsor e altri logo standard ai quali le nostre pagine web aderiscono.