2016-09-14 3 views
0

Как я могу реализовать symbolic execution для particular language без использования model checking и Finite State Machine (FSM), например, таких как notJava Path Finder? Мне нужна подробная информация об этом. например, на каком языке я могу реализовать это символическое исполнение и какие еще вещи мне нужно знать?осуществить символическое исполнение без модели проверки

ответ

2

Понадобится:

  • Анализатор для языка, чтобы быть символический казнен, которые могут построить ASTS
  • разрешения
  • Имени (и связанные с ними таблицы символов), так что, когда ваш исполнительный механизм обнаруживает идентификатор может определить связанный тип и значение
  • Анализ потока управления, так что механизм символического выполнения может следить за потоком управления через программу
  • Символьная алгебра, которая может составлять и упрощать символические термины. Для этого необходим синтаксический анализатор (так что вы можете ввести такие уравнения) и prettyprinter (так что вы можете увидеть, что он вычисляет)
  • способ указать предполагаемые значения в точке символического начала выполнения

Это скорее много машин, и трудно найти все это в одном месте. Сложнее всего это построить только для одного инструмента, который является частью причины, по которой вы не найдете много таких инструментов.

Наше DMS Software Reengineering Toolkit имеет все реквизиты. Вы можете найти an example of a symbolic language implemented with DMS интересный.

+0

Спасибо за вашу любезную помощь. если я хочу использовать проверку модели, какие изменения происходят с вышеописанными шагами? независимо от того, используется ли проверка модели, сделать реализацию символического исполнения проще, чем когда она не используется? – any

+0

Для проверки модели вы должны быть готовы перечислить различные символические симуляции для каждого состояния и добавить ограничения в отношении того, какие состояния не допускаются. Поскольку пространства состояний огромны, вы, вероятно, хотите, чтобы все это проходило параллельно. DMS имеет параллельные основы: -} См. Http://www.semanticdesigns.com/Products/DMS/ParlanseForDMS.html –

+0

большое спасибо. Не могли бы вы объяснить четвертый и пятый вопросы ответа еще немного? – any

Смежные вопросы