Skip to content

kempedron/KL

Repository files navigation

🟦 kl — простой интерпретируемый язык

Минималистичный язык программирования с поддержкой типов, функций и ввода-вывода.


📦 Запуск

./kl <файл.k>

📋 Синтаксис

Общие правила

  • Каждая инструкция заканчивается символом ;
  • Язык чувствителен к регистру

🔢 Типы данных

Тип Ключевое слово Пример
Целое int int x = 42;
Дробное float float pi = 3.14;
Строка string string name = "Kepr";
int age = 25;
float temperature = 36.6;
string greeting = "Привет, мир!";

🖨️ Вывод

print()

Выводит одно или несколько значений через пробел с переносом строки в конце.

print(age);
print("Привет,", name);

printf()

Форматированный вывод с флагами подстановки.

Флаг Тип
%s строка (string)
%d целое (int)
%f дробное (float)
string user = "Kepr";
int score = 100;
float avg = 95.5;

printf("Игрок: %s\n", user);
printf("Очки: %d\n", score);
printf("Средний балл: %f\n", avg);

Escape-последовательности в строках

Последовательность Значение
\n Новая строка
\t Табуляция
\\ Обратный слеш
\" Кавычка
print("Строка 1\nСтрока 2\n");

⌨️ Ввод пользователя

input() считывает значение с клавиатуры и записывает его в уже объявленную переменную.

string name = "";
input(name,"введите ваше имя: ");
printf("Привет, %s!\n", name);

⚠️ Переменная должна быть объявлена до вызова input().


⚙️ Функции

Объявление

func <имя>(<параметры>) {
    <тело функции>
}

Возврат значения

Для возврата результата используется return.

func add(a, b) {
    return a + b;
}

Вызов функции

int result = add(3, 4);
print(result);

Функция без параметров и возвращаемого значения

func HelloWorld() {
    print("Hello, World!\n");
}

HelloWorld();

Функция с параметрами без возврата

func greet(name) {
    printf("Привет, %s!\n", name);
}

greet("Kepr");

📝 Полный пример программы

string user = "Kepr";
int a = 10;
int b = 3;

func add(x, y) {
    return x + y;
}

func divide(x, y) {
    return x / y;
}

func greet(name) {
    printf("Добро пожаловать, %s!\n", name);
}

greet(user);

int sum = add(a, b);
printf("Сумма: %d\n", sum);

float result = divide(a, b);
printf("Деление: %f\n", result);

Вывод:

Добро пожаловать, Kepr!
Сумма: 13
Деление: 3.333333

➕ Арифметика

Поддерживаются стандартные операции в выражениях:

Оператор Описание
+ Сложение
- Вычитание
* Умножение
/ Деление
% Остаток от деления
int x = (10 + 2) * 3 % 7;

Язык kl — учебный проект. Исходный код интерпретатора написан на Go.

About

Minimal interpreted programming language written in Golang

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages