# BASIC

BASIC és una família de llenguatges de programació d'alt nivell. Concebut, en principi, com un llenguatge fàcil d'usar, es va implantar al sector dels ordinadors personals en els anys 80 i roman avui en dia amb variants bastant evolucionades. El nom "BASIC" prové de l'acrònim anglès Beginner's All-purpose Symbolic Instruction Code ('Codi Simbòlic d'Instruccions Multipropòsit per a Principiants').

## Història
### Antecedents

A principis de la dècada de 1960, els ordinadors eren cars i s'utilitzaven únicament per a propòsits especials, executant "una única tasca" alhora. Tot i això, durant el transcurs d'aquesta dècada, els preus van baixar fins al punt que fins i tot algunes petites empreses ja podien costejar-les. La velocitat de procés de les màquines es va incrementar al grau que sovint quedaven massa temps ocioses, perquè no hi havia prou tasques per a elles. Tot això va ser degut a la ràpida evolució del maquinari. Els llenguatges de programació d'aquells temps estaven dissenyats per a propòsits específics, com ara les màquines en què eren executats; per exemple per desenvolupar aplicacions càlcul o processament de fórmules es va dissenyar el llenguatge FORTRAN, mentre que per a la programació en administració o gestió d'informació es va desenvolupar específicament el COBOL.
Per tal d'incrementar el rendiment i amortitzar millor els costos (per reducció del temps ociós del processador), i sent que ja la velocitat de les màquines va començar a permetre-ho, es va proposar la idea d'executar més d'una tasca "simultàniament", va ser així que va sorgir el concepte de sistema de temps compartit, que va començar a guanyar molta popularitat. En sistemes d'aquest tipus, el temps de processament del processador central es dividia, i a cada usuari se li atorgava seqüencialment i cíclicament una petita porció o quota de temps de procés. Les màquines eren prou ràpides per provocar en els usuaris la il·lusió que disposaven de la funcionalitat de la màquina tot el temps per a ells ("pseudo-simultaneïtat" de processos). Aquesta distribució del temps de còmput entre els usuaris va reduir considerablement el cost de la computació, ja que una sola màquina podia ser compartida per nombrosos usuaris.

### Naixement i primers anys

El llenguatge BASIC original fou dissenyat l'any 1964 per John George Kemeny i Thomas Eugene Kurtz en el Dartmouth College, on va ser desenvolupat per un grup d'estudiants com ara Mary Kenneth Keller, coneguda per ser la primera dona llicenciada en Computer Science. En els anys següents el BASIC original de Kemeny y Kurtz fou conegut com a BASIC Dartmouth.
BASIC fou dissenyat per permetre als estudiants escriure programes emprant terminals d'ordinadors de temps compartit. Estava pensat per reduir en gran manera la complexitat dels llenguatges del moment, amb un nou disseny pensat per a usuaris a qui no els interessava tant la velocitat, sinó el fet de ser capaços de programar i usar la màquina sense gaires complicacions. Els dissenyadors del llenguatge volien que fos de domini públic, el que contribuí a fer que es disseminés ràpidament.
Els vuit principis de disseny de BASIC foren:
* Ser fàcil d'usar per als principiants
* Ser un llenguatge de propòsit general (no orientat)
* Permetre als experts afegir característiques avançades, conservant simple el llenguatge per als principiants
* Ser interactiu
* Proveir missatges d'error clars i amigables
* Respondre ràpid als programes petits
* No requerir un coneixement del maquinari de l'ordinador
* Protegir a l'usuari del sistema operatiu
Fou amb la introducció del Microordinador Altair 8800 l'any 1975 que BASIC es va expandir àmpliament. La majoria dels llenguatges de programació eren massa grans per ser allotjats a les petites memòries que la majoria de màquines de l'època tenien i amb el lent emmagatzemament que suposava la cinta de paper, i més tard, la cinta de casset (els discos magnètics encara no eren viables per a microordinadors) i la falta d'editors de text adequats, un llenguatge petit com BASIC era una bona opció. Una de les primeres versions a sortir fou Tiny BASIC, una implementació simple de BASIC escrita originalment pel Dr. Li-Chen Wang i portada més tard a la màquina Altair per Dennis Allison, a petició de Bob Albrecht, qui després fundà el Dr. Dobbs Journal (DDJ). El disseny de Tiny BASIC i el codi font complet foren publicats l'any 1976 al DDJ.
L'any 1975 Microsoft (llavors formada per dues persones: Bill Gates i Paul Allen) llançà Altair BASIC. Aleshores, van començar a aparèixer sota llicència, versions per a altres plataformes i milions de còpies i variants ràpidament estarien en ús. Es convertí en un dels llenguatges estàndard per l'Apple II. Pel 1979 Microsoft estava negociant amb diversos venedors de microordinadors, incloent-hi a IBM, a fi de llicenciar un intèrpret de BASIC per als seus ordinadors. Una versió es va incloure en els xips ROM dels PCs IBM, per PCs sense disquet; i en els que sí que tenien disquetera, el BASIC era iniciat automàticament si no es ficava cap disquet d'arrancada amb sistema operatiu.
El BASIC fou també el llenguatge preferit en els microordinadors europeus de la dècada dels vuitanta amb el ZX Spectrum, Amstrad CPC, MSX o el Commodore 64 i 128 amb la versió "Simon BASIC", fent a la vegada la funció d'intèrpret i de sistema operatiu primitiu, ja que venien implementats els dos en la ROM.
Posteriorment es va introduir el Visual Basic de Microsoft. Malgrat que aquest llenguatge utilitza pràcticament totes les paraules clau (sentències, estructures de control i funcions intrínseques) de BASIC, Visual Basic és més potent i evolucionat i ha esdevingut un dels llenguatges més utilitzats en la plataforma Windows. S'estima que entre el 70 i el 80% del total d'aplicacions comercials són programades en Visual Basic. Visual Basic utilitza un paradigma anomenat "orientació a esdeveniments" (no és orientat a objectes). Visual Basic for Applications (VBA) fou afegit a Microsoft Excel 5.0 l'any 1993 i a Microsoft Office l'any 1997. Windows 98 va incloure un intèrpret de VBScript. La versió més recent de Visual Basic s'anomena VB.NET. Per altra banda, la suite OpenOffice.org inclou una variant de BASIC.

## Programa d'exemple

Aquest programa escriu "Hola, món!" al dispositiu de sortida per defecte (habitualment el monitor).
La instrucció "NEW" buida la memòria. Qualsevol línia que comenci amb un número es guarda com a part d'un programa i s'executarà segons l'ordre relatiu que marqui el número. "RUN" executa el programa que hi ha en aquell moment a la memòria.
BASIC executa les línies de codi per ordre. Escrivint això:
El resultat serà:
BASIC pot acceptar comandaments directes llevant la numeració de qualsevol línia de codi. El mateix programa Hola, món! es pot passar directament de la següent forma:
L'execució és immediata sense necessitat de l'ordre "RUN", però el programa no queda desat en memòria.
Es pot passar una sèrie d'ordres en la mateixa línia separant-les per dos punts:

## Comandaments més usats
### LET

Fa que la seqüència de l'esquerra agafi el valor de l'operació de la dreta.
       Exemple:
Això fa que "A" agafi el valor "5". El comandament LET ben aviat va passar a ser implícit en moltes versions de BASIC i, per tant, la instrucció anterior va poder introduir-se així:
       Exemple:

### PRINT

Mostra al monitor un valor o una cadena.
       Exemple:
Això mostra al monitor: 2+3=5

### INPUT

Introdueix dades.
       Exemple:
Demana un valor i el suma en pantalla amb "A".

### IF/THEN

Si la condició definida després de la comanda IF és certa fa l'acció especificada a continuació del mot THEN.
       Exemple:
Si es compleix la igualtat el programa acaba, si no, continua.

### GOTO

Salta a la línia indicada
       Exemple:
Torna a demanar un número.

### Programa exemple sencer i sortida
## Disponibilitat i variants del llenguatge

BASIC està disponible per a gairebé totes les plataformes i sistemes operatius existents. Una implementació gratuïta que compleix amb estàndards i és multiplataforma és Bywater BASIC (bwBASIC). L'intèrpret està escrit en C i ve sota la llicència GNU. Està dissenyat per a interfície de text o consola (no gràfica), no inclou suport per crear interfícies gràfiques d'usuari (GUI's, Graphical User Interface). Hi ha un BASIC gratuït que si inclou suport per a GUI, és similar a Visual Basic i s'executa a Windows i GNU/Linux, és Phoenix Object BASIC.
Les versions d'intèrprets/compiladors més coneguts són la línia de productes Quick BASIC i QBASIC, aquest últim és només intèrpret, tots dos són de Microsoft. Actualment ho és el modern Visual BASIC, que Microsoft ha intentat mantenir almenys mínimament compatible amb fins i tot les primeres versions dels seus BASIC (en realitat és escassament compatible), si bé existeix FreeBASIC que és un compilador lliure, compatible amb sintaxi amb QBASIC/QuickBASIC.
Altres versions comercials inclouen PowerBASIC de PowerBASIC, PureBasic de Fantaisie Software, així com TrueBASIC de TrueBASIC, que compleix amb els últims estàndards oficials de BASIC. (True BASIC Inc. va ser fundada pels creadors originals de Dartmouth BASIC.)
REALbasic és una variant disponible per a Mac OS Classic, Mac OS X, Microsoft Windows i GNU/Linux, comercialitzada pels actuals propietaris de Rapid-Q, una altra implementació inicialment lliure de BASIC actualment abandonada. Una versió d'un dialecte simple de BASIC per a la parrot virtual machine mostra com s'implementa un intèrpret de BASIC en un llenguatge similar a l'assemblador. SmallBASIC és un dialecte que executa en moltes plataformes (Win32, DOS, GNU/Linux i PalmOS) i ve sota la llicència GNU (GPL).
Hi ha moltes implementacions de BASIC freeware o GNU, com ara BCX, YaBasic, HBasic, XBasic, Gambas o Just BASIC, entre d'altres.

## Llegat

La omnipresencia dels intèrprets BASIC als ordinadors personals era tal que els llibres de text van incloure una vegada exercicis senzills "Proveu-ho en BASIC" que animaven els estudiants a experimentar amb conceptes matemàtics i computacionals a l'aula o als ordinadors domèstics. Les revistes d'informàtica populars de l'època incloïen normalment programes d'escriptura.
L'escriptor futurista i de ciència-ficció David Brin va plorar la pèrdua de l'omnipresent BASIC en un article del Salon del 2006 com ho han fet altres que van utilitzar per primera vegada els ordinadors durant aquesta època. Al seu torn, l'article va demanar a Microsoft que desenvolupés i alliberés Small Basic; també va inspirar projectes similars com Basic-256. Dartmouth va celebrar una celebració del 50è aniversari de BASIC l'1 de maig de 2014, com altres organitzacions; almenys una organització de programadors de VBA va organitzar una celebració del 35è aniversari el 1999.
El Dartmouth College va celebrar el 50è aniversari del llenguatge BASIC amb una jornada d'actes el 30 d'abril de 2014. Per a l'esdeveniment es va produir un curtmetratge documental.

## Referències

* ↑ Kemeny, John G.; Kurtz, Thomas E. Basic: a manual for BASIC, the elementary algebraic language designed for use with the Dartmouth Time Sharing System (en anglès). 1st. Hanover, N.H.: Dartmouth College Computation Center, 1964.
* ↑ Alfred, Randy. «1 maig 1964: First Basic Program Runs». Wired, 05-01-2008.
* ↑ Gürer, Denise «Pioneering women in computer science». ACM SIGCSE Bulletin, 34, 2, 01-06-2002, pàg. 175–180. DOI: 10.1145/543812.543853. ISSN: 0097-8418.
* ↑ Head, Jennifer A «Veiled Figures: Pioneering Women Religious in the Sciences». Studies: An Irish Quarterly Review, 107, 427, 2018, pàg. 293–301. ISSN: 2565-6570.
* ↑ «We have a BASIC». New Mexico Museum of Natural History and Science. Arxivat de l'original el 30 novembre 2012.
* ↑ Brin, David. «Why Johnny Can't Code». Salon, 14-09-2006. Arxivat de l'original el September 18, 2013. [Consulta: 19 juny 2017].
* ↑ «Small Basic». Microsoft Developer Network. Arxivat de l'original el March 17, 2014. [Consulta: 19 juny 2017].
* ↑ «BASIC-256 homepage». «Check out "Why Johnny Can't Code," the article that inspired BASIC-256.»
* ↑ «Dartmouth plans celebration for 50th anniversary of BASIC computer language». , 28-04-2014. Arxivat de juny 20, 2017, a Wayback Machine.
* ↑ «50th anniversary of BASIC – Google Search». Google.
* ↑ «BASIC at 50 – Event Schedule» (en anglès). Dartmouth College. [Consulta: 14 juny 2017].
* ↑ «BASIC at 50» (en anglès). Dartmouth College. [Consulta: 14 juny 2017].

## Bibliografia

* KEMENY, J.G.; T.E. KURTZ. Structured BASIC programming. New York, USA: John Wiley & Sons, 1986.
* Bennet, P. Lientz. A comparative evaluation of versions of BASIC. New York, USA: ACM, 1976, p. 175-181.
* Gottfries, Byron S. Teoría y problemas de Programación BASIC. traducción, Guillermo Caro Murillo, Jesús Villamizar Herrera. 2a. ed.. Buenos Aires; Bogotá: McGraw-Hill, 1984, p. 278 p..
* Kemeny, John G.; Thomas E. Kurtz. Programación BASIC. México: Cecsa, 1984, p. 432 p..
* Finkel, Leroy; Jerald R. Brown. Programación de archivos de datos en BASIC. México; Argentina: Limusa, 1986, p. 361 p.. «(Series Instrucción Programada Limusa)»
* Petroutsos, Evangelos. Visual Basic 6. 1a ed.. Anaya Multimedia, 1999, p. 864 p..
* Dobson, Rick. Programación De Microsoft Sql Server 2000 Con Microsoft Visual Basic .net. 1a ed.. McGraw-Hill, 2002, p. 664 p..
* Halvorson, Michael. Visual Basic 2008. 1a ed.. Anaya Multimedia, 2008, p. 656 p..

## Vegeu també

* LSE (llenguatge)
* DarkBASIC
* FreeBASIC
* QBasic
* Sinclair BASIC
* Visual Basic
* Turbo Basic