Project

General

Profile

Task #4359

[cfg] Реализовать метод toConstraint()

Added by Sergey Smolov about 6 years ago. Updated almost 5 years ago.

Status:
Rejected
Priority:
Normal
Category:
-
Target version:
Start date:
07/16/2013
Due date:
% Done:

0%

Estimated time:
Detected in build:
svn
Published in build:

Description

Метод нужно реализовать в следующих классах: Substitution, Statement, BasicBlock, ControlFlowGraph.

History

#1

Updated by Igor Melnichenko about 6 years ago

Ты не мог бы описать семантику полей этих классов (или семантику классов в целом)?

#2

Updated by Sergey Smolov about 6 years ago

Во-первых, обновись до r38. Я перенес часть логики в класс Assignment, класс Statement теперь базовый для него и пока пустой. Соответственно, я поясню семантику классов Substitution, Assignment, BasicBlock, ControlFlowGraph.

Substitution это пара вида "переменная-значение". Фишка в том, что в качестве "переменной" может выступать, например, только один элемент массива, а не весь массив целиком, вот так:

a[0] = '1'

Соответственно, Assignment - это набор таких пар. Например, это может быть одновременное присваивание набору битов некоторого набора значений.

BasicBLock - это набор утверждений. Пока в качестве таковых могут быть только Assignment'ы, потом будут добавлены также вызовы процедур, создание экземпляров модулей и т.п.

ControlFLowGraph - это граф, состоящий из вершин (наследников класса Node - теперь они лежат в отдельном java package) и ребер (Link). Тут уже могут быть не только базовые блоки, но и Switch-и - это условные операторы - и Fork\Join\Merge. Все это надо учитывать при построении Constraint'а.

#3

Updated by Sergey Smolov about 6 years ago

Игорь, прошу прощения, снова забыл добавить файлы в коммит. r39

#4

Updated by Igor Melnichenko about 6 years ago

Сделал для Substitution и Assignment.
Вопрос по ControlFlowGraph: будет ли класс расширяться? В текущем варианте (когда есть только неупорядоченные наборы узлов и связей), строить Constraint неудобно.

#5

Updated by Sergey Smolov about 6 years ago

Да, класс будет расширяться и дорабатываться.

#6

Updated by Sergey Smolov over 5 years ago

  • Status changed from New to Open

Структура класса CFG (бывший ControlFlowGraph) переработана, можно вернуться к этой задаче.

#7

Updated by Alexander Kamkin over 5 years ago

  • Subject changed from Реализовать метод toConstraint() to [basis][model] Реализовать метод toConstraint()
  • Target version set to 0.1
#8

Updated by Igor Melnichenko over 5 years ago

Какой constraint следует генерировать в случае WaitStatement?

#9

Updated by Alexander Kamkin over 5 years ago

Никакой. Следует кидать исключение.

#10

Updated by Igor Melnichenko over 5 years ago

Может, лучше перенести implements ISymbolic из Statement в AssignStatement?

#11

Updated by Alexander Kamkin over 5 years ago

  • Subject changed from [basis][model] Реализовать метод toConstraint() to [cfg][model] Реализовать метод toConstraint()
#12

Updated by Sergey Smolov over 5 years ago

Я бы не стал переносить. Вдруг мы все же как-нибудь исхитримся, и начнем строить constraint'ы из wait-выражений?:-)

Пока достаточно просто кидать исключение.

#13

Updated by Alexander Kamkin about 5 years ago

  • Subject changed from [cfg][model] Реализовать метод toConstraint() to [cfg] Реализовать метод toConstraint()
#14

Updated by Sergey Smolov almost 5 years ago

  • Status changed from Open to Rejected

Задача, кажется, более не актуальна.

Also available in: Atom PDF