{"id":22859905,"url":"https://github.com/harmim/vut-dip","last_synced_at":"2025-03-31T08:23:09.920Z","repository":{"id":74891424,"uuid":"330792912","full_name":"harmim/vut-dip","owner":"harmim","description":"Master's Thesis - Advanced Static Analysis of Atomicity in Concurrent Programs through Facebook Infer","archived":false,"fork":false,"pushed_at":"2022-07-27T21:02:05.000Z","size":66093,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-06T12:48:09.482Z","etag":null,"topics":["abstract-interpretation","atomer","atomicity","atomicity-violation","c","concurrency","concurrent-programs","contracts-for-concurrency","cpp","facebook","facebook-infer","java","master-thesis","ocaml","program-analysis","static-analysis","vut","vut-fit"],"latest_commit_sha":null,"homepage":"https://github.com/harmim/infer","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/harmim.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-01-18T21:37:57.000Z","updated_at":"2022-09-22T08:57:26.000Z","dependencies_parsed_at":null,"dependency_job_id":"25c6cb2d-2c09-44a3-beb3-8e1e3d2d669d","html_url":"https://github.com/harmim/vut-dip","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/harmim%2Fvut-dip","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/harmim%2Fvut-dip/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/harmim%2Fvut-dip/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/harmim%2Fvut-dip/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/harmim","download_url":"https://codeload.github.com/harmim/vut-dip/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246436873,"owners_count":20777110,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["abstract-interpretation","atomer","atomicity","atomicity-violation","c","concurrency","concurrent-programs","contracts-for-concurrency","cpp","facebook","facebook-infer","java","master-thesis","ocaml","program-analysis","static-analysis","vut","vut-fit"],"created_at":"2024-12-13T09:08:25.165Z","updated_at":"2025-03-31T08:23:09.914Z","avatar_url":"https://github.com/harmim.png","language":"C","readme":"# Master's Thesis\n### Advanced Static Analysis of Atomicity in Concurrent Programs through Facebook Infer\n\n---\n\n# Diplomová práce\n### Pokročilá statická analýza atomičnosti v paralelních programech v prostředí Facebook Infer\n\n---\n\n##### Author: Harmim Dominik, Bc. \u003cxharmi00@stud.fit.vutbr.cz\u003e\n\n##### Supervisor: [Vojnar Tomáš, prof. Ing. Ph.D.](https://www.fit.vutbr.cz/~vojnar) (UITS FIT VUT) \u003cvojnar@fit.vutbr.cz\u003e\n\n##### Reviewer: [Rogalewicz Adam, doc. Mgr., Ph.D.](https://www.fit.vutbr.cz/~rogalew) (UITS FIT VUT) \u003crogalew@fit.vut.cz\u003e\n\n##### Specification:\n1. Study limitations of the atomicity analyser Atomer developed in your bachelor\n   thesis as well as the latest developments concerning the Facebook Infer\n   framework.\n2. Propose ways of significantly improving precision and/or scalability of the\n   analysis even if for the price of the user providing more input and/or\n   combining it with dynamic analysis.\n3. Implement a new version of Atomer including the proposed improvements and\n   supporting analysis of programs written in more programming languages than\n   just C supported by the first version of Atomer.\n4. Evaluate the new version of Atomer on suitable benchmarks, including at least\n   real-life code in which some atomicity problems were previously detected.\n5. Describe and discuss the achieved results and their further possible\n   improvements.\n\n##### Category: Software analysis and testing\n\n##### Implementation language: [OCaml](https://ocaml.org)\n\n##### Free software: [Facebook Infer](https://fbinfer.com)\n\n##### Literature:\n1. Rival, X., Yi, K.: Introduction to Static Analysis: An Abstract\n   Interpretation Perspective. MIT Press, 2020.\n2. Blackshear, S., Gorogiannis, N., O'Hearn, P. W., Sergey, I.: RacerD:\n   Compositional Static Race Detection. In: Proc. of OOPSLA'18,\n   PACMPL 2(OOPSLA):144:1-144:28, 2018.\n3. Gorogiannis, N., O'Hearn, P.W., Sergey, I.: A True Positives Theorem for a\n   Static Race Detector. In: Proc. of POPL'19, PACMPL 3(POPL):57:1-57:29, 2019.\n4. Dias, R.J., Ferreira, C., Fiedor, J., Lourenço, J.M., Smrčka, A., Sousa,\n   D.G., Vojnar, T.: Verifying Concurrent Programs Using Contracts, In: Proc.\n   of ICST'17, IEEE, 2017.\n5. Harmim, D.: Static Analysis Using Facebook Infer to Find Atomicity\n   Violations. Bachelor thesis, Brno University of Technology, 2019.\n6. Marcin, V.: Static Analysis Using Facebook Infer Focused on Deadlock\n   Detection. Bachelor thesis, Brno University of Technology, 2019.\n\n## Implementation\nThe implementation is in the repository\n[harmim/infer](https://github.com/harmim/infer). It is a fork of the repository\n[facebook/infer](https://github.com/facebook/infer). It is implemented under\nthe branch\n[atomicity-sets](https://github.com/harmim/infer/tree/atomicity-sets), see the\n[diff](https://github.com/facebook/infer/compare/master...harmim:atomicity-sets).\n\n## Wiki\nMore information about the tool, including examples, installation and usage\ninstructions are available at the\n[Wiki](https://github.com/harmim/infer/wiki/Atomer:-Atomicity-Violations-Analyser).\n\n## Useful links:\n- [Facebook Infer](https://fbinfer.com)\n- [Facebook Infer repository](https://github.com/facebook/infer)\n- [OCaml](https://ocaml.org)\n- [Patrick Cousot - Abstract Interpretation](https://www.di.ens.fr/~cousot/AI)\n- [Patrick Cousot - Abstract Interpretation in a Nutshell](https://www.di.ens.fr/~cousot/AI/IntroAbsInt.html)\n- [Facebook Infer lab](https://github.com/facebook/infer/tree/master/infer/src/labs)\n- [Facebook Infer talk](https://atscaleconference.com/videos/getting-the-most-out-of-static-analyzers)\n- [Facebook Infer INSTALL.md](https://github.com/facebook/infer/blob/master/INSTALL.md)\n- [Facebook Infer CONTRIBUTING.md](https://github.com/facebook/infer/blob/master/CONTRIBUTING.md)\n- [Open-sourcing RacerD: Fast static race detection at scale](https://code.fb.com/android/open-sourcing-racerd-fast-static-race-detection-at-scale)\n- [ThreadSafe: Static Analysis for Java Concurrency](https://bentnib.org/threadsafe.html)\n- [ThreadSafe: Static Analysis for Java Concurrency - benchmark](https://researcher.watson.ibm.com/researcher/view_person_subpage.php?id=5722)\n- [Gluon](https://github.com/trxsys/gluon)\n- [Gluon - validation examples](https://github.com/trxsys/gluon/tree/master/test/validation)\n- [VeriFIT Static Analysis Plugins](http://www.fit.vutbr.cz/research/groups/verifit/tools/sa-plugins)\n- [ANaConDA Framework](http://www.fit.vutbr.cz/research/groups/verifit/tools/anaconda)\n- [Apache Cassandra repository](https://github.com/apache/cassandra)\n- [Apache Cassandra - reported bugs](https://issues.apache.org/jira/browse/CASSANDRA-7757)\n- [Apache Tomcat repository](https://github.com/apache/tomcat)\n- [Apache Tomcat - reported bugs](https://bz.apache.org/bugzilla/show_bug.cgi?id=56784)\n- [Inferbo: Infer-based buffer overrun analyzer](https://research.fb.com/inferbo-infer-based-buffer-overrun-analyzer)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fharmim%2Fvut-dip","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fharmim%2Fvut-dip","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fharmim%2Fvut-dip/lists"}