ESP32-S3 Bench Guide
ESP32‑S3 N16R8 벤치 가이드: 실시간 핀아웃, 강의, 시뮬레이터 및 벤치 로그
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Браузерный тренажёр языка 1С (BSL): пишешь код, исполняешь и отлаживаешь пошагово — без платформы 1С.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Браузерный тренажёр языка 1С (BSL): пишешь код, исполняешь и отлаживаешь пошагово — без платформы 1С. Инструмент для обучения и тренировки базового синтаксиса встроенного языка 1С (BSL). Сознательно реализуется только язык, а не платформа: никаких справочников, документов, регистров, форм, HTTP и криптографии. Зато то, что есть, можно наблюдать в исполнении — пошаговый отладчик показывает стек, переменные и их типы в реальном времени.README 전문 보기 ↗
Браузерный тренажёр языка 1С (BSL): пишешь код, исполняешь и отлаживаешь пошагово — без платформы 1С.
Демо · Концепция · Интеграция с книгами · Дорожная карта · Вклад
Инструмент для обучения и тренировки базового синтаксиса встроенного языка 1С (BSL). Сознательно реализуется только язык, а не платформа: никаких справочников, документов, регистров, форм, HTTP и криптографии. Зато то, что есть, можно наблюдать в исполнении — пошаговый отладчик показывает стек, переменные и их типы в реальном времени.
Педагогически тренажёр построен на принципе reading-first / PRIMM (Predict → Run → Investigate → Modify → Make): сначала читаем и предсказываем поведение чужого кода, потом меняем и пишем своё — в одной среде. Подробнее — в концепции.
Если/If),
регистронезависимость, строки с экранированием "", литералы дат '20240101', комментарии,
доступ к членам (.Метод(), [индекс]), Новый, Для Каждого, Попытка..Исключение.yield» (вариант A из концепции, §6); процедуры/функции,
стек вызовов, исключения (Попытка/ВызватьИсключение/ОписаниеОшибки),
watchdog от бесконечных циклов.Массив, Структура, Соответствие, СписокЗначений,
ТаблицаЗначений (колонки/строки/ячейки, Итог/НайтиСтроки/ВыгрузитьКолонку):
конструкторы, методы, индексы, Для Каждого. Ссылочная семантика, глубокая копия по
Знач и живая визуализация содержимого в панели переменных.Дата (значимый), литералы '…', арифметика (Дата ± секунды,
Дата − Дата), функции Дата/Год/Месяц/День/НачалоДня/ДобавитьМесяц/ТекущаяДата и др.Лев/Прав/Сред/СтрНайти/СтрЗаменить/
СтрРазделить/СтрСоединить…), числовые (Цел/Окр/Макс/Мин), преобразования, даты, прочее.Подробный скоуп MVP и что отложено — в концепции, §4.
npm install # установка зависимостей
npm run dev # дев-сервер Vite → http://localhost:5173
npm run verify # типы + инвариант каталога + тесты (то же гоняет CI)
npm run build # прод-сборка в dist/
Отдельные проверки:
npm run typecheck # tsc --noEmit по всем проектам
npm run test # vitest (ядро)
npm run check:catalog # схема + инвариант рантайм↔каталог + doctest примеров
Принцип из концепции: чужой парсер — свой интерпретатор. Самое ценное (исполнитель с отладкой) пишем сами, потому что пошаговая отладка почти бесплатна лишь тогда, когда сам управляешь циклом вычисления.
исходник BSL
│
┌─────────▼─────────┐
│ lexer → parser │ src/core/lexer, src/core/parser
└─────────┬─────────┘
│ AST
┌─────────▼─────────────────┐
│ генераторный интерпретатор │ src/core/interpreter
│ (yield на каждом операторе)│
└─────────┬─────────────────┘
│ вывод · переменные · события шага
┌──────────────────▼──────────────────┐
│ React-оболочка: Monaco + панели │ src/app
└─────────────────────────────────────┘
Каталог языка (catalog/*.yaml) ── единый источник правды ──▶ рантайм
├─▶ Monaco-провайдеры (автодополнение)
└─▶ панель-справочник (план)
Каталог и рантайм связаны инвариантом: функция в рантайме обязана иметь запись в каталоге
и наоборот — иначе падает сборка (npm run check:catalog). Примеры из каталога прогоняются
тем же интерпретатором как doctest, поэтому документация физически не расходится с поведением.
catalog/ Каталог языка (единый источник правды)
schema.json JSON-схема записи каталога
functions/*.yaml Глобальные функции (Сообщить, СокрЛП, ВРег, …)
methods/*.yaml Методы типов (Массив.Добавить, Структура.Вставить, …)
types/*.yaml Типы (Число, Строка, Массив, Структура, …)
src/
core/ Ядро (чистый TS, без фреймворка)
lexer/ Токены, двуязычные ключевые слова, лексер
parser/ AST + рекурсивный парсер
interpreter/ Значения, коллекции, область видимости, генераторный интерпретатор, функции/методы
debugger/ DebugSession — драйвер пошаговой отладки поверх генератора
index.ts Публичный API ядра: run(), Interpreter, DebugSession, типы
app/ React-оболочка: редактор + панели (вывод, переменные, стек)
scripts/
check-catalog.ts Валидация схемы + инвариант рантайм↔каталог + doctest
tests/ Тесты ядра (vitest)
docs/concept.md Концепция проекта
.github/workflows/ CI (проверки) и деплой на GitHub Pages
| Фаза | Содержание | Статус |
|---|---|---|
| 0 | Каталог языка (YAML) как единый источник правды | 🟢 готова |
| 1 | Лексер/парсер → генераторный интерпретатор с отладкой; Monaco; панель-справочник; runnable-примеры | 🟢 ядро MVP готово (язык с коллекциями/датами/исключениями, отладчик, подсветка, автодополнение/hover/справочник) |
| 2 | AI-тьютор поверх каталога (NL-поиск, объяснение ошибок) — Pages + тонкий прокси | ⚪ план |
| 3 | Встраиваемый компонент с event-API → обёртка под LMS (LTI/xAPI/SCORM) | ⚪ план |
TypeScript (strict) · React · Vite · Monaco Editor · Vitest · GitHub Actions → GitHub Pages.
Ядро (src/core) не зависит от фреймворка и переиспользуемо как встраиваемый компонент.
BSLexicon принимает листинги по URL — книга формирует ссылку, читатель кликает и сразу
видит готовый код в редакторе. Поддерживается ?code, ?gzcode (gzip для QR-кодов),
?source/?title (провенанс-баннер), ?embed=1 (режим iframe).
Подробности, примеры и готовые функции кодирования — в docs/book-integration/.
Новые функции и типы добавляются записью в catalog/ + реализацией в рантайме — см.
CONTRIBUTING.md. PR не пройдёт CI, пока каталог и рантайм не согласованы.
MIT © Miroshnichenko Alexandr