{"id":13779668,"url":"https://github.com/grigory-rechistov/interpreters-comparison","last_synced_at":"2025-05-11T13:30:57.424Z","repository":{"id":34734453,"uuid":"38712654","full_name":"grigory-rechistov/interpreters-comparison","owner":"grigory-rechistov","description":"Sample programs for comparison of different VM interpretation techniques","archived":false,"fork":false,"pushed_at":"2024-11-07T08:51:44.000Z","size":317,"stargazers_count":29,"open_issues_count":8,"forks_count":11,"subscribers_count":6,"default_branch":"master","last_synced_at":"2024-11-07T09:40:40.410Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/grigory-rechistov.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}},"created_at":"2015-07-07T20:22:30.000Z","updated_at":"2024-11-06T14:49:19.000Z","dependencies_parsed_at":"2023-01-15T08:50:24.399Z","dependency_job_id":null,"html_url":"https://github.com/grigory-rechistov/interpreters-comparison","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grigory-rechistov%2Finterpreters-comparison","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grigory-rechistov%2Finterpreters-comparison/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grigory-rechistov%2Finterpreters-comparison/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grigory-rechistov%2Finterpreters-comparison/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/grigory-rechistov","download_url":"https://codeload.github.com/grigory-rechistov/interpreters-comparison/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225056721,"owners_count":17414191,"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-08-03T18:01:07.809Z","updated_at":"2024-11-17T15:30:36.128Z","avatar_url":"https://github.com/grigory-rechistov.png","language":"C","funding_links":[],"categories":["C"],"sub_categories":[],"readme":"# Compare Performance and Complexity of Software Interpreters of a Virtual Machine\n\nSample programs for comparison of different VM interpretation techniques.\nSee the Makefile for the full list of targets.\n\n* `switched` - switched interpreter\n* `threaded` - threaded interpreter\n* `predecoded` - switched interpreter with preliminary decoding phase\n* `subroutined` - subroutined interpreter\n* `threaded-cached` - threaded interpreter with pre-decoding.\n* `tailrecursive` - subroutined interpreter with tail-call optimization\n* `translated` - binary translator to Intel 64 machine code\n* `native` - a static implementation of the test program in C\n\n## Build\n\nJust type `make`. For Visual Studio builds, open corresponding project or solution files.\n\nUse `make sanity` to perform a quick check of all variants.\n\n## Measure performance\n\nUse `./measure.sh` to measure run time of individual binaries or to perform a comparison of all techniques (alternatively, run `make all measure`).\n\nThe graph plotting part of the script uses Gnuplot and AWK.\n\n## Supported Environments\n\n- Tested to compile and run with GCC 4.8.1, GCC 5.1.0 and ICC 15.0.3 on Ubuntu Linux 12.04.5. Limited testing was also done on Windows 8.1 Cygwin64 environment, GCC 4.8.\n- Limited support for Visual Studio builds is provided. Certain types of interpreters will not build because of the CL compiler limitations or source code dependencies on GCC language extensions.\n\n## References\n\nAn article discussing structure, performance variations, and comparison of interpreters: http://habrahabr.ru/company/intel/blog/261665/ (in Russian).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgrigory-rechistov%2Finterpreters-comparison","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgrigory-rechistov%2Finterpreters-comparison","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgrigory-rechistov%2Finterpreters-comparison/lists"}