Разработать язык программирования и реализовать на нём многопользовательский чат.
- Придумать синтаксис и семантику
- Написать компилятор или интерпретатор
- Обеспечить работу на выбранной платформе
- Пользователи могут подключаться к чату
- Отправлять сообщения всем участникам
- Видеть историю сообщений
- Выходить из чата
- Приоритет — AtomVM (Erlang-совместимая виртуальная машина): https://atomvm.org/
- Допустимы альтернативы (JVM, .NET, CPython, собственная VM и т.д.)
- Переменные и типы данных
- Условные конструкции
- Циклы или рекурсию
- Функции/процедуры
- Работу с коллекциями (списки, массивы, словари)
Дополнительные фишки будут плюсом
- Добавление пользователя
- Отправка сообщения всем участникам
- Просмотр последних N сообщений (история)
- Удаление пользователя (выход из чата)
| Критерий | Баллы | Описание |
|---|---|---|
| Работоспособность | 5 | Код запускается и выполняет базовые функции чата |
| Дизайн языка | 5 | Синтаксис логичен, выразителен, удобен |
| Архитектура | 5 | Использование процессов/акторов, продуманность структуры |
| Качество кода | 3 | Читаемость, обработка ошибок |
| Креативность | 2 | Нестандартные решения, дополнительные фичи |
Максимальный балл: 20
- Комнаты / приватные сообщения
- Таймстемпы сообщений
- Имена пользователей
- Сохранение истории между сессиями
- Визуальный интерфейс (консольный или графический)
- Команды (/help, /kick, /clear)
- Авторизация пользователей
- Исходный код языка (компилятор/интерпретатор)
- Исходный код чата на этом языке
- Инструкция по запуску (1–2 абзаца)
- Краткое описание языка (синтаксис, особенности)
Форкайте репозиторий -> добавляете директорию с названием вашего языка и выгружаете в нее проект -> делаете pull request
Дата и время: 20 июля
5000 RUB
По всем вопросам: @k1ngmang (telegram)
Удачи!