{"id":13686925,"url":"https://github.com/bordaigorl/stargazer","last_synced_at":"2025-03-02T17:25:03.135Z","repository":{"id":18659504,"uuid":"21867082","full_name":"bordaigorl/stargazer","owner":"bordaigorl","description":"A simulator for visualising the evolution of π-calculus terms","archived":false,"fork":false,"pushed_at":"2022-06-14T22:18:40.000Z","size":1265,"stargazers_count":40,"open_issues_count":0,"forks_count":2,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-01-13T04:42:04.601Z","etag":null,"topics":["concurrency","pi-calculus","simulator","visualization"],"latest_commit_sha":null,"homepage":"http://stargazer.emanueledosualdo.com","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bordaigorl.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-07-15T16:24:30.000Z","updated_at":"2024-04-29T11:43:34.000Z","dependencies_parsed_at":"2022-07-28T20:09:57.412Z","dependency_job_id":null,"html_url":"https://github.com/bordaigorl/stargazer","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/bordaigorl%2Fstargazer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bordaigorl%2Fstargazer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bordaigorl%2Fstargazer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bordaigorl%2Fstargazer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bordaigorl","download_url":"https://codeload.github.com/bordaigorl/stargazer/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241543155,"owners_count":19979481,"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":["concurrency","pi-calculus","simulator","visualization"],"created_at":"2024-08-02T15:00:44.236Z","updated_at":"2025-03-02T17:25:03.107Z","avatar_url":"https://github.com/bordaigorl.png","language":"HTML","funding_links":[],"categories":["HTML"],"sub_categories":[],"readme":"# Stargazer: A \u0026pi;-calculus simulator\n\nThis is a JavaScript, [D3.js][d3] powered simulator for the [\u0026pi;-calculus][wikipedia], a process algebra modelling concurrency and mobility.\n\nI am releasing it for didactic purposes.\n\n## License [![License](https://i.creativecommons.org/l/by-sa/4.0/80x15.png \"License\")][license]\n\nStargazer by [Emanuele D'Osualdo][home] is licensed under a\n[Creative Commons Attribution-ShareAlike 4.0 International License](http://creativecommons.org/licenses/by-sa/4.0/).\n\nI would appreciate if you contacted me before using the simulator in presentations/other material.\nNote that the current version is experimental and distributed as is.\nA new, open-sourced version will be released at some point.\n\n## Usage\nYou can use the syntax of π-calculus with the ascii notation:\n\n*   Actions `α.P`\n    *   Output: `x\u003cy1,...,yn\u003e.P`\n    *   Input: `x(y1,...,yn).P`\n    *   Internal: `tau.P`\n*   The inactive process: `0` or `zero` (it can be omitted after an action: `α.zero` can be abbreviated `α`)\n*   Parallel: `P | Q`\n*   Guarded Sum (`M`): `α1.P1 + … + αn.Pn`\n*   Process call: `P[y1,...,yn]`\n*   Restriction: `new y1,...,yn.P`\n*   Process definition: `P[y1,...,yn] := M`\n\nParentheses can be used to group actions, for example: `x(y).x(z) + x\u003ca\u003e` is different from `x(y).(x(z) + x\u003ca\u003e)`.\n\nYour program should have the form\n\n    INIT\n    DEFS\n\nWhere `INIT` is a process and `DEFS` is a sequence of definitions.\n\nYou should write _normalised_ programs: the initial term should not contain sums and only the top-level of each definition should be a sum. For example:\n\n    new x,y.(A[x] | B[x,y])\n    A[x] := x(u).new z.(A[u] | B[u,x] | C[z,u])\n    B[x,y] := x\u003cy\u003e\n\nis normalised, but\n\n    new x,y.(A[x] | x\u003cy\u003e)\n    A[x] := new z.x(u).(A[u] | u\u003cx\u003e| C[z,u])\n\nis not since the initial term contains a sum `x\u003cy\u003e`, and so does the continuation in the definition of `A[x]`. Moreover the definition of `A[x]` contains a restriction at top level which is not allowed: if you need it there, move it outside in the call of `A[x]`, otherwise consider if you meant to use it under a prefix.\n\nProcess calls `A[x]` where `A` is not defined, will be treated as if the definition was `A[x] := 0`.\n\nAnother important restriction: the free names of the body of a definition **have to be bound by the definition's head!** This means that the definition `A[x] := x(y).(z\u003cy\u003e | A[y])` is not valid because `z` occurs free in the body but is not in the argument list. To fix the definition you have to include it as in `A[x,z] := x(y).(z\u003cy\u003e | A[y,z])`.\n\n## Examples\n\nYou can find an example suite of \u0026pi;-calculus programs at\nhttp://gist.github.com/bordaigorl/6e54093b297c0f9df01d0c82f65b89f6\n\nAny Gist can be loaded in Stargazer by using the `gist` parameter. For example, to try the above Gist you can go to\n\n\u003e http://stargazer.emanueledosualdo.com?gist=6e54093b297c0f9df01d0c82f65b89f6\n\nYou can create your own Gist and open it in the same way.\nA Gist can contain any number of programs (with extension `.pi`), each accompanied by an optional JSON configuration file with the same name but extension `.json`.\n\n\n[wikipedia]: http://en.wikipedia.org/wiki/Pi-calculus\n[license]: http://creativecommons.org/licenses/by-sa/4.0/\n[home]: http://emanueledosualdo.com\n[d3]: https://d3js.org/","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbordaigorl%2Fstargazer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbordaigorl%2Fstargazer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbordaigorl%2Fstargazer/lists"}