Skip to content

vityaman-edu/pdg-js

Repository files navigation

pdg-js

Program Dependence Graph for the TypeScript.

Лабораторная работа №1. Построение моделей программ

Язык программирования: TypeScript. Поведенческая модель программы: PDG - граф зависимостей программы.

Для выбранной пары язык-модель необходимо:

  1. Реализовать построение модели для программы на целевом языке. В случае сложного языка допускается построение модели только для одной функции (одного метода программы). Модель должна поддерживать ветвления, циклы, вложенные конструкции. При построении модели разрешается пользоваться только библиотеками парсинга или построения AST.

  2. Реализовать визуализацию построенной модели путем преобразования ее в стандартизированное графовое представление (например, в формат DOT).

  3. Реализовать отображение построенного графа либо во внешнем онлайн-визуализаторе, либо подключить библиотеку (Graphviz, в случае DOT) и отображать граф непосредственно из приложения.

  4. Подготовить набор тестовых программ на целевом языке, которые демонстрируют работоспособность разработанного построителя моделей.

Поддерживаемые конструкции языка

  1. Expression
  2. Literal 1. Null 2. Undefined 3. Boolean 4. Numeric 5. String
  3. Identifier
  4. BinaryExpression
  5. VariableDeclaration

Plan

  • while separate cond
  • for (decl; cond; step)
  • break and continue
  • Separate tests
  • Refresh on test choice
  • if {} else if {} else {}
  • Data dependencies
  • Merge Basic Blocks
  • Support exceptions
  • Fix split statements and condition
  • Support data dependencies from condition
  • Support data dependencies from string literal (TemplateSpan)
  • Fix Do While
  • Support function call

About

Program Dependence Graph for the TypeScript.

Resources

Stars

Watchers

Forks

Contributors 2

  •  
  •