Articulo de referencia

Vilnius BÁSICO

Vilnius BASIC en BK-0010-01 Vilnius BASIC , a veces conocido como BK BASIC , es un dialecto del lenguaje de programación BASIC que se ejecuta en las computadoras Elektronika BK-...

Vilnius BASIC en BK-0010-01

Vilnius BASIC , a veces conocido como BK BASIC , es un dialecto del lenguaje de programación BASIC que se ejecuta en las computadoras Elektronika BK-0010-01/BK-0011M y UKNC . Fue desarrollado en la Universidad de Vilnius , ubicada en Lituania , que en ese momento era una república de la Unión Soviética .

A diferencia de la mayoría de los dialectos de BASIC para microcomputadoras de la época, que eran intérpretes , Vilnius BASIC era un lenguaje de compilación y ejecuciónRUN que compilaba el código fuente cuando el usuario introducía el comando. Por lo demás, era similar a GW-BASIC y MSX BASIC en estilo y en la mayoría de las funciones, aunque carecía de algunos de los comandos multimedia que se encuentran en MSX. Una rareza era que no permitía más de una instrucción en una sola línea, una característica que normalmente se implementaba utilizando dos puntos. También carecía de la capacidad de abrir más de un archivo de datos a la vez.

Solo la versión UKNC tenía un editor de pantalla completa ; las versiones de las máquinas de la serie 0010 usaban un editor de línea . Las características dependientes de la máquina , como los operadores gráficos, los parámetros y PEEK/POKElas direcciones, también eran diferentes entre las máquinas.

Descripción

Edición de programas

A diferencia de la mayoría de los dialectos BASIC de la época, Vilnius BASIC era un sistema de compilación y ejecución , no un intérprete . Cuando el usuario teclea RUN, el compilador lee el código y produce un código ejecutable enhebrado que luego ejecuta. Sin embargo, este detalle era en gran medida invisible para el usuario, ya que el sistema aún permitía escribir sentencias sin un número de línea para el modo directo (inmediato) , o con un número para el modo indirecto, en cuyo caso la nueva línea se añadía al programa o reemplazaba la línea con el mismo número si ya existía.

A finales de los años 70, la mayoría de los dialectos de microcomputadoras ofrecían un editor de pantalla completa, en el que el usuario podía usar las teclas del cursor para moverse por el programa y escribir cambios en cualquier línea de código visible. Los sistemas Electronica emulaban un PDP-11 , máquinas que se habían construido en la era anterior a que los terminales de computadora direccionables por cursor estuvieran ampliamente disponibles y, por lo tanto, conservaban el estilo antiguo del editor de líneas . En estos sistemas, se muestra un mensaje que permite al usuario escribir una línea de código o recuperar una línea escrita previamente y luego editarla en el lugar.

Comandos y declaraciones

La lista de palabras clave admitidas en Vilnius se puede separar en dos grupos: las que solo se pueden utilizar en modo directo y las que pueden ser directas o indirectas.

Los primeros, conocidos como comandos, incluían los comunes CONT, LIST, NEW, RUN. CLOAD and CSAVEcargar y guardar programas en una cinta de casete . AUTOactivaba la entrada automática de números de línea, RENUMrenumeraba las líneas en el programa actual y DELETEeliminaba rangos de líneas usando el mismo formato "a" que LIST, por ejemplo, DELETE -200eliminaría todo desde el inicio del programa hasta una línea incluida 200.

Los primitivos de Vilnius eran similares a otros BASIC de la época y admitían la mayoría de las sentencias elementales como DATA, DEF FN, DIM, END, FOR..TO..STEP..NEXT , GOSUB , GOTO , IF..THEN con un ELSE opcional, INPUT, (opcional) LET, LIST, PRINT, ON...GOTO y ON...GOSUB, READ, REM , RESTORE, RETURN , STOP . A diferencia de la mayoría de los dialectos, Vilnius no permitía más de una sentencia por línea.

Variables numéricas, operadores y funciones

Como en la mayoría de los dialectos, los nombres de las variables debían comenzar con una letra y podían ir seguidos de más letras o dígitos. Los nombres de las variables podían tener cualquier longitud, pero solo se almacenaban o se comparaban los dos primeros caracteres, lo que significa que al escribirlos PRT001=1a continuación PR=5se obtenía una única variable en la memoria conocida como PR con el valor 5.

El BASIC de Vilnius tenía cuatro tipos de datos básicos: cadenas, números de punto flotante de precisión simple y doble y números enteros. A menos que se indicara lo contrario, se suponía que las variables eran de precisión doble, se almacenaban en ocho bytes y proporcionaban unos 17 dígitos de precisión. A modo de comparación, la mayoría de los dialectos MS utilizaban un formato de 5 bytes para el punto flotante. Si !se añadía un sufijo al nombre de la variable, el valor se almacenaba en precisión simple utilizando cuatro bytes con unos 7 dígitos de precisión. %especificaba un número entero, utilizando una única palabra de 16 bits para almacenar valores entre -32768 y +32767. Si se asignaba un valor con mayor precisión a una variable con menor, cualquier exceso simplemente se descartaba; A%=1.5dará como resultado que A% tenga el valor 1.

Las constantes numéricas en el código fuente también se podían especificar como un tipo particular utilizando los mismos indicadores; 50%almacenarían la constante como un entero, 0.05!o 5E-02almacenarían un valor de precisión simple 0.05, y 0.05/o 5D-02almacenarían el mismo valor en el formato de precisión doble predeterminado. Vilnius también tenía la capacidad adicional de permitir que las constantes numéricas se escribieran como cadenas de caracteres binarios, octales o hexadecimales , anteponiendo la cadena con & y una sola letra que indicara el tipo, B, O, H. Por ejemplo, convertiría la cadena hexadecimal H9A8B al valor decimal equivalente 39563 y lo almacenaría en A. A=&H9A8B

Los operadores para valores numéricos incluían +, -, *, /, ^la suma \para la división de enteros y MODpara el resto. Por lo tanto, 5\2devuelve 2, mientras que 5 MOD 2devuelve 1. Las funciones numéricas incluyen el operador estándar ABS, ATN, COS, EXP, INT, LOG, RND, SGN, SIN, SQR, TAN. También incluía el FIXoperador , que es similar a INTpero siempre trunca hacia cero, de modo que FIX(-1.5)devuelve -1 en lugar de -2 como INT.

Además de PEEK y POKE , que devolvían valores de 16 bits, el sistema también ofrecía OUT and INP, que eran similares pero aplicaban una máscara de bits a los valores para permitir que se establecieran o borraran bits individuales. [1] CLS limpiaba la pantalla. Las funciones del sistema incluyen FREque devolvía la cantidad de memoria libre y TABque se movía a la columna dada. AT (x,y)funcionaba de manera similar a TAB, pero movía el cursor a la ubicación X,Y dada.

Instrumentos de cuerda

El sufijo de una variable con $indicaba que era una cadena. Las funciones de cadena incluyen la función común ASC, CHR$, LEN, STR$, VAL. La STRING$función hace copias de una cadena de patrón dada de modo que A$=STRING$(17, "X")producirá una cadena de 17 X. [2] Solo se incluye una función de manipulación, MID$, que funciona como en MS, pero también se puede usar para reemplazar caracteres en una cadena existente, MID$(A$,1,1)="Y"reemplazará la primera letra de A$ con Y. INKEY$devuelve la tecla actual presionada en el teclado, si hay alguna. [3] + se usaba para la concatenación de cadenas , como en la mayoría de los dialectos.

Las HEX$, OCT$ and BIN$funciones devolvieron una cadena que codifica el valor pasado. Por ejemplo, PRINT HEX$(255)produce FF, mientras que PRINT BIN$(255)produce 0000000011111111.

Adiciones gráficas

Los sistemas Electronica incluían soporte para gráficos de computadora , y Vilnius BASIC incluía una serie de instrucciones para trabajar con gráficos. Una característica interesante de este sistema era que las coordenadas X,Y se escribían entre paréntesis. El sistema recordaba el último punto especificado, y las nuevas ubicaciones se podían indicar con @, por ejemplo, si el último comando de dibujo estaba en (100,100), se podía convertir el píxel en (105,105) al color 3 con PSET @(5,5),3. Había cinco valores de color, del 0 al 3.

Además de PSET, se podían dibujar líneas desde-hasta utilizando un par de coordenadas separadas por un signo menos, similar al comando LIST, por ejemplo LINE (100,100)-(120,120),3. En su forma más simple, CIRCLEtomó un par X,Y para el centro, un radio y un color, CIRCLE (120,120),30,1. También podía trazar arcos a partir de ángulos iniciales y finales dados en radianes, CIRCLE (120,120),30,1,0,1.5, y podía "comprimir" el eje vertical para producir una elipse, CIRCLE (100,100),20,1,,,0.4. PAINT (100,100),3,1realizó un relleno de inundación comenzando en (100,100), rellenando con el color 3 y moviéndose hacia afuera hasta que vio el color 1.

Por último, estaba el comando multipropósito DRAW. Este utilizaba una cadena que codificaba una serie de pasos de dibujo que podían producir una forma compleja en una sola línea de código. Los cuatro puntos cardinales se indicaban con U, D, L y R (arriba, abajo, izquierda, derecha). Los ángulos de 45 grados eran, en el sentido de las agujas del reloj, E (arriba-derecha), F, G y H (arriba-izquierda). Por ejemplo, DRAW "R20D20L20U20"produciría un cuadrado con lados de 20 píxeles de longitud comenzando en la última posición dibujada. Además de las direcciones, el comando M podía utilizarse para especificar coordenadas explícitas, como "M100,120", que no requería paréntesis. C cambia el color, B se mueve sin dibujar una línea y N restablece las coordenadas a lo que eran antes del comando DRAW.

Hay una única función gráfica, POINT(x,y), que devuelve el número del color de esa ubicación en la pantalla.

Programa de ejemplo

1 clase
2 PARA X%=30% A 1% PASO -2%
3 ? EN(X%,1%);"*"
4 ? EN(X%,20%);"*"
5 SIGUIENTE X%

Este programa limpia la pantalla, crea un bucle basado en valores enteros y luego utiliza el ATcomando para mover el cursor alternativamente entre los valores Y 1 y 20, imprimiendo (utilizando la forma corta de IMPRIMIR, ?) un asterisco en ambas posiciones. El resultado es una serie de 30 asteriscos en dos líneas horizontales.

Véase también

Referencias

Citas

  1. ^ Manual, pág. 46.
  2. ^ Manual, pág. 44.
  3. ^ Manual, pág. 45.

Bibliografía

  • Митрюхин, В. k.; Донской, А. Н.; Михайлов, А. B.; Немов, А. M. (1986). Программирование на БК-0010-01 [ Programación para BK-0010-01 ] (en ruso). versión 07.24.
  • "Ordenadores domésticos de Europa del Este". Alemania: HCM - Museo de los ordenadores domésticos.
Obtenido de "https://es.wikipedia.org/w/index.php?title=Vilnius_BASIC&oldid=1213264383"