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 A£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
- ↑ 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 )
- Intérpretes BÁSICOS
- Lenguajes de programación ICL
- Ciencia y tecnología en Hampshire
- Universidad de Southampton
- Familia de lenguajes de programación BASIC