docs: обновлён файл README.md

This commit is contained in:
2026-01-02 23:27:37 +03:00
committed by GitFlic
parent caf8fe074b
commit 2cf3540621

150
README.md
View File

@@ -1,117 +1,65 @@
# tverd-plus-tokenizer
# Программное изделие «Ъ» (Проект «Твердь»)
## Техническое задание и описание программы
***
## С чего начать?
Для того, чтобы облегчить знакомство с сервисом GitFlic и первые шаги в нём, мы подготовили несколько рекомендаций.
Уже опытный пользователь? Отредактируйте данный **README** файл по своему усмотрению.
Не знаете что добавить в него? Перейдите в раздел `"Что должен содержать README файл"`, в котором описаны ключевые компоненты хорошего README файла.
---
## Добавьте свои файлы
Если вы решили начать разработку проекта с создания репозитория в нашем сервисе, тогда клонируйте себе данный репозиторий следующим образом:
### 1. Введение и область применения
Настоящий документ устанавливает требования к архитектуре, реализации и функционированию программного изделия (ПИ) «Ъ» (компонент «Токенизатор»).
* **Наименование:** Программный комплекс системного программирования «Ъ».
* **Область применения:** Создание детерминированного системного ПО, разработка вычислительных модулей для архитектур семейства «Эльбрус» и x86, требующих сертификации на отсутствие недекларированных возможностей (НДВ).
```
git clone https://gitflic.ru/project/shishka333/tverd-plus-tokenizer.git
cd tverd-plus-tokenizer
**добавьте первые файлы вашего проекта**
git add .
git commit -m "Первый коммит"
git push -u origin master
```
### 2. Основание для разработки
Разработка ведется на основании плана инициативной разработки инструментальных средств для языка функционально-процедурной парадигмы Ъ+ (низкоуровневый базис языка Ъ++) и в соответствии с требованиями к безопасной разработке (SDL).
Уже что-то делали в проекте? В таком случае инициализируйте гит-репозиторий в корне проекта и добавьте текущий репозиторий как удалённый репозиторий:
### 3. Технические требования
```
cd existing_folder
git init
git remote add origin https://gitflic.ru/project/shishka333/tverd-plus-tokenizer.git
git clone
**добавьте новые файлы**
git add .
git commit -m "Новый коммит"
git push -u origin master
```
***
#### 3.1. Требования к функциональным характеристикам
ПИ должно обеспечивать лексический анализ входных потоков данных и преобразование их в последовательность токенов на основе детерминированного конечного автомата (ДКА).
#### 3.2. Требования к входным данным
* **Кодировка:** Соответствие стандарту ISO/IEC 10646 (UTF-8).
* **Идентификаторы:** Поддержка последовательностей символов кириллического и латинского алфавитов.
* **Спецсимволы:** Обязательная префиксация сущностей для однозначной идентификации:
* `@` — идентификаторы переменных (объекты данных);
* `:` — идентификаторы меток управления (адресация переходов);
* `?` — операторы логического ветвления (предикаты).
# Что должен содержать README файл
#### 3.3. Классификация управляющих конструкций
| Тип токена | Символьное обозначение | Функциональное назначение |
| :--- | :--- | :--- |
| **Начало блока** | `Ъ+` | Открытие исполняемого контекста |
| **Конец блока** | `Ъ-` | Закрытие исполняемого контекста |
| **Оператор конвейера** | `|>` | Передача данных между функциями |
| **Оператор записи** | `<<` | Инструкция заполнения буфера данных |
#### 3.4. Требования к надежности и безопасности
1. **Прослеживаемость:** Обеспечение фиксации координат (строка, столбец) каждого токена для реализации сквозного аудита кода.
2. **Целостность данных:** Использование механизмов контроля границ и строгой типизации на этапе компиляции (статический анализ средствами языка Rust).
3. **Автономность:** Возможность сборки и функционирования компилятора в изолированной программной среде («Air-gap» разработка) без обращения к внешним сетям.
Прежде всего, стоит понимать, что `README.md` — это краткая документация. Это первое, что видит человек, который открывает репозиторий. Поэтому здесь важно дать достаточно информации о проекте и рассказать, что он из себя представляет.
Ключевая информация, которую должен содержать README файл:
### 4. Условия эксплуатации и программная совместимость
* **Язык реализации:** Rust (стандарт ISO/IEC), исключая использование стандартной библиотеки (`no_std`) для минимизации вектора атак и исключения скрытых вызовов ОС.
* **Зависимости:** Использование внешних динамических библиотек сторонних разработчиков не допускается.
* **Среда функционирования:** POSIX-совместимые операционные системы, а также Bare-metal окружения.
## Название и описание
Название проекта должно быть простым и понятным (чаще всего это одно слово).
Описание должно описывать основные функции проекта, включая его особенности и назначение.
Если у вашего проекта есть альтернативные проекты, то в описании можно перечислить ключевые отличия, которые выделяют ваш проект на фоне всех остальных.
### 5. Логическая структура (Алгоритм)
Лексический анализатор функционирует как однопроходный сканер. Игнорирование избыточных данных (комментариев) обеспечивается за счет распознавания парных ограничителей `<[` и `]>`. ПИ должно поддерживать рекурсивную вложенность блоков комментариев без жесткого ограничения уровня вложенности.
## Установка и настройка
Также в `README` файле рекомендуется перечислить необходимые инструкции для установки,
будь то использование пакетных менеджеров (например, `Homebrew` на MacOS или `apt` на Linux),
зависимости, которые могут понадобиться в ходе использования, а также шаги по их настройке.
---
## Совместная разработка
Можно добавить информацию о том, как принять участие в разработке вашего проекта, как стать непосредственным участником, правила оформления pull-requests и т.д.
### 6. Стадии и этапы разработки
## Контакты
Ссылки на внешние ресурсы, такие как документация, блог, страница проекта в социальных сетях, сообщество проекта и т.д.
#### 6.1. Разработка фронтенд-части
- [ ] Реализация модуля синтаксического разбора UTF-8 в режиме `no_std`.
- [ ] Описание грамматики языка в форме Бэкуса — Наура (EBNF).
- [ ] Разработка тестов для верификации кириллических идентификаторов.
## Статус проекта
В данном разделе рекомендуется указывать, на какой стадии находится проект, активно разрабатывается или находится в стадии застоя.
Если же проект готов и во всю используется, можно указывать актуальную версию, а также последние изменения, которые были сделаны с момента предыдущего релиза.
#### 6.2. Промежуточное представление и типизация
- [ ] Проектирование структур данных абстрактного синтаксического дерева (AST).
- [ ] Реализация механизмов статического вывода типов для констант.
***
# Полезные ссылки
***
## Работа с проектом
- [ ] [Как создать проект](https://docs.gitflic.ru/project/project_create)
- [ ] [Как импортировать проект](https://docs.gitflic.ru/project/import_base)
- [ ] [Запросы на слияние](https://docs.gitflic.ru/project/merge_request)
- [ ] [Зеркалирование проекта](https://docs.gitflic.ru/project/mirror)
- [ ] [Импортировать проект с GitLab](https://docs.gitflic.ru/project/import)
## Команды
- [ ] [Создание команды](https://docs.gitflic.ru/team/create)
- [ ] [Обзор команды](https://docs.gitflic.ru/team/view)
- [ ] [Настройка команды](https://docs.gitflic.ru/team/settings)
## Реестр пакетов
- [ ] [Реестр пакетов](https://docs.gitflic.ru/registry/package)
- [ ] [PyPi](https://docs.gitflic.ru/registry/pypi_registry)
- [ ] [Generic](https://docs.gitflic.ru/registry/generic_registry)
- [ ] [Maven](https://docs.gitflic.ru/registry/maven_registry)
- [ ] [Docker](https://docs.gitflic.ru/registry/docker)
## Компании
- [ ] [Создание компании](https://docs.gitflic.ru/company/create)
- [ ] [Обзор компании](https://docs.gitflic.ru/company/view)
- [ ] [Тарифы и оплата](https://docs.gitflic.ru/company/price)
- [ ] [Запуск агента компании](https://docs.gitflic.ru/company/saas_runner_setup)
## CI/CD
- [ ] [Что такое GitFlic CI/CD](https://docs.gitflic.ru/cicd/introduction)
- [ ] [Задача (Job)](https://docs.gitflic.ru/cicd/job)
- [ ] [Конвейер (pipeline)](https://docs.gitflic.ru/cicd/pipeline)
- [ ] [Агенты](https://docs.gitflic.ru/cicd/agent)
- [ ] [Справочник для .yaml файла](https://docs.gitflic.ru/cicd/gitflic-ci-yaml)
## API
- [ ] [Введение в GitFlic API](https://docs.gitflic.ru/api/intro)
- [ ] [Методы для администратора](https://docs.gitflic.ru/api/admin)
- [ ] [Получение access токена](https://docs.gitflic.ru/api/access-token)
## Панель администратора
- [ ] [Панель администратора](https://docs.gitflic.ru/admin_panel/intro)
- [ ] [Панель управления](https://docs.gitflic.ru/admin_panel/dashboard)
- [ ] [Настройка LDAP](https://docs.gitflic.ru/admin_panel/ldap)
- [ ] [Ключевые настройки](https://docs.gitflic.ru/admin_panel/settings)
## Общая информация
- [ ] [Глоссарий](https://docs.gitflic.ru/common/gloss)
- [ ] [Права доступа ролей](https://docs.gitflic.ru/common/manage_roles)
- [ ] [Вебхуки](https://docs.gitflic.ru/common/webhook)
#### 6.3. Генерация целевого кода и испытания
- [ ] Разработка модуля трансляции в стандарт ISO C99.
- [ ] Формирование интерфейса взаимодействия с целевыми компиляторами (LCC для «Эльбрус» и GCC для x86).
- [ ] Проведение приемо-сдаточных испытаний (ПСИ).