Está en la página 1de 4

Tiny BASIC

Ir a la navegaciónIr a la búsqueda
El Tiny BASIC es una versión muy sencilla y simplificada de un intérprete del
lenguaje de programación BASIC que originalmente fue programado en assembler y
cabía en tan solo 2 a 3 KB de memoria. Este pequeño tamaño resultaba muy útil en
los comienzos de los primeros microcomputadores, a mediados de los años 1970,
cuando el tamaño típico de la memoria RAM era de 4 a 8 KB.

Índice
1 Historia
2 Gramática del Tiny BASIC
3 Implementación en lenguaje interpretado
4 Véase también
5 Enlaces externos
Historia
El primer lenguaje consistió únicamente en un documento de estándares, escrito
principalmente por Dennis Allison, un miembro de la facultad de Ciencias de la
Computación en la Universidad de Stanford. Bob Albrecht, del Homebrew Computer
Club, lo instó a crear el estándar. Él había visto el lenguaje BASIC en
minicomputadores y creyó que encajaría perfectamente con las nuevas máquinas como
el Altair 8800 de MITS, que había sido lanzada en enero de 1975.

Bob y Dennis publicaron el documento de diseño en el boletín de noticias de


People's Computer Company. En diciembre de 1975, Dick Whipple y John Arnold crearon
un intérprete del lenguaje que requirió solamente 3K de RAM. Bob y Dennis
decidieron publicar esta versión y las correcciones a los documentos de diseño
originales en un boletín de noticias dedicado al Tiny BASIC, que llamaron "Dr.
Dobb's Journal of Tiny BASIC Calisthenics and Orthodontia". En las ediciones de
1976 fueron publicadas varias versiones del Tiny BASIC, incluyendo descripciones de
diseño y el código fuente completo.

Gramática del Tiny BASIC


La gramática es listada abajo en la notación de Backus-Naur. En el listado, un
asterisco ("*") denota cero o más del objeto a su izquierda - excepto para el
primer asterisco en la definición de "term", que es el operador de la
multiplicación; objetos del grupo de paréntesis; y un épsilon ("ε") significa el
conjunto vacío. Como es común en la notación de la gramática de lenguaje de
programación, la barra vertical ("|") distingue alternativas, al igual que ser
listado en líneas separadas. El símbolo "CR" denota un retorno del carro
(usualmente generado por la tecla "ENTER" de un teclado).

line ::= number statement CR | statement CR

statement ::= PRINT expr-list


IF expression relop expression THEN statement
GOTO expression
INPUT var-list
LET var = expression
GOSUB expression
RETURN
CLEAR
LIST
RUN
END

expr-list ::= (string|expression) (, (string|expression)* )


var-list ::= var (, var)*

expression ::= (+|-|ε) term ((+|-) term)*

term ::= factor ((*|/) factor)*

factor ::= var | number | (expression)

var ::= A | B | C .... | Y | Z

number ::= digit digit*

digit ::= 0 | 1 | 2 | 3 | ... | 8 | 9

relop ::= < (>|=|ε) | > (<|=|ε) | =

A BREAK from the console will interrupt execution of the program


Fuente: Dr. Dobb's Journal of Computer Calisthenics & Orthodontia, Volume 1, Number
1, 1976, p.9.

Implementación en lenguaje interpretado


Para la implementación, es usado un lenguaje interpretado (IL). Un interpretador
escrito en IL interpreta una línea de código de Tiny BASIC y la ejecuta. El IL
corre en una máquina abstracta, que interpreta el código IL. La idea de usar un
lenguaje interpretado viene desde Val Schorre (con el META II, 1964) y Glennie
(Syntax Machine). Ver también la máquina virtual, CLI.

La tabla siguiente da una lista parcial de los comandos del lenguaje interpretado
en la cual el interpretador Tiny BASIC está escrito. La longitud del programa
interpretador completo es de solamente 120 operaciones del IL. Así la opción de un
acercamiento interpretativo economizó en espacio de memoria y esfuerzo de
implementación, aunque los programas BASIC eran ejecutados algo lentamente. El CRLF
en la última línea simboliza un retorno del carro (CR) seguido por una nueva línea
(LF).

TST lbl, string Si string coincide con la línea BASIC, avanza el cursor sobre el
string y ejecuta la siguiente instrucción IL; si la prueba falla, ejecuta la
instrucción IL en la etiqueta lbl
CALL lbl Ejecuta la subrutina IL comenzando en lbl; guarda la dirección IL que
sigue la llamada (CALL) en el stack de control
RTN Retorna a la posición del IL especificada en el tope del stack de control
DONE Reporta un error de sintaxis si después de borrar los blancos a la izquierda,
el cursor no está posicionado para alcanzar un retorno del carro
JUMP lbl Continúa la especificación del IL en la etiqueta especificada
PRS Imprime caracteres del texto BASIC hasta pero no incluyendo el signo de
interrogación cerrado
PRN Imprime el número obtenido al hacer un POP en el stack de expresiones
SPC Inserta espacios para mover el cabezal de impresión a la próxima zona
NLINE Envía un CRLF a la impresora
Fuente: Dr. Dobb's Journal, Volume 1, Number 1, 1976, p.12.

Véase también
Palo Alto Tiny BASIC, por Li-Chen Wang
BASIC
Dr. Dobb's Journal
Copyleft
Enlaces externos
Tiny Basic User Manual and Experimenter's Kit – by Tom Pittman
Robert Uiterwyk's MICRO BASIC – A MC6800 tiny BASIC later sold with the SWTPC 6800
computer
MINOL – Erik Mueller's MINOL – Tiny BASIC with strings for Intel 8080
TBL – A similar IL to Tiny BASIC's, used in the first successful compilers for
PL/I, Fortran, etc, on limited memory minicomputers
M68000 Tiny BASIC – Based on Li-Chen Wang's Palo Alto Tiny BASIC, and published in
the 100th edition of Dr. Dobb's
Tiny BASIC – An implementation written in SmallBASIC
tinyBasic – An implementation written in iziBasic
Tiny BASIC – A live web version, ported to Run BASIC from iziBasic
TinyBasic – A port of Tom Pittman's TinyBasic C interpreter to Java, C# and Adobe
Flex. Includes live web versions.
TinyBasic – A modern implementation on a 16bit Microcontroller.
Control de autoridades
Proyectos WikimediaWd Datos: Q586622
Categorías: Lenguaje de programación BASICHistoria del software
Menú de navegación
No has accedido
Discusión
Contribuciones
Crear una cuenta
Acceder
ArtículoDiscusión
LeerEditarVer historial
Buscar
Buscar en Wikipedia
Portada
Portal de la comunidad
Actualidad
Cambios recientes
Páginas nuevas
Página aleatoria
Ayuda
Donaciones
Notificar un error
Herramientas
Lo que enlaza aquí
Cambios en enlazadas
Subir archivo
Páginas especiales
Enlace permanente
Información de la página
Citar esta página
Elemento de Wikidata
Imprimir/exportar
Crear un libro
Descargar como PDF
Versión para imprimir

En otros idiomas
English
‫فارسی‬
Italiano
日本語
Editar enlaces
Esta página se editó por última vez el 1 jul 2020 a las 11:15.
El texto está disponible bajo la Licencia Creative Commons Atribución Compartir
Igual 3.0; pueden aplicarse cláusulas adicionales. Al usar este sitio, usted acepta
nuestros términos de uso y nuestra política de privacidad.
Wikipedia® es una marca registrada de la Fundación Wikimedia, Inc., una
organización sin ánimo de lucro.
Política de privacidadAcerca de WikipediaLimitación de responsabilidadVersión para
móvilesDesarrolladoresEstadísticasDeclaración de cookiesWikimedia FoundationPowered
by MediaWiki

También podría gustarte