-
Notifications
You must be signed in to change notification settings - Fork 0
Beginner de
English | 中文 | Русский | Español | Português | 繁體中文 | Deutsch
Diese Seite vermittelt die Kernkonzepte und den Kontrollfluss. Du brauchst nichts weiter als ein gebautes
bio-Binary und einen Texteditor.
BioLang ist eine streamorientierte Sprache. Statt „alles ist ein Objekt" gilt hier: alles ist ein Stream — ein Fluss von Anfragen und Antworten. Jede Operation, die du ausführst, ist eine Anfrage, die abgelehnt werden kann. Dadurch ist die Fehlerbehandlung ein erstklassiger Bestandteil der Sprache und kein nachträglicher Einfall.
Baue den Interpreter:
make
# → bin/bioErstelle hello.bio:
program main;
Main {
void exec() {
CIO::println("Hello, BioLang!");
}
}
Führe es aus:
bin/bio hello.bio
# Hello, BioLang!Jedes Programm hat dasselbe Grundgerüst:
-
program main;— deklariert, dass diese Datei ein Hauptprogramm ist (es hat einen Einstiegspunkt). -
Main { ... }— der Hauptprogramm-Stream. -
void exec() { ... }— die Methode, die beim Programmstart ausgeführt wird.
Fünf Basistypen:
| Typ | Bedeutung | Beispiel |
|---|---|---|
int |
Ganzzahl |
42, -7
|
float |
Zahl mit einfacher Genauigkeit | 3.14 |
double |
Zahl mit doppelter Genauigkeit | 3.14159265358979 |
string |
Text | "hello" |
char |
einzelnes Zeichen | 'x' |
Variablen deklarieren:
int age = 30;
string name = "BioLang";
double pi = 3.14159;
char grade = 'A';
Eine const ist eine schreibgeschützte Konstante auf Programmebene:
const int SPEED = 9;
Jeder Aufruf liefert ein Anfrageergebnis zurück, das entweder ein Erfolg
(res) oder eine Ablehnung (ref) ist. Das ist das Herzstück von BioLang.
ALL result = add(3, 4); // a request result
Mit get entpackst du einen Erfolg, mit cause erhältst du den
Ablehnungsgrund:
CIO::println(get add(3, 4)); // 7
CIO::println(cause div(1, 0)); // refused: division by zero
-
get x— der Wert einer erfolgreichen Anfrage. -
cause x— der Grund, warum eine Anfrage abgelehnt wurde. -
ALL x = ...— erfasst beides;.resund.causefunktionieren ebenfalls.
Arithmetik: + - * / %
int a = 7 + 3; // 10
int b = a * 2; // 20
int c = b / 7; // 2 (integer division)
int d = b % 7; // 6 (remainder)
Inkrement und Dekrement: i++, i--, plus zusammengesetzte Formen.
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);
}
Beachte das ; nach dem Update-Ausdruck — die drei Klauseln werden durch
Semikolons getrennt, und der gesamte Kopf endet mit ;.
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 ist der Konsolen-Stream: print, println, get, getln,
readInt, readNumber.
Ein kleines Ratespiel (nutzt alles oben Genannte):
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);
}
}
- Fortgeschrittene — Streams, Klassen, Dateien, Projekte, Threads.
- Experte — intelligente Referenzen, Binärbibliotheken, Paketierung, plattformübergreifende Builds.
- Beispiele im Repository — 15 ausführbare, ausführlich kommentierte Programme.
- Home
- Beginner — first steps
- Intermediate — real usage
- Advanced — masterclass
- Build & Run
- Packaging
- Language-Reference
- BR-Model
- BTM-Model