Skip to content

langdev-jam/plic

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 

Repository files navigation

plic (langjam)

Цель

Разработать язык программирования и реализовать на нём многопользовательский чат.


Что нужно сделать

1. Язык программирования

  • Придумать синтаксис и семантику
  • Написать компилятор или интерпретатор
  • Обеспечить работу на выбранной платформе

2. Проект на этом языке — Чат-комната

  • Пользователи могут подключаться к чату
  • Отправлять сообщения всем участникам
  • Видеть историю сообщений
  • Выходить из чата

Технические требования

Платформа

  • Приоритет — 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)


Удачи!

About

programming language implementation competition

Resources

Stars

10 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages