Program Dependence Graph for the TypeScript.
Язык программирования: TypeScript. Поведенческая модель программы: PDG - граф зависимостей программы.
Для выбранной пары язык-модель необходимо:
-
Реализовать построение модели для программы на целевом языке. В случае сложного языка допускается построение модели только для одной функции (одного метода программы). Модель должна поддерживать ветвления, циклы, вложенные конструкции. При построении модели разрешается пользоваться только библиотеками парсинга или построения AST.
-
Реализовать визуализацию построенной модели путем преобразования ее в стандартизированное графовое представление (например, в формат DOT).
-
Реализовать отображение построенного графа либо во внешнем онлайн-визуализаторе, либо подключить библиотеку (Graphviz, в случае DOT) и отображать граф непосредственно из приложения.
-
Подготовить набор тестовых программ на целевом языке, которые демонстрируют работоспособность разработанного построителя моделей.
- Expression
- Literal 1. Null 2. Undefined 3. Boolean 4. Numeric 5. String
- Identifier
- BinaryExpression
- VariableDeclaration
-
whileseparate cond -
for (decl; cond; step) -
breakandcontinue - 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