Project

General

Profile

Actions

Task #4359

closed

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

Added by Sergey Smolov almost 11 years ago. Updated over 9 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.

Actions #1

Updated by Igor Melnichenko almost 11 years ago

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

Actions #2

Updated by Sergey Smolov almost 11 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'а.

Actions #3

Updated by Sergey Smolov almost 11 years ago

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

Actions #4

Updated by Igor Melnichenko over 10 years ago

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

Actions #5

Updated by Sergey Smolov over 10 years ago

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

Actions #6

Updated by Sergey Smolov about 10 years ago

  • Status changed from New to Open

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

Actions #7

Updated by Alexander Kamkin almost 10 years ago

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

Updated by Igor Melnichenko almost 10 years ago

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

Actions #9

Updated by Alexander Kamkin almost 10 years ago

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

Actions #10

Updated by Igor Melnichenko almost 10 years ago

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

Actions #11

Updated by Alexander Kamkin almost 10 years ago

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

Updated by Sergey Smolov almost 10 years ago

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

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

Actions #13

Updated by Alexander Kamkin almost 10 years ago

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

Updated by Sergey Smolov over 9 years ago

  • Status changed from Open to Rejected

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

Actions

Also available in: Atom PDF