From 50cff83f5714f3b8dd556e9d528afc6cf0314821 Mon Sep 17 00:00:00 2001 From: TurtlePU Date: Mon, 7 Oct 2024 06:46:12 +0300 Subject: [PATCH] + Parser & GC projects --- docs/projects/gc.md | 11 +++++++++++ docs/projects/parsergen.md | 21 +++++++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/docs/projects/gc.md b/docs/projects/gc.md index efe07bc..20f85be 100644 --- a/docs/projects/gc.md +++ b/docs/projects/gc.md @@ -5,3 +5,14 @@ tags: --- # Уборка мусора + +В любом языке с автоматическим управлением памятью присутствует так называемый +уборщик мусора — программа, работающая параллельно с основной программой, +и освобождающая память процесса за счёт уборки объектов, более не используемых +основной программой. + +Благодаря тому, что задача уборки мусора неразрешима (по теореме +Райса-Успенского, в общем случае нельзя по коду программы понять, зайдёт ли она +в некоторую область памяти), данная отрасль постоянно развивается; Вам +предлагается принять в этом участие, изучив различные стратегии уборки мусора и +написав свой уборщик. diff --git a/docs/projects/parsergen.md b/docs/projects/parsergen.md index a1e25e9..200c142 100644 --- a/docs/projects/parsergen.md +++ b/docs/projects/parsergen.md @@ -5,3 +5,24 @@ tags: --- # Генераторы парсеров + +В самом общем случае, парсер — программа, производящая синтаксический +разбор текста по некоторой формальной грамматике. В настоящее время, в основном +парсеры используются: + +* компиляторами и интерпретаторами для получения синтаксического дерева + программ; +* серверами для извлечения информации о запросе от клиента; +* встроенными устройствами для общения по бинарным протоколам; +* ... + +Поскольку это задача классическая и хорошо изученная, существуют также и +всевозможные классические алгоритмы по написанию парсеров для своих языков. +Более того, задача это максимально техническая; для её автоматического решения +и были созданы так называемые генераторы парсеров, по поданной на вход +грамматике генерирующие парсер (либо выдающие сообщение об ошибке, что +сгенерировать парсер для данной грамматики невозможно). + +В данном проекте Вы узнаете, какие могут быть сложности при парсинге грамматик, +какие бывают классы грамматик (и классы сложности грамматик!), а также напишете +свой генератор парсеров.