Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Does jdart support complex data structure? #33

Open
Marvinmw opened this issue Apr 25, 2019 · 8 comments
Open

Does jdart support complex data structure? #33

Marvinmw opened this issue Apr 25, 2019 · 8 comments

Comments

@Marvinmw
Copy link

Does jdart support complex data structure?

@zvonimir
Copy link
Collaborator

The current implementation of JDart supports symbolic inputs of only primitive types (int, bool, etc.). One can of course manually write a harness (e.g., unit test) that generates inputs that are complex data structure by leveraging symbolic inputs of primitive types. However, such complex data structures would in that case be concrete, although potentially filled with symbolic primitive values. An interesting (and challenging) extension to JDart would be to add support for symbolic data structures.
Does that answer your question?

@Marvinmw
Copy link
Author

Marvinmw commented May 2, 2019

thanks. It is my expected answer. BTW, does Symbolic Java-PathFinder (jpf-symbc) support complex data structure?

@zvonimir
Copy link
Collaborator

zvonimir commented May 2, 2019

I am not sure about that, sorry. I think that at some point they published papers about this, but I don't know if the published techniques were implemented in the main branch of Symbolic Java PathFinder.

@Marvinmw
Copy link
Author

Marvinmw commented May 3, 2019

thanks, does jdart support string and char type?

@zvonimir
Copy link
Collaborator

zvonimir commented May 7, 2019

Not in the way that I would guess you are asking about - to have it use the theory of strings.
@fhowar maybe you could confirm this for sure?

@ilebrero
Copy link

Hi all,

@zvonimir @fhowar do you know if there's a tool that currently supports complex data structures (concolically or just symbolically)? Or if there's research about solving these constraints on SMT? E.g. modelled in such a way that the solver finds the new heap configuration of a list given a path condition like:

list!=null` && list.header != null && list.header.next ==null && list.header.value = 10 
&& list instanceof List && list.header instanceof Node`

@fhowar
Copy link
Member

fhowar commented Jun 28, 2020 via email

@ilebrero
Copy link

I'll take a look at it.

Thanks for the quick response!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants