Newsgroup: it.comp.programmare
Titolo: Basic o non basic (in particolare AMOS)

Salve, tempo fa sul newgroup "it.comp.os.amiga" c'e' stata una piccola
discussione circa il linguaggio AMOS Basic. Porto qui questa discussione
perche' e' questo il luogo piu' pertinente, e non certo ICOA.
Si affermava che il BASIC non e' un linguaggio. Voglio fare alcuni
chiarimenti.
(1) Il linguaggio BASIC non e' definito come standard da nessuna parte.
Quindi ognuno puo' inventarsi un proprio dialetto BASIC con + o - belle
caratteristiche. Cio' non succede per C, C++, Pascal, che hanno le loro
brave specifiche
(2) In virtu' di quando detto al punto (1) prima di valutare un dialetto
BASIC bisogna saggiarne le caratteristiche:
   1. Se consente o no la programmazione strutturata (ovvero consente di
scrivere programmi componendo solo 3 strutture di controllo: sequenza,
iterazione, selezione, quindi che consenta di scrivere programmi senza l'uso
dei GOTO)
   2. Se consente o no la programmazione modulare (ovvero consente di
suddividere il codice sorgente in + "moduli", ognuno dei quali realizza una
specifica funzionalita'; ogni modulo ha un proprio spazio delle variabili;
ogni modulo, previa dichiarazione, puo' richiamare funzioni di un altro
modulo [altrimenti sarebbero totalmente scollegati])
   3. Se la tipizzazione che effettua e' forte o debole. Mi spiego
       3.1 tipizzazione forte: il tipo di ciascun dato e' legato al nome; se
dico che il simbolo "pi" ha tipo "real" allora la variabile di nome "pi"
potra' contenere solo valori "real". Il controllo di consistenza dei tipi in
questo caso viene effettuato a tempo di compilazione (compile-time).
       3.2 tipizzazione debole: il tipo di ciascund dato e' legato al
valore; ovvero: la variabile "pi" puo' contenere il valore 3.14 oppure il
valore "Ciao a tutti": il tipo e' legato al valore che la variabile pi
contiene. Il controllo di consistenza dei tipi in questo caso viene
effettuato a tempo di esecuzione (run-time).
Bene, a questo punto ciascun dialetto BASIC puo' essere classificato secondo
i criteri sopra descritti:
- il BASIC del Commodore 64 (il BASIC 2.0 della Microsoft [lo sapevate?])
non consente programmazione strutturata, ne' programmazione modulare; e' a
tipizzazione forte nel senso che il nome delle variabili indica il loro
tipo; ma non prevede variabili locali: tutte le variabili sono globali. Per
essere piu' preciso: la programmazione modulare e' possibile simularla, ma a
costo di intricatissime acrobazie.
- il GW-BASIC consente un minimo di programmazione strutturata; non consente
progr. modulare; tipizzazione come il precedente; non ha variabili locali.
- il Q-BASIC consente programmazione strutturata; non consente progr.
modulare; tipizzazione come il precedente; consente variabili locali
- AmigaBASIC: uguale a Q-BASIC
- HiSoft BASIC: uguale ad AmigaBASIC quindi uguale a Q-BASIC
- AMOS Basic somiglia a HiSoft BASIC, AmigaBASIC, Q-BASIC circa queste
caratteristiche. La sua perculiarita' era di poter gestire molto
efficientemente i chip custom di AMIGA producendo effetti grafici e sonori
strabilianti (ma tutto cio' e' OT)
- Visual Basic: consente programmazione strutturata; consente programmazione
modulare; tipizzazione sia forte che debole (si puo' settare una opzione
"Option Explicit" che regola questa scelta); Consentendo la programmazione
modulare ha l'uso delle variabili locali; addirittura ha un supporto (anche
se non completo) per la programmazione ad oggetti.
Un saluto a tutti,
Francesco Sblendorio

 brave specifiche
   Per quanto possa sembrare incredibile, anche il Basic ha il suo bravo 
standard. Non ho intenzione di spendere 18 USD per sapere cosa esso 
contenga ma se qualcuno e` interessato puo` guardare su:
 
http://webstore.ansi.org/ansidocstore/product.asp?sku=ANSI+X3%2E113%2D1987+%28R1998%29
--
Alla prossima,
Marco