Applesoft BASIC: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
FRA2005 (discussione | contributi)
Doppia immagine
Etichette: Modifica da mobile Modifica da web per mobile Modifica da mobile avanzata
 
(15 versioni intermedie di 6 utenti non mostrate)
Riga 1:
{{Linguaggio di programmazione
[[File:Applesoft BASIC.png|thumb|right|250px|Un semplice programma in '''Applesoft BASIC'''.]]
|nome = Applesoft BASIC
|immagine = Applesoft BASIC.png
[[File:Applesoft|didascalia = BASIC.png|thumb|right|250px|Un semplice programma in '''Applesoft BASIC'''.]]
|autore = [[Apple]]
|data = [[1977]]
|versione =
|utilizzo = linguaggio di uso generico
|paradigmi = Non strutturato
|tipizzazione = [[Tipizzazione forte]]
|specifiche =
|estensione =
|influenzato_da = [[Microsoft BASIC]]
|ha_influenzato =
|implementazione_riferimento =
|sistema_operativo =
|lingua =
|licenza =
|sito_web =
}}
 
L''''Applesoft BASIC''', eraufficialmente solo '''Applesoft''',<ref name=applesoft/> è un dialetto del [[BASIC]] disponibilesviluppato per suii [[personal computer]] [[Apple II]];. sostituivaÈ lstato presentato nel [[1977]] come sostituto dell'[[integer BASIC]]. L'Applesoft BASIC eraè basato sul [[Microsoft BASIC]] ed il suo nome derivavaderiva dall'unione dei nomi delle due società interessateche allo progettohanno sviluppato, [[Apple]] e [[Microsoft]].: Glii ingegneriprogrammatori Apple, tra cui [[Randy Wigginton]], adattatoronohanno adattato l'interprete del BASIC Microsoft all'Apple II aggiungendo nuovele funzionalità necessarie a sfruttare le caratteristiche del computer.<ref name=applesoft/>
 
La prima versione dell'Applesoft BASIC, indicato semplicemente come ''Applesoft'',,<ref name=applesoft>{{cita web|url=http://apple2history.org/history/ah16/#04|titolo=Applesoft I|editore=apple2history.org|accesso=30/01/2014}}</ref> fu rilasciata nel [[1977]] e distribuita su [[nastro magnetico]]: uno dei suoi limiti era la mancanza di un adeguato supporto alla grafica ad alta risoluzione dell'Apple II perché l'interprete veniva caricato nell'area di memoria destinata normalmente ad accogliere l'immagine dello schermo in in hi-res, impedendo di fatto il suo utilizzo.<ref name=applesoft/> Questa lacuna fu colmata con il rilascio dell''''Applesoft II''', che vide la luce nel [[1978]]: distribuita sia su nastro che su [[floppy disk|disco]] oltre che preinstallata nella [[read-only memory|ROM]] dell'[[Apple II Plus]] e modelli seguenti, questa versione presentava anche una diversa sintassi di alcuni comandi. Questo fu l'ultimo rilascio dell'Applesoft BASIC: poiché finalmente venivano supportate tutte le caratteristiche hardware dei computer Apple, è questa la versione comunemente indicata come '''Applesoft'''.<ref>{{cita web|url=http://apple2history.org/history/ah16/#05|titolo=Applesoft II|editore=apple2history.org|accesso=30/01/2014}}</ref>
 
==Origini==
L'Apple II fu mostrato al pubblico al ''West Coast [[Consumer Electronics ExpoShow]]'' del mese di aprile del [[1977]] e le vendite iniziarono nel mese di giugno. Il principale appunto che i clienti muovevano ad Apple era la carenza del supporto ai numeri in [[numero in virgola mobile|numeri in virgola mobile]] dell'[[Integer BASIC]] integrato nel computer e scritto da [[Steve Wozniak]] per l'Apple I, che era stata una macchina per hobbisti: l'Integer BASIC poteva trattare solo numeri compresi tra -32.768 e +32.767, un intervallo troppo limitato per scrivere applicazioni da usarsi negli uffici. Wozniak, l'unico che conosceva a fondo i sorgenti dell'Integer BASIC era però impegnato nello sviluppo del controller per il [[Disk II]], una unità a [[floppy disk]], e dell'[[Apple DOS]], e non poteva sistemare il problema per cui Apple si rivolse a Microsoft, che aveva già sviluppato nel [[1976]] una versione per il [[microprocessore]] [[MOS 6502]] del suo interprete BASIC. Le due società si accordarono per una licenza della durata di 8 anni dietro pagamento di una somma di 21.000 dollari.
 
Sviluppato dai programmatori Apple partendo dal Microsoft 6502 BASIC, l'Applesoft fu scritto per essere retrocompatibile con l'Integer BASIC. Nonostante fosse più lento di quest'ultimo, presentava diverse caratteristiche assenti nel primo:
 
* Stringhe atomiche: una [[Stringa (informatica)|stringa]] non è più un [[array]] di caratteri (come nell'Integer BASIC e nel [[C (linguaggio)|C]]) ma è, invece, un oggetto dinamico (come nei linguaggi [[Scheme]] e [[Java (linguaggio di programmazione)|Java]]). Questo permette l'uso di array di stringhe: <code>DIM A$(10)</code> genera un array di ''undici'' variabili di tipo stringa numerate da 0 a 10.
* Array a più dimensioni.
* Variabili in virgola mobile a precisione singola con esponente ad 8 [[bit]] ed una mantissa a 31 bit e funzioni matematiche avanzate come quelle [[logaritmo|logaritmiche]] e [[trigonometria|trigonometriche]].
* Comandi per la gestione della grafica ad alta risoluzione.
* Funzioni <code>CHR$</code>, <code>STR$</code> e <code>VAL</code> per la conversione fra i tipi stringa e quelli numerici (sia l'Applesoft BASIC che l'Integer BASIC avevano la funzione <code>ASC</code>).
* Funzioni predefinite dall'utente: semplici funzioni monoriga scritte in BASIC con un solo parametro.
* Gestione degli errori, grazie al quale i programmi potevano intercettare e gestire errori inattesi mediante routine scritte in BASIC.
 
Per contro, all'Applesoft mancava l'operatore <code>MOD</code> per il calcolo del [[Aritmetica modulare|modulo]], presente invece nell'Integer BASIC.
<!--
Whereas Wozniak originally referred to his Integer BASIC as "Game BASIC," having written it so he could write a [[Breakout clone]] for his new computer, few [[action game]]s were written in Applesoft BASIC for several reasons:
 
==Versioni==
* In that era of carefully counting clock cycles and limited memory, it was inefficient to write speed-dependent programs that ran on a [[runtime interpreter]].
La prima versione dell'Applesoft BASIC, indicato semplicementeda Apple nei documenti e nei manuali ufficiali solo come ''Applesoft'',,<ref name=applesoft>{{cita web|url=http://apple2history.org/history/ah16/#04|titolo=Applesoft I|editore=apple2history.org|accesso=30/01/2014}}</ref> fu rilasciatamessa in commercio nel [[1977]] e distribuita su [[nastro magnetico]]: uno dei suoi limiti era la mancanza di un adeguato supporto alla grafica ad alta risoluzione dell'Apple II perché l'interprete veniva caricato nell'area di memoria destinata normalmente ad accogliere l'immagine dello schermo in inalta hi-resrisoluzione, impedendo di fatto il suo utilizzo.<ref name=applesoft/><nowiki> Questa lacuna fu colmata con illa rilasciocreazione dell'</nowiki>'''Applesoft II''', che vide la luce nel [[1978]]: distribuita sia su nastro che su [[floppy disk|disco]] oltre che preinstallata nella [[read-only memory|ROM]] dell'[[Apple II Plus]] e modelli seguenti, questa versione presentava anche una diversa sintassi di alcuni comandi. QuestoQuesta fu l'ultimoultima rilasciodistribuzione dell'Applesoft BASIC: poiché finalmente venivano supportate tutte le caratteristiche hardware dei computer Apple, è questa la versione comunemente indicata come '''Applesoft'''.<ref>{{cita web|url=http://apple2history.org/history/ah16/#05|titolo=Applesoft II|editore=apple2history.org|accesso=30/01/2014}}</ref>
* The use of "real" (floating-point) numbers for all math operations created unnecessary overhead and degraded performance. A common feature of all Microsoft 6502 BASICs was the lack of double-precision variables or true integers. BASIC normally always worked in single-precision and although a % could be placed in front of variables to mark them as integer, they would merely be converted back into single-precision, slowing down program execution and wasting memory as each % required one extra byte to store. The integer variable type on Microsoft 6502 BASIC was really only designed for arrays because each element would take two bytes (versus four on single-precision).
* [[Shape table]]s were a slow alternative to [[bitmap]]s. No provision existed for mixing text and graphics, except for the limited "hardware split screen" of the Apple II (four lines of text at the bottom of the screen). Many graphics programs thus contained their own bitmap character generator routines. No provision was added in the 128 kB [[Apple IIe]] and [[Apple IIc]] models' BASIC interpreters for the new machines' extra memory and double-resolution graphics, or for the [[Apple IIgs|Apple II<small>GS</small>'s]] 16-color mode. ([[Beagle Bros]] offered machine-language workarounds for these problems.)
* The program was stored as a [[linked list]] of lines; a <code>[[GOTO]]</code> or <code>[[GOSUB]]</code> took [[Computational complexity theory|O(n) (linear) time]], and although Applesoft programs were not very long compared to today's software, on a 1&nbsp;MHz 6502 this could be a significant bottleneck. Large programs were often written with the most-used subroutines at the top of the program to reduce the processing time for <code>GOSUB</code> calls.
* No sound support aside from a <code>[[PEEK and POKE|PEEK]]</code> command that could be used to click the speaker, though one could also <code>PRINT</code> an ASCII [[bell character]] to sound the system alert [[beep (sound)|beep]]. The language was not fast enough to produce more than a baritone buzz from repeated clicks anyway. However, music spanning several octaves could be played by repeated calls to a machine-language tone generator.
-->
 
==Note==
<references/>
 
==Bibliografia==
* {{Cita testo|titolo=Alla scoperta dell'Applesoft|url=https://archive.org/details/allascopertadellapplesoft|autore=Frédéric Lévy|editore=Gruppo Editoriale Jackson|anno=1984|ISBN=88-7056-038-4}}
* {{Cita testo|titolo=La pratica dell'Apple – La grafica - Il sistema Apple - Il BASIC Applesoft|url=https://archive.org/details/lapraticadellapple|autore=Nicole Bréaud-Pouliquen|editore=Gruppo Editoriale Jackson|anno=1983|ISBN=88-7056-145-3}}
 
==Voci correlate==
* [[Integer BASICApple]]
* [[Microsoft BASIC]]
 
==Collegamenti esterni==
* [{{cita web|http://www.landsnail.com/a2ref.htm |Guida del programmatore dell'Applesoft II]}}
 
{{Portale|informatica}}
 
[[Categoria:BASIC]]