Tiny BASIC

Tiny BASIC

El Tiny BASIC es una versión muy sencilla y simplificada de un interpretador para el 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 lo hizo invaluable en los comienzos de los primeros microcomputadores, a mediados de los años 1970, cuando el típico tamaño de la memoria RAM era de 4 a 8 KB.

Contenido

Historia

El lenguaje primero fue desarrollado solamente como un documento de estándares, escrito primariamente 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 BASIC en minicomputadores y sentía que sería la perfecta pareja para 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 interpretador para el 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

Enlaces externos


Wikimedia foundation. 2010.

Игры ⚽ Поможем сделать НИР

Mira otros diccionarios:

  • Tiny BASIC — is a dialect of the BASIC programming language that can fit into as little as 2 or 3 KB of memory. This small size made it invaluable in the early days of s (the mid 1970s), when typical memory size was 4 ndash;8 KB. History The language was… …   Wikipedia

  • BASIC — Información general Paradigma estructurado imperativo Apareció en 1964 Diseñado por John George Kemeny; Thomas Eugene Kurtz …   Wikipedia Español

  • Tiny — may refer to:* Tiny (car), a British cyclecar manufactured by Nanson, Barker Co at Esholt, Yorkshire between 1912 and 1915 * Tiny, Ontario, a township in south central Ontario, CanadaPeople: * Tiny Tim (musician) (1932 1996), American musician *… …   Wikipedia

  • BASIC-256 — с …   Википедия

  • BASIC — This article is about the programming language. For the think tank, see British American Security Information Council. For the group of countries, see BASIC countries. For other uses, see Basic (disambiguation). BASIC Screenshot of Atari BASIC,… …   Wikipedia

  • Tiny programming language — Tiny is an extremely simple programming language used in computer science courses to teach compiler construction techniques to students. The language itself is so basic that it only includes reading of integer numbers, addition and subtraction… …   Wikipedia

  • Tiny Encryption Algorithm — TEA Zwei Feistel Runden (ein Zyklus) von TEA Entwickler Roger Needham, David Wheeler Veröffentlicht 1994 Schlüssellänge …   Deutsch Wikipedia

  • Tiny Encryption Algorithm — Infobox block cipher name = TEA caption = Two Feistel rounds (one cycle) of TEA designers = Roger Needham, David Wheeler publish date = 1994 derived from = derived to = XTEA key size = 128 bits block size = 64 bits structure = Feistel network… …   Wikipedia

  • Tiny Encryption Algorithm — En criptografía, el Tiny Encryption Algorithm (TEA) (Algoritmo Diminuto de Cifrado) es un algoritmo para el cifrado por bloques notable por su simplicidad de descripción e implementación (generalmente unas pocas líneas de código). Fue diseñado… …   Wikipedia Español

  • Dartmouth BASIC — BASIC Paradigm(s) imperative Appeared in 1964 Designed by John Kemeny, Thomas Kurtz Influenced by FORTRAN, ALGOL Influenced Cf …   Wikipedia

Compartir el artículo y extractos

Link directo
Do a right-click on the link above
and select “Copy Link”