Inform e Glulx/appendici/Appendice C - Gli errori della compilazione: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica |
m Bot: sostituzione tag obsoleti |
||
Riga 1:
==Appendice C - Gli errori della compilazione==
'''La compilazione è quel processo che trasforma un file sorgente''' (nel caso di Inform il file contraddistinto dall’estensione <
# '''ad ogni parentesi graffa aperta ({), ne deve sempre corrispondere una chiusa (}); la stessa cosa vale per le parentesi tonde e quadre ([ ])'''. Questo è l’errore più tipico che si possa fare, e purtroppo è anche uno dei più difficili da trovare, perché il compilatore produce in genere una sfilza di errori che non hanno nulla a che vedere con quello che a noi interessa. Spesso poi, non bisogna fidarsi troppo dei numeri di riga, perché non è detto che l’errore sia sempre nelle righe corrispondenti, ma magari è nelle "vicinanze" (qualche riga più sopra o più sotto) o addirittura in qualche altra parte del programma. JIF, comunque, ci viene in aiuto con un’apposita funzione di controllo delle parentesi;
# '''ogni istruzione deve terminare (salvo alcune eccezioni) con un punto e virgola (;)'''. Se questo simbolo viene omesso il compilatore genera, come nel punto 1, una sfilza di errori che non hanno nulla a che vedere con quello che a noi interessa;
# '''tutto quello che viene dichiarato deve sempre essere usato'''. Non si può cioè definire, ad esempio, una costante <
# '''tutto quello che non viene dichiarato non può essere usato'''. Non è possibile, cioè, cercare di utilizzare una variabile, una funzione, un oggetto o altro se non è stato prima dichiarato (o, per dirla in parole più semplici, creato);
# '''a parte rare eccezioni (riguardanti soprattutto alcune estensioni), il file eseguibile deve essere sempre creato senza le segnalazioni di warning'''. Esistono infatti due tipi di errori: quello più grave (indicato dal compilatore come <
# '''se viene generata una lista di errori, occorre risolvere il primo e, dopo, tutti quelli che lo seguono'''. Nella maggior parte dei casi, infatti, alcuni errori nascono come conseguenza di quelli fatti prima. Risolti questi ultimi, anche gli altri scompaiono;
# '''non si può definire un nuovo verbo che è già esistente'''. Potete però ampliarne il significato tramite le istruzioni <
# '''in Inform si possono usare, di default, solo i valori numerici compresi tra –32768 e 32767'''. Una variabile, cioè, può contenere solo un valore numerico compreso nel range sopra indicato. In caso contrario, il compilatore non genera un errore, ma i valori memorizzati in essa sono completamente diversi e casuali, con dei risultati totalmente imprevedibili;
# '''le librerie di sistema non si devono mai modificare'''. Vanno invece usate le apposite istruzioni per la modifica dei messaggi di default, delle azioni e della status line<ref>Con questo termine s’intende la barra in alto che compare nella finestra di Windows Frotz 2002 (o in qualsiasi altro interprete Z-code) quando iniziate a giocare un’avventura testuale. Per ulteriori informazioni, consultate il [[Inform e Glulx/Inform e ancora Inform/La Status Line|capitolo 5]].</ref>; in questo modo si evitano dei possibili errori e (soprattutto) non si violano i diritti di copyright (le librerie di sistema – quelle di Inform e quelle italiane – sono di proprietà dei rispettivi autori, e nessuno – salvo una loro precisa autorizzazione – può modificarle né tantomeno distribuirle);
# '''sebbene esistano diverse versioni della Z-machine, è vivamente consigliato usare la versione 5 (<
# '''Non potete usare l’istruzione <
# '''Tutto quello che viene dichiarato nel file di include, deve sempre essere utilizzato'''. Non posso, cioè, definire un’ipotetica variabile <
# '''la status line, se usata, va sempre inizializzata'''. Per sapere come fare, consultate il [[Inform e Glulx/Inform e ancora Inform/La Status Line|paragrafo 5.1]].
Riga 19:
Occorre ora spendere qualche parola su un altro tipico errore "informiano":
<center><
generato, per esempio, dal seguente codice:
Riga 28:
],
dove l’istruzione <
description [;
Riga 52:
];
Se l’istruzione <
[[Immagine:Inform e Glulx-sp.gif|centre|435 px|]]
Riga 80:
];
Se voglio testare direttamente la Sala Quadrata con tutti gli oggetti della cassa da imballaggio nell’inventario del giocatore, stabilisco <
{| style="width:100%;" class="wikitable"
| <
Un esempio di lavoro interattivo.<br>
Copyright (c) 1999 di Graham Nelson.<br>
Riga 89:
Versione 1 -- Numero di serie 041109<br>
Inform v6.30 -- Libreria 6/11 -- Infit v2.5 S<br><br>
<
Sei in una sala di pietra oscura e profonda, larga circa dieci metri. Un raggio di sole, proveniente dalla cima della scalinata, la illumina diffusamente, ma le ombre del livello più basso rivelano dei passaggi verso est e sud, che conducono verso la più profonda oscurità del Tempio.<br><br>
Delle iscrizioni scolpite riempiono le pareti, il pavimento e il soffitto.<br><br>
Riga 109:
La Sala Quadrata<br><br>
Delle iscrizioni scolpite riempiono le pareti, il pavimento e il soffitto.<br><br>
></
|}
In questo modo, è possibile testare ogni singola parte del gioco, riuscendo così a capire dove si verificano gli errori più "profondi".
Per i programmatori più esperti, Inform mette a disposizione delle specifiche istruzioni che permettono di controllare il processo di compilazione (le '''direttive''', inizianti tutte con il carattere <
Non mi resta che augurare una buona compilazione a tutti...
|