[PLUTO-help] [OT] Programmazione

sabatino sabatino.palladino a alice.it
Ven 9 Apr 2010 16:43:01 CEST


Il venerdì 09 aprile 2010 11:25:20 Fabio Ven. ha scritto:

> E' ormai risaputo che l'uso del costrutto GOTO è "altamente sconsigliato",

Dire che il GOTO è altamente sconsigliato è frutto di una visione 
miope del problema, anzi a mio modo di vedere indica una scarsa 
comprensione del problema; La realtà è che il GOTO è un costrutto 
utilissimo, fondamentale, irrinunciabile.

Il fatto è che un punto di forza della programmazione strutturata 
è la chiarezza (o meglio la maggiore leggibilità), ora il volersi 
ostinare a non usare il GOTO porta in alcuni casi particolari a 
scrivere codice intricato, poco leggibile. poco manutenibile. Certo
si può sempre evitare il GOTO con un sapiente uso di if... then... else
e del while ma in alcuni casi particolari questo porta a realizzare dei 
pastrocchi assurdi mentre un uso sapiente del GOTO porta a scrivere 
del codice più intuitivo e più aderente all'algoritmo da implementare.

Il messaggio che deve passare (ma che non è passato) è che la cosa 
cattiva è l'uso indiscriminato del GOTO ma che il GOTO è indispensabile.



Il venerdì 09 aprile 2010 11:25:20 Fabio Ven. ha scritto:

> difatti fortunatamente non mi è mai capitato di vederne uno o di doverne
> scrivere uno, se non per linguaggi a bassissimo livello alle superiori :-)

Come già fatto notare  



>
> http://ie.php.net/manual/en/images/0baa1b9fae6aec55bbb73037f3016001-xkcd-go
>to.png
>



Il venerdì 09 aprile 2010 11:25:20 Fabio Ven. ha scritto:

> Di fatti se un algoritmo è ben pensato il problema non si porrà mai.
> Questa è una delle primissime regole di programmazione che mi è stata
> insegnata.

La regola è stata insegnata male. L'algoritmo non ha nulla a che vedere 
con la sua implementazione; coma già fatto notare da Saint puoi 
implementare molto efficientemente un cattivo algoritmo o puoi 
implementare sbadatamente un buon algoritmo e questo non c'entra 
niente col GOTO.
La cosa che forse ti volevano insegnare è che se studi in modo corretto 
il problema e sviluppi correttamente l'algoritmo allora la sua implemen_
tazione diverrà banale e naturalmente non conterrà nessun GOTO.
Ciò non toglie che in alcuni casi particolari il GOTO è la soluzione migliore 
e a volte l'unica.





Il venerdì 09 aprile 2010 11:25:20 Fabio Ven. ha scritto:

> Ma il punto è: il costrutto "CONTINUE" all'interno dei cicli non dovrebbe
> essere anche'esso sconsigliato?

Effettivamente CONTINUE è in tutti i sensi equivalente ad in GOTO alla 
fine di un ciclo (anzi col PASCAL usavo proprio un GOTO per simulare il
continue del C). Questo è proprio uno dei casi che dicevo dove il GOTO
rappresenta la soluzione migliore. E inoltre il C ha break che è un GOTO 
fuori dal ciclo o da una selezione e molti linguaggi hanno delle versioni
etichettate di break e continue; questi rappresentano in un certo senso 
gli usi buoni del GOTO.

Ora parecchi autori si scagliano contro il GOTO, contro il CONTINUE e 
contro i BREAK. A mio avviso hanno torto. Non posso che associarmi a 
Saint nel ricordare che la programmazione non è un semplice applicare 
alla cieca un insieme di regole ma che le regole devono sempre prese 
/cum/ /grano/ /salis/ ed applicate comprendendole. Goto, continue e 
break esistono e sono utili, non devono essere usate sempre ma
bisogna ricordare che esistono e che risolvono molti casi difficili.

Infine usare il goto per simulare continue e break, etichettati o no, 
è uno dei possibili usi buoni, per così dire, del goto.


PS Poco fa è partito un invio per errore ed ho inviato alla lista 
una bozza. Mi scuso.




-- 
Sabatino Palladino
......
Non voglio i mille baci che diede Lesbia a Catullo,
pochi baci vuole chi riesce a contarli.
				M. Valerio Marziale
				  (versione libera)



More information about the pluto-help mailing list