XBasic
lenguaje de programación
Xbasic es un entorno de programación gratuito basado en BASIC, para Windows y GNU/Linux. Admite modos de consola y de GUI. Xbasic fue ideado en 1988 por Max Reason para su uso en un entorno Unix/m88k, y adaptado a Windows NT desde 1992. Xbasic es freeware desde 1999.
Diferencias con BASIC estándar, QBASIC y Visual Basic
editarSintaxis
editar- Xbasic es un Lenguaje de programación estructurado y no usa números de línea. Se aceptan características típicas del basic, como los sufijos de tipo de datos (que se amplían enormemente), pero se evita la verbosidad de instrucciones BASIC como "OPEN ... FOR ... AS ..." en favor de un esquema basado en funciones.
- Los programas Xbasic se dividen en tres secciones, al estilo de los programas Pascal: "PROLOG" (declaración de tipos), "Entry()" (función principal) y funciones adicionales.
Variables
editar- A diferencia de ANSI BASIC, pero dentro de lo que es habitual en los BASIC actuales, se aceptan variables con nombres de cualquier longitud.
- Las constantes se identifican mediante el prefijo "$$"
- Se
Operadores
editar- A diferencia de ANSI BASIC, QBASIC o Visual Basic, Xbasic posee operadores de desplazamiento para la aritmética binaria, lo que permite mayor compatibilidad con programación a nivel binario, como el cálculo de CRC. También distingue entre operadores lógicos y operadores de aritmética binaria.
- Xbasic utiliza operadores similares a los del lenguaje C:
- "**" significa "elevado a"
- "^" es sinónimo de XOR (no significa "elevado a").
- "&" es sinónimo de AND (no significa "concatenar").
- "=" no se usa en las cláusulas IF (o, al menos, eso se supone).
- "==" se usa (en lugar de "=") en las cláusulas IF
Ramificación y subrutinas
editar- Xbasic, como QBASIC y posteriores, es un lenguaje de programación estructurado.
- Permite SELECT, DO, DO WHILE y DO UNTIL aparte de GOTO
- Permite declaraciones de funciones mediante FUNCTION() aparte de GOSUB. A diferencia de QBASIC o Visual Basic, no diferencia entre funciones (que producen una salida) y subrutinas (que no la producen).
Instrucciones de entrada/salida
editar- Xbasic usa su propio conjunto de instrucciones de entrada/salida.
- INLINE$() sustituye a INPUT, INPUT$, e INPUT#
- INKEY$ e INP() no se permiten.
- Los números de archivo se indican con [número] (XBasic) en vez de #número (BASICA/QBASIC/Visual Basic).
- Xbasic usa numeroarchivo=OPEN(nombrearchivo$, constante_modo) en vez de OPEN Nombrearchivo$ FOR modo AS #numeroarchivo (BASICA/QBASIC/Visual Basic).
- Se usa READ [numeroarchivo] en vez de GET #numeroarchivo ((BASICA/QBASIC/Visual Basic).
- Aparte de lo anterior, XBASIC admite entornos gráficos, y por tanto puede aceptar entrada/salida a través de eventos generados por controles situados en ventanas, al estilo de Visual Basic
Resumen
editarLos siguientes cuadros comparan XBASIC con un Basic original no estructurado, utilizando el programa de ejemplo que aparece en el artículo de la Wikipedia sobre BASIC:
Ejemplo 1: BASIC original no estructurado (Applesoft BASIC)
10 INPUT "¿Cuál es su nombre? "; U$ 20 PRINT "Hola "; U$ 30 INPUT "¿Cuántos asteriscos desea? "; N 35 S$ = "" 40 FOR I = 1 TO N 50 S$ = S$ + "*" 55 NEXT I 60 PRINT S$ 70 INPUT "¿Desea más asteriscos? "; A$ 80 IF LEN(A$) = 0 GOTO 70 90 A$ = LEFT(A$, 1) 100 IF (A$ = "S") OR (A$ = "s") THEN GOTO 30 110 PRINT "Adiós "; 120 FOR I = 1 TO 200 130 PRINT U$; " "; 140 NEXT I 150 PRINT
Ejemplo 2: XBasic
FUNCTION Entry () NombreUsuario$=INLINE$( "¿Cuál es su nombre?") PRINT "Hola "; NombreUsuario$ DO NoAsteriscos=SBYTE(INLINE$ ("¿Cuántos asteriscos desea?")) Asteriscos$ = "" Asteriscos$ = CHR$('*', NoAsteriscos) PRINT Asteriscos$ DO Respuesta$=INLINE$ ("¿Desea más asteriscos?") LOOP UNTIL Respuesta$ <> "" LOOP WHILE UCASE$(LEFT$(Respuesta$, 1)) = "S" PRINT "Adiós"; FOR I = 1 TO 200 PRINT NombreUsuario$; " "; NEXT I PRINT END FUNCTION
Enlaces externos
editar- Páginas de asistencia sobre XBASIC
- Asistencia en español: lista xbasic_es
- Ayuda en inglés:
- Página original (no mantenida)
- Página oficial
- Category:XBasic Tareas implementadas en XBasic en rosettacode.org