{"id":49488671,"url":"https://github.com/bichanna/slap","last_synced_at":"2026-05-01T03:05:33.942Z","repository":{"id":37031491,"uuid":"459811741","full_name":"bichanna/slap","owner":"bichanna","description":"🖐 A dynamically- and strongly-typed, object-oriented programming language","archived":false,"fork":false,"pushed_at":"2022-10-17T13:26:06.000Z","size":583,"stargazers_count":17,"open_issues_count":0,"forks_count":1,"subscribers_count":4,"default_branch":"master","last_synced_at":"2023-03-04T01:48:12.905Z","etag":null,"topics":["compiler","interpreter","javascript","js","language","lox","lox-language","programming-language","slap","transpiler","tree-walker"],"latest_commit_sha":null,"homepage":"https://bichanna.github.io/slap/","language":"Nim","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/bichanna.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":"2022-02-16T01:35:52.000Z","updated_at":"2023-01-16T04:51:37.000Z","dependencies_parsed_at":"2023-01-19T10:31:44.022Z","dependency_job_id":null,"html_url":"https://github.com/bichanna/slap","commit_stats":null,"previous_names":[],"tags_count":null,"template":null,"template_full_name":null,"purl":"pkg:github/bichanna/slap","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bichanna%2Fslap","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bichanna%2Fslap/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bichanna%2Fslap/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bichanna%2Fslap/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bichanna","download_url":"https://codeload.github.com/bichanna/slap/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bichanna%2Fslap/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32483430,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-30T13:12:12.517Z","status":"online","status_checked_at":"2026-05-01T02:00:05.856Z","response_time":64,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["compiler","interpreter","javascript","js","language","lox","lox-language","programming-language","slap","transpiler","tree-walker"],"created_at":"2026-05-01T03:04:38.799Z","updated_at":"2026-05-01T03:05:33.925Z","avatar_url":"https://github.com/bichanna.png","language":"Nim","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n    \u003ch1\u003eThe SLAP Programming Language\u003c/h1\u003e\n    |\n    \u003ca href=\"https://github.com/bichanna/slap/blob/master/docs/index.md#doc\"\u003eDoc\u003c/a\u003e\n    |\n\u003c/div\u003e\u003cbr\u003e\n\n\u003cdiv align=\"center\"\u003e\n\t\n[![Ubuntu](https://github.com/bichanna/slap/actions/workflows/ubuntu.yml/badge.svg)](https://github.com/bichanna/slap/actions/workflows/ubuntu.yml)\n[![macOS](https://github.com/bichanna/slap/actions/workflows/mac.yml/badge.svg)](https://github.com/bichanna/slap/actions/workflows/mac.yml)\n[![Windows](https://github.com/bichanna/slap/actions/workflows/windows.yml/badge.svg)](https://github.com/bichanna/slap/actions/workflows/windows.yml)\n\t\n\u003c/div\u003e\n\n**WARNING!! THIS LANGUAGE IS IN DEVELOPMENT (AND FOR LEARNING PURPOSES). ANYTHING CAN CHANGE AT ANY MOMENT.**\n\n🖐 **SLAP** stands for \"**SL**ow **A**nd **P**owerless.\" And I hope to make it \"**P**owerful\" someday.\u003cbr\u003e\n\n**SLAP** is a dynamically- and strongly-typed, object-oriented programming language. Its syntax is a member of the C family with a bit of difference.\n\n## Example\n\nAs of March 2022, you can write pretty decent, small programs in SLAP.\n\u003cdiv align=\"center\"\u003e\n  \u003cimg width=\"100%\" src=\"https://user-images.githubusercontent.com/60306074/161585270-6ce59735-f910-4068-994b-d74d12371f5d.png\"\u003e\n\u003c/div\u003e\n\n\u003e*Note*: The SLAP-to-JS transpiler is in progress (see [compiler branch](https://github.com/bichanna/slap/tree/compiler)).\n\u003cdetails\u003e\n\u003csummary\u003eSLAP-to-JS Compiler Example\u003c/summary\u003e\n\t\nhttps://user-images.githubusercontent.com/60306074/162365051-630e6171-93c0-4af5-a55c-c600ae1efa92.mov\n\u003c/details\u003e\n\n## Installation\nOn Linux/macOS, you may be able to run the following commands to install SLAP.\n```\n$ git clone https://github.com/bichanna/slap.git\n$ cd slap\n$ chmod +x ./build.sh \n$ ./build.sh         # The SLAP Vim highlighter automatically gets installed\n```\nFor Windows, I haven't written bat version of `build.sh`, so you have to manually compile the source code.\n```\n$ nimble build --multimethods:on -d:release\n```\nThen, mark it as an executable file if necessary, and try running `slap --version`.\n```\n$ slap --version\nSLAP 0.0.3\n```\n\nYou may want to test current SLAP you just built before running your programs.\n```\n$ nimble test\n```\n\n## TODO\n*Note:* If you have a feature request, please open an issue.\n\n### Main\n- [x] Basic Data Types\n     - [x] Integer\n     - [x] Float\n     - [x] String\n     - [x] Boolean\n     - [x] Null\n     - [x] List\n     - [x] Map\n - [x] Basic Arithmetics\n - [x] Variables\n - [x] If Statements\n     - [x] elif\n     - [x] else\n - [x] While Loops\n - [x] For Loops\n     - [x] Break\n     - [x] Continue\n     - [x] \"Enhanced\" for loop (in the form of `forEach`)\n - [ ] Try-except Blocks\n - [x] Functions\n     - [x] Lambdas (anonymous functions)\n     - [x] Default Arguments\n     - [x] Rest Parameters\n - [x] Standard Library\n     - [x] Std\n     - [x] String\n     - [x] OS\n     - [x] I/O interfaces\n     - [x] Math\n     - [ ] Networking\n - [x] Classes\n     - [x] Class Methods\n     - [x] Inheritance\n     - [ ] Abstract Class (Interface)\n - [x] Import\n - [ ] Concurrency\n - [ ] Virtual Machine Compiler\n### Others\n - [x] Assignment Shorthands (e.g, `+=`, `*=`)\n - [x] String Interpolation\n - [ ] Optional Type Annotations\n - [x] Multi-line Comments\n - [x] Vim Highlighter\n - [ ] VSCode Highlighter\n - [x] Transpiler (to JavaScript)\n - [ ] Newline As Statement Separator\n\n## Contribution\nBug reports and contributions are always welcome :)\u003cbr\u003e\nPlease  be sure to add test files if you want to add new features (see [tests directory](https://github.com/bichanna/slap/tree/master/tests#tests) for more info).\n \n\n## Credits\nI learned a lot from\n - [Oak programming language](https://github.com/thesephist/oak) by [thesephist](https://github.com/thesephist)\n - [Bob Nystrom (munificent)](https://github.com/munificent)'s great book, [*Crafting Interpreters*](https://craftinginterpreters.com/).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbichanna%2Fslap","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbichanna%2Fslap","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbichanna%2Fslap/lists"}