Доклад

Кросс-процедурный анализ потока управления

  • На русском языке
Презентация pdf

Комментарий Программного комитета:

Вы задумывались, как ReSharper анализирует ваш код?

В докладе Андрей с практическими примерами расскажет о том, как писать кросс-процедурные анализы кода и почему это теперь необходимо для самых разнообразных анализаторов C#-кода, неважно, написаны они на базе ReSharper, Roslyn или собственных моделях кода.

В качестве примера в общих чертах будет описано, как работает data-flow анализ в ReSharper и как на него повлияли локальные функции, появившиеся в C# 7. Будет итеративно рассмотрен алгоритм сбора данных для кросс-процедурных анализов без привязки к конкретным API Roslyn/ReSharper и дана оценка сложности построения модели по памяти/времени на каждом шаге. Андрей также приведет несколько примеров использования полученной модели вне рамок исходного примера.

Доклад будет наиболее интересен и полезен людям, заинтересованным в написании собственных анализаторов кода, в первую очередь для языка C#, однако принципы, которые будут показаны в докладе, применимы к любым языкам. Кроме того, итеративное усложнение, оценка и оптимизация алгоритма построения модели данных и работа с графом вызовов могут быть интересны как примеры практических алгоритмических задач.

  • #algorithms
  • #dataflow

Спикеры

Доклады