Tiny BASIC: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Messbot (discussione | contributi)
mNessun oggetto della modifica
 
(7 versioni intermedie di 6 utenti non mostrate)
Riga 19:
|sito_web =
}}
Il '''Tiny BASIC''' è un [[dialetto (informatica)|dialetto]] del [[linguaggio di programmazione]] [[BASIC]] che è stato sviluppato tra il [[1975]] ede il [[1976]] per i [[computer]] ada [[8 bit]] dell'epoca. Un suo punto di forza era la ridotta quantità di memoria occupata, variabile dai 2 ai 3  [[byte|kB]], un fattore molto importante in un periodo in cui gli elaboratori erano offerti con una dotazione di [[RAM]] che generalmente non superava i 4 kB. Da questo il nome ''Tiny'', {{lett|minuscolo}}.
 
==Sviluppo==
La struttura del linguaggio fu inizialmente teorizzata da [[Dennis Allison]], un membro della facoltà di [[informatica]] della [[Stanford University]], su richiesta di [[Bob Albrecht]], un membro dell'[[Homebrew Computer Club]], che aveva visto il BASIC sui [[minicomputer]] e pensava che tale linguaggio fosse perfetto per i nuovi computer quali l'[[Altair 8800]], che era stato presentato agli inizi del 1975.
 
Allison e Albretch pubblicarono la struttura del linguaggio sulla [[newsletter]] di ''[[People's Computer Company]]'', un'organizzazione dedita alla diffusione della cultura del computer come strumento per aiutare le persone.<ref>{{cita web|url=http://www.digibarn.com/collections/newsletters/peoples-computer/index.html|titolo=Informazioni sul People's Computer Company|accesso=18 febbraio 2011}}</ref> Nel mese di dicembre del 1975 Dick Whipple e John Arnold crearono un [[interprete (informatica)|interprete]] del linguaggio che richiedeva solo 3&nbsp;kB di RAM. Allison e Albretch decisero di pubblicare questo interprete e le correzioni apportate alla struttura originale del linguaggio in una newsletter chiamata "''Dr. Dobb's Journal of Tiny BASIC Calisthenics and Orthodontia"'', inseritapoi nelladivenuta la rivista "''[[Dr. Dobb's Journal"]]'' edita da [[Jim Warren]], un altro membro dell'Homebrew Computer Club.
 
La spinta a terminare ede a pubblicare il Tiny BASIC fu data dalla pubblicazione della famosa [[Lettera aperta agli hobbisti]] che un giovane [[Bill Gates]] scrisse per denunciare la crescente diffusione della pratica di copiare il software piuttosto che acquistarlo. La lettera era indirizzata genericamente a tutti gli appassionati di computer, ma in realtà era diretta principalmente proprio verso l'Homebrew Computer Club, un membro del quale aveva trafugato durante un tour di presentazione dell'Altair 8800 una copia dell'[[Altair BASIC]] e lo aveva poi ridistribuito agli altri membri.
 
Bill Gates, nella sua lettera, sosteneva che la [[pirateria informatica]] non solo non ripagava gli autori del software delle loro fatiche in termini di rientro economico ma scoraggiava anche i programmatori dal continuare a produrre software di qualità. Warren rispose a Gates dalle colonne di "''SIGPLAN Notices"'', la newsletter pubblicata da [[Association for Computing Machinery]] (ACM):
 
{{citazione|C'è una valida alternativa ai problemi del "furto" del software sollevati da Bill Gates nella sua rabbiosa lettera agli appassionati di computer. Quando il software è gratuito, o poco costoso, è più facile pagarlo che duplicarlo, così che non sia "rubato".|Jim Warren, "''SIGPLAN Notices"'' (luglio 1976)}}
 
Warren annunciava la disponibilità del Tiny BASIC, i cui sorgenti erano copiabili dalla rivista "''Dr. Dobb's Journal"'' oppure era possibile acquistarne una copia già pronta alla modica cifra di 5/10 dollari.
 
== Sintassi ==
La [[sintassi (informatica)|sintassi]] del Tiny BASIC è elencata qui sotto, in [[Backus-Naur Form|formato Backus-Naur]]. Nell'elenco un asterisco ("<kbd>*</kbd>") denota zero o più degli oggetti alla sua sinistra — tranne che per il primo asterisco nella definizione del "<kbd>termine</kbd>", che è il segno della moltiplicazione; le parentesi raggruppano gli oggetti; la lettera epsilon ("<kbd>ε</kbd>") indica un insieme vuoto. La barra verticale ("<kbd>|</kbd>") indica delle alternative, elencate su righe separate; il simbolo "<kbd>CR</kbd>" indica un carattere di [[Invio|ritorno carrello]]:
 
linea ::= numero istruzione CR | istruzione CR
Riga 71:
Un BREAK dal terminale interrompe l'esecuzione del programma
 
''Fonte: "Dr. Dobb's Journal of Computer Calisthenics & Orthodontia", Volume 1, Numero 1, 1976, pag. 9.''
 
==Implementazione==
Riga 77:
 
* <code>TST etichetta, stringa</code>: se "stringa" combacia con la linea BASIC, avanza il cursore oltre "stringa" ed esegue la prossima istruzione interpretata alla linea indicata da "etichetta", altrimenti esegue l'istruzione presente a "etichetta"
* <code>CALL etichetta</code>: esegue il codice presente a "etichetta"; salva l'indirizzo dell'istruzione dopo <code>CALL</code> nello [[pila (informatica)|stack]]
* <code>RTN</code>: riprende l'esecuzione dal punto specificato nel valore contenuto in cima allo stack;
* <code>JUMP etichetta</code>: continua l'esecuzione del programma dal punto indicato da "etichetta";
Riga 100:
* {{cita web|http://www.IttyBittyComputers.com/IttyBitty/TinyBasic/TBuserMan.htm|Manuale utente del Tiny BASIC}}
* {{cita web|http://www.IttyBittyComputers.com/IttyBitty/TinyBasic/TBEK.txt|Esempi di codice in Tiny BASIC}}
* [https://web.archive.org/web/20110107204656/http://www.swtpc.com/mholley/BASIC_2/Uiterwyk.htm Micro BASIC], una versione per [[Motorola 6800|MC6800]] venduta da Robert Uiterwyk con i computer [[SWTPC]] 6800
* [http://www.multicians.org/raf-tbl-definition.html Linguaggio TBL], un linguaggio che usa un interprete su macchina virtuale come il Tiny BASIC
* [http://members.shaw.ca/gbrandly/68ktinyb.html Il 68000 Tiny BASIC], versione per il [[Motorola 68000]] del Tiny BASIC, pubblicato sul 100° numero della rivista "Dr. Dobb's Journal"
* [http://www.aldweb.com/articles.php?lng=en&pg=7407 Tiny BASIC per Palm], implementazione del linguaggio scritta in [http://www.aldweb.com/articles.php?lng=en&pg=5350 iziBasic]
* [https://web.archive.org/web/20110715213426/http://www.runbasic.com/?_page=tinybasic.bas Tiny BASIC per web], una implementazione del Tiny BASIC scritto per girare su web in {{Collegamento interrotto|1=[http://www.runbasic.com/seaside/go/runbasic?_s=CPdbnQcuHfQqPOdy&_k=ufhcDZto Run BASIC] |data=marzo 2020 |bot=InternetArchiveBot }}
* [http://www.tinybasic.de Tiny BASIC per microcontrollori], una implementazione per i moderni [[microcontrollore|microcontrollori]] ad 8/16 bit
* [http://rosettacode.org/wiki/Category:Tiny_BASIC Category:Tiny BASIC] Attività implementate in Tiny BASIC in [http://rosettacode.org rosettacode.org]
* [http://rosettacode.org/wiki/Category:Palo_Alto_Tiny_BASIC Category:Palo Alto Tiny BASIC] Attività implementate in Palo Alto Tiny BASIC in [http://rosettacode.org rosettacode.org]
 
{{portale|informatica}}