>[...variabili in memoria...] >> Avresti bisogno >> > di definire un puntatore ad intero tutte le volte che definisci un >> > intero, valorizzandolo con l'indirizzo di quest'ultimo! >> >> Infatti è così, solo che lo fa automaticamente il compilatore. Non per >> niente in C quelle variabili si chiamano "automatiche". E, >> sempre in C, >> vengono allocate nello stack. Mentre la memoria allocata dinamicamente >> normalmente appartiene ad uno spazio che viene chiamato heap. Su Z88DK di default generiamo un file binario compreso di area allocata per "malloc" (un #pragma all'interno del sorgente). Sporco ma molto portabile. Per lo Spectrum devo prima o poi dare un giro di vite, ma "malloc" non si usa poi tanto quanto sembra; certo ci dobbiamo dare da fare per sfruttare le pagine dello ZX128... ! >Ti posso assicurare che il compilatore Cobol che utilizzo abitualmente >sul mainframe OS390 ragiona in modo completamente differente. >Evidentemente le differenze tra le piattaforme (che io ritenevo dovute >al solo ambiente operativo) si estendono invece anche al tipo di >linguaggio utilizzato. >Interessante! COBOL è un discorso a parte su tutte le piattaforme. Certo, su MainFrame è diventato un'istituzione... ma è un mondo incredibile, per chi non lo ha visto/vissuto. - SYSIPT (riga di comando: tipicamente MAX 80 caratteri, detta anche "LETTORE DI SCHEDE"!!), - "working storage" e regole di "posizionamento sulle colonne" del COBOL (uguale anche su UNIX e PC), per la serie "dimmi da che colonna cominci a scrivere e ti dirò che cos'è". - Terminali: la CPU non sa neanche che hai premuto un tasto, a meno che non sia "INVIO" (NEWLINE è un tasto diverso) o un tasto funzione. - BATCH: la CPU, si dimentica di te finchè non la fai ripartire (vedi terminali >> Sì, normalmente era così. Ma il sistema operativo dello Spectrum mette >> comunque a disposizione delle chiamate per allocare e >> rilasciare memoria >> dinamica. Forse in qualche caso venivano utilizzate. >Intendi la rom dell'interfaccia I? No, si riferisce a tutto, programma compreso. Se, ad esempio fai un ciclo: 10 INPUT a$ 20 GO TO 10 ... la variabile occupa dinamicamente lo spazio necessario, dipendente da quel che si inserisce. Altro esempio: un "nostro" programmino ibrido BASIC-L/M spianava le linee di programma da 9000 a 9999 e le caricava da disco con un MERGE. Più dinamico di così... comodo per un gioco in BASIC multilivello, no ?