{"id":26468798,"url":"https://github.com/rft0/meow","last_synced_at":"2025-03-19T16:57:56.782Z","repository":{"id":282055175,"uuid":"947342154","full_name":"rft0/meow","owner":"rft0","description":"Meow - The Purrfect Programming Language","archived":false,"fork":false,"pushed_at":"2025-03-12T15:26:12.000Z","size":0,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-12T15:34:58.131Z","etag":null,"topics":["bytecode","esoteric","interpreter","meow","vm"],"latest_commit_sha":null,"homepage":"","language":"C","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/rft0.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-03-12T14:36:25.000Z","updated_at":"2025-03-12T15:17:58.000Z","dependencies_parsed_at":"2025-03-12T15:45:02.835Z","dependency_job_id":null,"html_url":"https://github.com/rft0/meow","commit_stats":null,"previous_names":["rft0/meow"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rft0%2Fmeow","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rft0%2Fmeow/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rft0%2Fmeow/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rft0%2Fmeow/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rft0","download_url":"https://codeload.github.com/rft0/meow/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244470240,"owners_count":20457906,"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":["bytecode","esoteric","interpreter","meow","vm"],"created_at":"2025-03-19T16:57:56.313Z","updated_at":"2025-03-19T16:57:56.772Z","avatar_url":"https://github.com/rft0.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Meow - The Purrfect Programming Language\nMeow is an esoteric language created for fun purposes and this repo contains bytecode interpreter for meow.\n\n## Building\n```\nmkdir bin\nmake\n```\n\n## Usage\n```\nmeow input.meow\n```\n\n## Instructions\nEvery meow instruction is 8-bit, first 3 bit represents operation type, last 5 represents\noperation itself.\n\nMeow instructions are encoded into two parts firstly `#m + #e - 2` gives us info about\ntype of instruction there are 4 types at total:\n* **V-Type** (Operations to manipulate variables)\n* **A-Type** (Arithmetic operations)\n* **C-Type** (Control flow operations)\n* **S-Type** (Operations that makes syscalls like printf)\n\nWe use `#o + #w - 2` to get information about second part of instruction.\\\nthis part specifies which instruction we want ie:\n* `meow` is decoded to `00000000` which is equilevant of `LOAD_CONST` in bytecode.\n* `meoow` is decoded to `00000001` which is equilevant of `LOAD_VAR` in bytecode.\n* `meeow` is decoded to `00100000` which is equilevant of `ADD` in bytecode.\n* `mmeeoooww` is decoded to `01000101` which is equilevant of `JGE` in bytecode.\nit is worthy to remind `meoow` and `meoww` generates same instruction.\n\nYou can find more information about instruction encodings at `src/lut.c`.\n\n\n## Code Example\nHere is an example to find nth fibonacci number in meow. \n```\nnyan main:\n    meow 4\n    meooww ~~n\n\n    meow 0\n    meow 1\n    meow 0\n\n    meooww ~~a\n    meooww ~~b\n    meooww ~~tmp\n\n    meoww ~~n\n    meow 0\n    mmeeow\n    mmeeooww base\n\n    meow 2\n    meooww ~~it_count\n\nnyan fib_rec:\n    meoow ~~a\n    meoow ~~b\n    meeow\n    meooww ~~tmp\n\n    meoww ~~b\n    meooww ~~a\n    meoow ~~tmp\n    meooww ~~b\n\n    meoow ~~it_count\n    meow 1\n    mmeow\n    meooww ~~it_count\n    meoow ~~it_count\n    meoow ~~n\n    mmeeow\n    meeeooowwwwww fib_rec\n    mmeeoow fin\n\nnyan base:\n    meow 0\n    meeeeow\n    meeeeoww\n\nnyan fin:\n    meoww ~~n\n    meow \". Fibonacci number is \"\n    meeow\n    meoww ~~b\n    meeow\n    meeeeow\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frft0%2Fmeow","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frft0%2Fmeow","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frft0%2Fmeow/lists"}