{"id":20910134,"url":"https://github.com/viperproject/sample","last_synced_at":"2025-07-13T00:37:05.113Z","repository":{"id":103042186,"uuid":"265586299","full_name":"viperproject/sample","owner":"viperproject","description":null,"archived":false,"fork":false,"pushed_at":"2020-06-05T11:19:09.000Z","size":96710,"stargazers_count":0,"open_issues_count":21,"forks_count":0,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-01-19T15:23:28.630Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Scala","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/viperproject.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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":"2020-05-20T14:10:53.000Z","updated_at":"2020-06-05T11:19:12.000Z","dependencies_parsed_at":null,"dependency_job_id":"93edb9d1-92d6-4f63-bbcd-2feddacdfba6","html_url":"https://github.com/viperproject/sample","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/viperproject%2Fsample","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/viperproject%2Fsample/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/viperproject%2Fsample/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/viperproject%2Fsample/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/viperproject","download_url":"https://codeload.github.com/viperproject/sample/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243302404,"owners_count":20269502,"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":[],"created_at":"2024-11-18T14:14:00.808Z","updated_at":"2025-03-12T22:23:20.187Z","avatar_url":"https://github.com/viperproject.png","language":"Scala","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Sample\n\n[![Build Status](https://pmbuilds.inf.ethz.ch/buildStatus/icon?job=sample)](https://pmbuilds.inf.ethz.ch/job/sample/)\n\nSample (Static Analyzer of Multiple Programming Languages) is a generic static analyzer based on the based on the [abstract interpretation](http://en.wikipedia.org/wiki/Abstract_interpretation) theory.\n\n*This readme is currently being updated and still incomplete.*\n\n## Module Overview\n\n  * **sample_core:** The core of sample containing the statements of the intermediate language and their semantics, some basic implementation of abstract states.\n \n  * **sample_numerical:** Numerical analyses, both non-relational and relational.\n \n  * **sample_apron:** Provides an interface to the numerical domains provided by the [Apron](http://apron.cri.ensmp.fr/library/) library.\n \n  * **sample_silver:** The part of sample that is specific to [Viper](https://www.pm.inf.ethz.ch/research/viper.html), which includes translations form and to the intermediate language used by Viper and some implementations of Viper specific analyses.\n \n  * **sample_qp:** The implementation of the [Permission Inference for Array Programs](https://doi.org/10.1007/978-3-319-96142-2_7).\n\n## Getting Started\n\n### Installation\n\n  * Follow the instructions to install [Silver](https://github.com/viperproject/silver), [Silicon](https://github.com/viperproject/silicon), and [Carbon](https://github.com/viperproject/carbon). It is recommended to install the Viper tools as project-named subfolders under a common Viper directory. The instructsions below assume that you have chosen such a top-level Viper folder; if you do not, you need to adapt the relative paths when you create the symbolic links as described in the following.\n\n  * Clone the Sample repository (this repository) and switch to the newly created Sample directory.\n\n        git clone https://github.com/viperproject/sample.git\n        cd sample\n\n  * From within the directory where you installed Sample, create symbolic links to the directories where you installed Silver, Silicon, and Carbon.\n\n    **Linux or Mac:**\n\n        ln -s ../silver silver\n        ln -s ../silicon silicon\n        ln -s ../carbon carbon.\n\n    **Windows:**\n\n        mklink /D silver ../silver\n        mklink /D silicon ../silicon\n        mklink /D carbon ../carbon\n\n  * Compile Sample using SBT.\n\n        sbt compile\n\n### Building and Using Apron\n\n  * Libraries must be installed in a location that is accessible by `ld`. To separate these libraries from the package manager libraries, the default choice is `usr/local/lib` which is usually not scanned. It is therefore necessary to set the `LD_LIBRARY_PATH` environment variable before running Sample.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fviperproject%2Fsample","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fviperproject%2Fsample","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fviperproject%2Fsample/lists"}