Manual verificado — sintaxis de superficie de ALB · programas .alb
Manual de AdaLogic BASIC (ALB)
Sintaxis segura para estudiantes y herramientas de escritura de código — basada en el
analizador actual y las rutas del backend nativo. Todo lo siguiente es la hoja verificada.
Demos ejecutables: galería de Ejemplos y
docs/examples/*.alb.
Reglas generales
- Las palabras clave no distinguen mayúsculas.
- Los comentarios usan
--(no el clásicoREM). - La mayoría de los comandos son de estilo sentencia.
- Los arreglos son de base 1; el índice
0está fuera de rango. - Opcional pero recomendado:
VERSION 0.0.0.1justo después deBEGINetiqueta la versión de tu archivo fuente principal — increméntala con criterio a medida que el archivo crece. Esta etiqueta de versión es opcional. - Nunca uses palabras clave reservadas como identificadores ni nombres de campo.
Esqueleto de programa
BEGIN
VERSION 0.0.0.1
CREATE_WINDOW "ALB APP", 960, 640
ON TICK
-- lógica de actualización
END
ON PAINT
-- lógica de dibujo
END
LISTEN
END
Declaraciones
-- comentario
#MAX_ENTITIES = 64
LET score = 0
LET hp AS U16 = 100
LET name AS STRING = "ALB"
TYPE SmallHealth IS U16 RANGE 1 .. 255
TEMPORAL LET px AS I32 HISTORY 16 = 140
Tipos seguros para declaraciones
U0, U8, U16, U32, U64,
S32, I8–I64, F64/REAL,
PURE/RATIONAL, FLOAT2/FLOAT4,
MAT2–MAT4, BOOL, STRING/BINARY,
HW8/HW16/HW32.
Control de flujo
IF hp > 0 THEN
LET alive = TRUE
ELSE
LET alive = FALSE
END IF
WHILE hp > 0
LET hp = hp - 1
END WHILE
FOR i = 1 TO 10 THEN
PRINT i
END FOR
MATCH mode
0 => state = 1
ELSE => state = 99
END MATCH
MATCH usa brazos con => (no CASE).
SELECT usa CASE. Prefiere el IF multilínea para ramas con varias acciones.
Funciones y módulos
FUNCTION Twice(x AS U32) AS U32
RETURN x + x
END FUNCTION
FUNCTION PCT_X(percent AS S32) AS S32
RETURN CAST((S32(VIRTUAL_WIDTH) * percent) / 100 AS S32)
END FUNCTION
MODULE MathKit BEGIN
FUNCTION Add2(x AS U32) AS U32
RETURN x + 2
END FUNCTION
END MODULE
IMPORT MathKit
Arreglos (base 1)
STRICT cells[64] AS U16
LET cells[1] = 10
PARALLEL swarm[128]
x AS S32
y AS S32
hp AS U16
END PARALLEL
LET swarm[1].x = 100
SWAPPOP swarm[dead_slot], active_count
Gráficos
CREATE_WINDOW "Demo", 320, 200
CLEAR $050511
COLOR $FF3300
FILL RECT x, y, w, h
DRAW LINE x1, y1, x2, y2
TEXT 8, 8, "HELLO"
DRAW TEXT 8, 24, "SCORE: " | score_s
| y & concatenan cadenas (no son OR bit a bit).
Las operaciones bit a bit usan OR / XOR / AND.
Entrada y entorno
PRINT "HP=" | hp
INPUT "Name", player_name
LET pressed = KEY(4)
LET mx = MOUSE_X
LET vw = VIRTUAL_WIDTH
Usa KEY(code), no KEY_STATE(code).
Programas de ejemplo
hello.alb
BEGIN
VERSION 0.0.0.1
PRINT "Hello from AdaLogic BASIC!"
LISTEN
END
greeter.alb
BEGIN
VERSION 0.0.0.1
LET name AS STRING = "friend"
INPUT "What should we call you?", name
PRINT "Hello, " | name | "!"
LISTEN
END
count.alb
BEGIN
VERSION 0.0.0.1
FOR i = 1 TO 10 THEN
PRINT i
END FOR
LISTEN
END
window_paint.alb
BEGIN
VERSION 0.0.0.1
CREATE_WINDOW "ALB Square", 320, 240
ON PAINT
CLEAR $101018
COLOR $0B6BCB
FILL RECT 40, 40, 80, 80
COLOR $E8F1FB
TEXT 40, 140, "FILL RECT demo"
END
LISTEN
END
cells.alb
BEGIN
VERSION 0.0.0.1
STRICT cells[8] AS U16
FOR i = 1 TO 8 THEN
LET cells[i] = i * 10
END FOR
PRINT "cells[1]=" | cells[1]
LISTEN
END
Ruta de práctica
BEGIN/PRINT/LISTEN(VERSIONopcional)LETcon tipos +IF/FORINPUT+ concatenación con|CREATE_WINDOW+ON PAINT- Arreglos
STRICT(base 1) - Comparte a través de la Consola
Errores comunes
- Usa las formas de sentencia del Manual en lugar de inventar comandos estilo llamada.
- Prefiere
RETURN CAST(expr AS Type)para retornos con aritmética mixta. ASSERT(expr)es una aserción en tiempo de ejecución;ASSERT pred(...)es de la base de conocimiento lógica.- No nombres campos como
fill,draw,match, etc. - Más temas (firewall de red, Markov/neuronal, blit estático,
IMPORT_C) están documentados en este manual.
Documentos fuente
docs/LANGUAGE.md— visión generaldocs/GETTING_STARTED.md— primer programa- Galería de ejemplos — fuentes
.albpara ejecutar