Vilna básico

La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la versión revisada el 25 de octubre de 2019; las comprobaciones requieren 5 ediciones .
Vilna básico
clase de idioma algorítmico, procedimental
tipo de ejecución Intérprete de tipo compilador
Apareció en 1985
extensión de archivo .BAS, COD
sistema de tipos flojo
sido influenciado MSX BÁSICO

BASIC Vilnius (también conocido como BASIC-86 ) es una implementación del lenguaje de programación BASIC para computadoras domésticas y escolares de 16 bits con procesadores de arquitectura PDP-11 . Desarrollado originalmente en el Centro de Computación de la Universidad Estatal de Vilnius (VTsKP VGU) en 1985 . Utilizado en computadoras: DVK , BK-0010/BK-0011 , UKNTS , Nemiga .

Aparentemente, BASIC Vilnius fue desarrollado bajo la fuerte influencia de MSX BASIC : los nombres de la mayoría de los operadores y funciones son los mismos, así como los códigos de los mensajes de error. Pero en Basic Vilnius no existe la posibilidad de escribir varias declaraciones en una línea, no hay operador PLAY, no hay operadores para configurar el tipo de variables DEFINT, DEFDBL, etc., así como algunas otras características.

En muchas computadoras que usaban Vilnius Basic, en lugar del dólar $ (código 36 10 = 24 16 ) hay un símbolo de moneda generalizado ¤ , y todas las variables de cadena y funciones se escriben a través de él, por ejemplo MID¤.

Rendimiento

Cuando el programa se inicia con el comando , el programa RUNse compila en un código intermedio, denominado código de subprocesos . El código enhebrado , de hecho, es una secuencia de direcciones de llamadas de subrutinas y datos para llamadas. En este caso, el traductor, antes de ejecutar el programa, traduce todos los números a representación interna y todas las expresiones a notación entre paréntesis inversos . Cuando se ejecuta un programa, el sistema de ejecución realiza llamadas a las subrutinas especificadas y les transfiere los datos preparados. Así, el código enhebrado es más rápido que la interpretación habitual (porque la ejecución del programa no tarda en "reconocer" los números y nombres de variables, en transformar expresiones, etc.), pero sí más lento que el programa en código máquina obtenido . en el compilador real de salida.

Una mirada al lenguaje

Un ejemplo de un programa sencillo:

10 CLS 20 IMPRIMIR "¡Hola a todos!" 30 FIN

El programa consta de un conjunto de líneas numeradas, cada línea contiene una instrucción. El trabajo de edición del texto del programa se lleva a cabo en el modo de línea de comando. Equipos:

Operadores de lenguaje:

BIP LLAMADA CÍRCULO BORRAR CERRAR CLS COLOR DATOS DEF DEF FN DEF USR DIM DIBUJO FIN PARA GOSUB GOTO SI ENTRADA CLAVE LET LÍNEA LOCALIZAR L IMPRIMIR ON ABRIR SALIR SIGUIENTE PINTAR POKE PREAJUSTE IMPRIMIR PSET LEER REM RESTAURAR VOLVER PANTALLA DETENER TROFF TRON

Es posible reducir los operadores a tres caracteres al ingresar (por ejemplo: CIRCLEpuede reducir a CIR), y algunos, cuyos dos primeros caracteres no coinciden con ningún otro operador, a dos ( POKE - PO). El comando PRINTpuede ser reemplazado por el signo ?. También es posible usar la construcción en cadena IF - THEN - ELSE IF, mientras se usan las abreviaturas TH, ELy ELIF. La longitud máxima de una línea del programa está limitada a 254 caracteres.

Funciones:

SQR SIN COS TAN ATN PI EXP LOG ABS FIJO INT SGN RND FRE CINT CSNG CDBL PEEK ENTRADA BIN¤ OCT¤ HEX¤ CHR¤ ASC LEN STRING¤ INKEY¤ STR¤ VAL MID¤ CSRLIN POS LPOS EOF PUNTO

Basic Vilnius incluye la capacidad de llamar a subrutinas en código de máquina . Para esto, se utiliza la construcción DEF USR. El código de máquina puede ser cargado por un comando BLOADo generado por un operador POKE.

Entre las deficiencias de este BASIC se encuentra la ausencia de una serie de comandos, por ejemplo, INSTRpara buscar la aparición de una cadena en una cadena, DECtraducir el número 16 al 10, herramientas para trabajar con errores durante la ejecución del programa, comandos para entrada carácter por carácter de un archivo.

Opciones

Basic Vilnius para BK-0010/BK-0011 ocupa 24 KB de ROM. Para ahorrar memoria, los textos de error no se almacenaron en la ROM; los errores no se dan en el texto, sino en los códigos, por ejemplo: "Error 2 en la línea 10".

Para BK-0010 con Focal en ROM, se creó una versión simplificada de Vilnius BASIC, de solo 9 KB de tamaño, cargada en RAM desde una grabadora (la primera versión, en 1985, la segunda, en 1987). No admitía diferentes tipos de números (solo reales de precisión simple), así como algunos de los operadores y funciones de la versión principal, pero se implementó el conjunto básico de funciones BÁSICAS. Al mismo tiempo, la versión del año 87 permitía el uso de varios operadores en una línea, así como la ortografía de operadores reducidos a una o varias primeras letras. Además, el uso de aritmética real de precisión simple aceleró el trabajo con números reales varias veces en relación con la versión para BK-0010-01 en ROM, lo que hizo que la versión en RAM fuera realmente una implementación BÁSICA extremadamente rápida cuando se trabaja con variables de este escribe.

Hay tres versiones de Basic Vilnius para UKNC: la versión en el casete ROM ocupa 24 KB, la versión para descargar a través de la red (red) - 28 KB, la versión en disco - 30 KB. Las implementaciones de disco y red difieren en la presencia de mensajes de error de texto. Las últimas versiones datan de septiembre de 1988.

La adaptación de BASIC Vilnius para la computadora Nemiga aparentemente se hizo más tarde y ya en Bielorrusia. El lenguaje en sí se distingue por la presencia de un operador PLAYque le permite reproducir sonidos y melodías.

Datos interesantes

Literatura

Notas

  1. M. Maksimov. ¿Los números aleatorios son aleatorios? - Revista “Ciencia y Vida”, N° 10, 1986.
  2. https://www.youtube.com/watch?v=UJZpngjvCD8&list=PLiWLTRSJ9VmvBQHIEDEX6q8urb6Eqikwd&index=15 Archivado el 21 de septiembre de 2016 en Wayback Machine UKSC: Suplemento de la prueba de gráficos que no son de juegos para PC de los 80

Enlaces