-
Notifications
You must be signed in to change notification settings - Fork 0
Beginner es
English | 中文 | Русский | Español | Português | 繁體中文 | Deutsch
Esta página enseña los conceptos fundamentales y el flujo de control. No necesitas nada más que un binario
biocompilado y un editor de texto.
BioLang es un lenguaje orientado a flujos. En lugar de «todo es un objeto», aquí todo es un flujo — un flujo de solicitudes y respuestas. Cada operación que realizas es una solicitud que puede ser rechazada. Esto convierte el manejo de errores en una parte de primera clase del lenguaje, no en una idea de última hora.
Compila el intérprete:
make
# → bin/bioCrea hello.bio:
program main;
Main {
void exec() {
CIO::println("Hello, BioLang!");
}
}
Ejecútalo:
bin/bio hello.bio
# Hello, BioLang!Todo programa tiene el mismo esqueleto:
-
program main;— declara que este archivo es un programa principal (tiene un punto de entrada). -
Main { ... }— el flujo del programa principal. -
void exec() { ... }— el método que se ejecuta cuando arranca el programa.
Cinco tipos base:
| Tipo | Significado | Ejemplo |
|---|---|---|
int |
entero |
42, -7
|
float |
número de precisión simple | 3.14 |
double |
número de doble precisión | 3.14159265358979 |
string |
texto | "hello" |
char |
un solo carácter | 'x' |
Declaración de variables:
int age = 30;
string name = "BioLang";
double pi = 3.14159;
char grade = 'A';
Una const es una constante de solo lectura a nivel de programa:
const int SPEED = 9;
Cada llamada devuelve un resultado de solicitud que es o bien un éxito
(res) o bien un rechazo (ref). Este es el corazón de BioLang.
ALL result = add(3, 4); // a request result
Usa get para desenvolver un éxito y cause para obtener el motivo del
rechazo:
CIO::println(get add(3, 4)); // 7
CIO::println(cause div(1, 0)); // refused: division by zero
-
get x— el valor de una solicitud exitosa. -
cause x— el motivo por el que una solicitud fue rechazada. -
ALL x = ...— captura ambos;.resy.causetambién funcionan.
Aritmética: + - * / %
int a = 7 + 3; // 10
int b = a * 2; // 20
int c = b / 7; // 2 (integer division)
int d = b % 7; // 6 (remainder)
Incremento y decremento: i++, i--, además de las formas compuestas.
if (score >= 90) {
CIO::println("A");
} else if (score >= 60) {
CIO::println("B");
} else {
CIO::println("C");
}
int i = 0;
while (i < 5) {
CIO::println("i =", i);
i = i + 1;
}
for (int i = 0; i < 5; i = i + 1;) {
CIO::println("square", i, "=", i * i);
}
Observa el ; después de la expresión de actualización — las tres cláusulas
se separan con punto y coma y todo el encabezado termina con ;.
for (int i = 0; i < 10; i = i + 1;) {
if (i == 3) continue; // skip 3
if (i == 7) break; // stop at 7
CIO::println(i);
}
CIO::print("Enter your name: "); // no newline
string name = CIO::getln(); // read a line of text
CIO::println("Hello,", name); // prints: Hello, <name>
CIO es el flujo de consola: print, println, get, getln,
readInt, readNumber.
Un pequeño juego de adivinanzas (usa todo lo anterior):
program main;
Main {
void exec() {
const int SECRET = 7;
CIO::println("Guess the number (1-10)!");
for (int tries = 0; tries < 3; tries = tries + 1;) {
int guess = CIO::readInt();
if (guess == SECRET) {
CIO::println("Correct! You win.");
res; // success, end the program
} else if (guess < SECRET) {
CIO::println("Too low.");
} else {
CIO::println("Too high.");
}
}
CIO::println("Out of tries. The answer was", SECRET);
}
}
- Intermedio — flujos, clases, archivos, proyectos, hilos.
- Avanzado — referencias inteligentes, bibliotecas binarias, empaquetado, compilaciones multiplataforma.
- Ejemplos en el repositorio — 15 programas ejecutables y profusamente comentados.
- Home
- Beginner — first steps
- Intermediate — real usage
- Advanced — masterclass
- Build & Run
- Packaging
- Language-Reference
- BR-Model
- BTM-Model