Commodore 64 > Programmazione, Grafica e Musica
Ottimizzazione Dei Programmi Basic
MarC=ello:
Ciao!
Oltre alle tecniche di compattazione che troverete nella Guida C64 (cospicuo aggiornamento previsto per la fine del mese...), esistono altri accorgimenti per rendere più veloci i programmi BASIC.
1. Utilizzare SEMPRE variabili, specialmente entro i cicli.
2. Evitare i calcoli se possibile.
Esempio:
10 FORT=0TO7999:POKE8192+T,0:NEXT
Questo brevissimo programma serve per azzerare il segmento di memoria da 8192 a 8192+7999 = 16191.
Osserviamo che entro il ciclo FOR c'è un calcolo che può essere evitato. Basta sostituire i valori iniziale e finale del contatore del ciclo FOR (T) come segue:
10 FORT=8192TO16191:POKET,0:NEXT
Infine, per occupare meno memoria e rendere più veloce il codice, utilizziamo delle variabili per rappresentare la locazione iniziale e la locazione finale:
10 A=8192:B=16191:FORT=ATOB:POKET,0:NEXT
Queste possono sembrare cose di poco conto ma in realtà, specialmente in programmi lunghi, si guadagna molto in termini di velocità.
Ciao a tutti!
Alberto:
Ciao Marcello
Quel che dici è vero,ma quando si intendono scrivere programmi in cui è importante la velocità di esecuzione ( che debbano,ad esempio,richiedere la pulitura di un intero segmento di memoria.come sopra ),conviene spostare il proprio interesse verso il linguaggio macchina ;)
MarC=ello:
Ciao Alberto
Beh questo è fuori discussione...
Questi accorgimenti sono utili quando vuoi, per tua soddisfazione e/o divertimento, spingere il BASIC oltre i suoi limiti. Io ad esempio ho scritto un programma che realizza un semplice scrolling fluido in puro BASIC (Rob mi ha proposto di scrivere un articolo in merito a ciò... spero di trovarne il tempo un giorno).
A me è sempre piaciuto cercare di spingere il BASIC al massimo... semplicemente perché "it can be done" :)
Ciao!
MarC=ello:
Ti dirò poi che sono riuscito a creare effetti "raster" in BASIC... e anche un effetto 3D abbastanza carino... vorrei rilasciare un demo interamente in BASIC ma il problema è il tempo. Ad esempio ho finito solo stasera la seconda parte del vocabolario CBM BASIC a denti stretti... sono sempre molto indaffarato... Ora credo che la sezione dedicata alla Guida C64 sarà aggiornata fra pochi giorni.
Rinnovo i saluti!
Roberto:
L'ottimizzazione del linguaggio è fondamentale, quando si utilizza una macchina come il Commodore64, dove ogni byte è prezioso quanto un kilo di platino! E questo indipendentemente dal linguaggio utilizzato.
Questo è quello che ho imparato in base alle mie modeste esperienze in merito di programmazione e soprattutto grazie al mio diavolo custode: ian coog, che è stato per me un vero pozzo di consigli.
Per imparare ancora meglio altre tecniche di ottimizzazione, sarebbe utile analizzare alcuni programmi scritti in maniera non ottimizzata e cercare di capire come fare per ripulirli. Se magari qualcuno all'ascolto ha scritto o sta scrivendo qualche breve programma, potrebbe postarlo in questa sede, si potrebbe cercare di migliorarlo insieme. Sicuramente non si farà avanti nessuno... ma sicuramente potrebbe essere interessante.
Navigazione
[0] Indice dei post
Vai alla versione completa