05.06.2015 Views

PROGRAMMARE IN ERRE

Programming in ERRE language - fourth

Programming in ERRE language - fourth

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

La mancanza di uno specificatore identifica la costante come di tipo ‘REAL’ cioè numerica in<br />

precisione semplice. (3.2)<br />

Le costanti ‘predefinite’ non hanno bisogno di dichiarazione: TRUE e FALSE usate per le variabili di<br />

tipo boolean; MAX<strong>IN</strong>T, MAXREAL e MAXLONGREAL che hanno un ruolo importante nella<br />

rappresentazione dei numeri in <strong>ERRE</strong>. Inoltre è possibile usare anche numeri in base non decimale<br />

e, più precisamente, numeri in base binaria, ottale ed esadecimale che vengono di solito utilizzati<br />

per l’interfaccia di <strong>ERRE</strong> con il linguaggio Assembler del computer ospite: questi numeri sono<br />

preceduti da uno specificatore di base che è '%' per i numeri in base 2, '&' per i numeri in base 8 e<br />

'$' per i numeri in base 16.<br />

Un'altra costante importante è MACH<strong>IN</strong>E$ che viene inizializzata dal compilatore con "PCIBM" per<br />

il PC e "CBM64" per il Commodore 64: diventa così possibile scrivere ad esempio (3.3)<br />

IF MACH<strong>IN</strong>E$ = "PCIBM" THEN<br />

PR<strong>IN</strong>T("Sto girando su un PC IBM.....")<br />

ELSE<br />

PR<strong>IN</strong>T("Sto girando su un Commodore 64....")<br />

END IF<br />

Le variabili e i tipi di dati<br />

Le variabili sono simili alle costanti, tranne per il fatto che il loro valore può essere modificato nel<br />

corso dell’esecuzione del programma. Contrariamente a quasi tutti i linguaggi di programmazione<br />

non esiste una dichiarazione esplicita per le variabili (tipo la VAR del Pascal) (3.4) grazie al fatto che<br />

si può assegnare uno specificatore di tipo. Quindi il compilatore assegna lo spazio di memoria per<br />

una variabile all’atto del suo utilizzo (3.5) : è la cosiddetta “allocazione dinamica”. Alla variabile così<br />

allocata viene assegnato il valore nullo (o la stringa vuota “”) a meno che questa non sia alla<br />

sinistra di un’istruzione di assegnamento. C’è anche da notare che lo specificatore di tipo può<br />

rendere diverse due variabili con lo stesso nome; ad esempio possono coesistere come variabili A,<br />

A% o A$. I tipi standard di <strong>ERRE</strong> sono i seguenti:<br />

- integer (‘%')<br />

- real<br />

- long real (‘#’)<br />

- string (‘$’)<br />

- boolean<br />

- generic (‘?’)<br />

________________________________________________________________________________<br />

3.2) Sul Commodore 64 non è disponibile la doppia precisione, anche se la precisione semplice è migliore rispetto a<br />

quella semplice del PC (2 cifre decimali in più).<br />

3.3) E' stata introdotta anche VERSION$ che identifica la versione del linguaggio (30 per PC e 32 per C-64).<br />

3.4) Questo fatto vale solo per le variabili cosiddette ‘semplici’: le variabili aggregate (array e record) vanno dichiarate<br />

con l’istruzione DIM. Inoltre esiste l’istruzione LOCAL per dichiarare variabili semplici locali dentro una procedura.<br />

<strong>ERRE</strong> per C-64 non dispone di quest’ultima istruzione.<br />

3.5) La memoria assegnata è di due bytes per le variabili intere, quattro per quelle reali e otto per le reali in doppia<br />

precisione, due bytes più la lunghezza della stringa per le variabili stringa. <strong>ERRE</strong> per C-64 alloca cinque bytes per<br />

le variabili reali il che spiega la migliore precisione rispetto alla versione PC.<br />

- 26 -

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!