[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