NAL 0.1
Loading...
Searching...
No Matches
Руководство пользователя языка NAL

1. Введение

NAL (Natural Algorithmic Language) — язык со статической типизацией. Точка входа — функция int main().

Комментарии: // текст до конца строки.

2. Типы данных

Тип Значения Пример
int целые числа 0, -42, 127
float числа с плавающей точкой 3.14, -0.5
char один символ ‘'a’,'Z','9'\ilinebr </td> </tr> <tr class="markdownTableRowEven"> <td class="markdownTableBodyNone">bool\ilinebr </td> <td class="markdownTableBodyNone"> логические значения \ilinebr </td> <td class="markdownTableBodyNone">true,false\ilinebr </td> </tr> <tr class="markdownTableRowOdd"> <td class="markdownTableBodyNone">void` отсутствие значения (для функций)

3. Переменные

Объявление: let имя : тип = выражение? ;

let x: int = 5;
let y: float;
let flag: bool = true;

Присваивание: x = 10;

4. Массивы

Объявление массива: тип[]

Доступ к элементу: arr[индекс] (индекс — int)

let arr: int[];
arr[0] = 42;
let val: int = arr[0];

5. Функции

Определение:

fun имя(параметры): возвращаемый_тип {
тело
}

Параметр: имя: тип

Точка входа:

fun main(): void {
// ...
}

Пример:

fun add(a: int, b: int): int {
return a + b;
}

Вызов:

let result = add(3, 4);

6. Встроенные функции

Ввод

  • read_int(): int — прочитать целое число
  • read_float(): float — прочитать вещественное
  • read_char(): char — прочитать символ

Вывод

  • print_int(n: int): void
  • print_float(x: float): void
  • print_char(c: char): void

Пример:

let a: int = read_int();
print_int(a);

7. Операторы

Арифметические

+, -, *, /, %, унарные +, -

Сравнения

==, !=, <, >, <=, >= (результат — bool)

Логические

&&, ||, ! (операнды — bool)

Присваивания

=, *=, /=, %=, +=, -=

8. Управляющие конструкции

<tt>if</tt>

if (условие) {
// ...
} else {
// ...
}

<tt>while</tt>

while (условие) {
// ...
}

<tt>do-while</tt>

do {
// ...
} while (условие);

<tt>for</tt>

for (инициализация; условие; шаг) {
// ...
}

<tt>break</tt>, <tt>continue</tt>, <tt>return</tt>

9. Пример программы

fun main(): void {
let arr: int[];
arr[0] = 10;
arr[1] = 20;
let sum: int = arr[0] + arr[1];
print_int(sum);
}