Articulo de referencia

Sistema BÁSICO de Southampton

Southampton BASIC System ( SOBS ) fue un dialecto del lenguaje de programación BASIC desarrollado para y utilizado en computadoras de la serie ICT 1900 a finales de la década de...

Southampton BASIC System ( SOBS ) fue un dialecto del lenguaje de programación BASIC desarrollado para y utilizado en computadoras de la serie ICT 1900 a finales de la década de 1960 y principios de la de 1970; se implementó como un intérprete incremental de BASIC bajo el sistema operativo MINIMOP en la Universidad de Southampton [ 1 ] y también se ejecutó bajo MAXIMOP .

Se operaba desde un terminal de teletipo , aunque también se podían utilizar terminales CRT.

Características del lenguaje

Al igual que muchas implementaciones tempranas de BASIC, SOBS requería que las líneas tuvieran números de línea , tanto para permitir al usuario agregar nuevas líneas al programa en el lugar deseado como para servir de destino a las instrucciones `if` GOTOy ` GOSUBif`. Existía una RENUMBERfunción que permitía renumerar secciones del código, por defecto en incrementos de 10, para dejar más espacio en medio del programa.

A excepción de los números de línea, todos los valores numéricos se representaban internamente como números de coma flotante .

Declaraciones

El lenguaje tenía relativamente pocas instrucciones en comparación con los lenguajes de programación modernos:

Nótese en particular la falta de una WHILEinstrucción similar; FORera la única estructura de bucle disponible para los programadores.

Variables

Los nombres de las variables para valores numéricos eran una sola letra o una sola letra seguida de un solo dígito numérico, lo que permitía un total de 286 variables discretas. Se admitían cadenas de texto; los nombres de las variables para estas tenían la misma restricción, pero iban seguidos del £símbolo de almohadilla (#).

Funciones

Se proporcionó un número limitado de funciones numéricas, todas las cuales aceptaban un parámetro numérico:

La compatibilidad con cadenas era más limitada, con solo una función, LENque devolvía la longitud del parámetro de cadena. Las subcadenas se admitían con corchetes, por lo que A£[2,3]se referían a la subcadena de la cadena desde el segundo carácter hasta el tercer carácter inclusive, por lo que

10 SEA A £ = "FOO" 20 IMPRIMA A £ [ 2 , 3 ]

imprimiríaOO

Esta sintaxis también era compatible en el lado izquierdo de una asignación, por lo que

10 SEA A £ = "FOO" 20 SEA A £ [ 2 , 2 ] = "BAR" 30 IMPRIMA A £

imprimiríaFBARO

Matrices

El soporte para el manejo de matrices de datos era relativamente sólido, con MATinstrucciones capaces de leer una matriz completa DATAy realizar operaciones matriciales útiles como la suma , la resta y la multiplicación de matrices , así como encontrar la matriz inversa de una matriz cuadrada .

Ejemplo:

10 DIM A ( 3 , 3 ) 20 MAT READ A 30 DATA 1 , 1 , 2 , 1 , 0 , 2 , 0 , 2 , 1 40 DIM B ( 3 , 3 ) 50 MAT READ B 60 DATA 0 , 0 , 1 , 0 , 1 , 0 , 1 , 0 , 0 70 DIM C ( 3 , 3 ), D ( 3 , 3 ) 80 MAT C = A * B 90 MAT D = INV ( C ) 100 MAT PRINT D ,

La salida sería 2 2 1 1 -1 0 4 -3 -2

Depuración

SOBS tenía capacidades de depuración primitivas, limitadas principalmente a la TRACEinstrucción. TRACE ONharía que el intérprete imprimiera cada número de línea a medida que se ejecutaba.

Referencias

  1. Rees, MJ; Oppenheimer, AW (21 de enero de 1977). "SOBS: un sistema BASIC incremental" . Software: Practice and Experience . 7 (5). Wiley InterScience: 631–643 . doi : 10.1002/spe.4380070508 . S2CID 33989728. Recuperado el 18 de mayo de 2009 . {{cite journal}}: CS1 maint: servicio de archivado obsoleto ( enlace )