{"id":13782820,"url":"https://github.com/jbheard/SimpleLang-interpreter","last_synced_at":"2025-05-11T16:33:04.217Z","repository":{"id":126293331,"uuid":"70995945","full_name":"jbheard/SimpleLang-interpreter","owner":"jbheard","description":"A simple command line SimpleLang(++) interpreter","archived":false,"fork":false,"pushed_at":"2019-02-11T19:13:37.000Z","size":86,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-08-03T18:16:52.992Z","etag":null,"topics":[],"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/jbheard.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}},"created_at":"2016-10-15T15:26:17.000Z","updated_at":"2019-02-11T19:13:39.000Z","dependencies_parsed_at":"2023-06-16T04:30:13.742Z","dependency_job_id":null,"html_url":"https://github.com/jbheard/SimpleLang-interpreter","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jbheard%2FSimpleLang-interpreter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jbheard%2FSimpleLang-interpreter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jbheard%2FSimpleLang-interpreter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jbheard%2FSimpleLang-interpreter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jbheard","download_url":"https://codeload.github.com/jbheard/SimpleLang-interpreter/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253595953,"owners_count":21933476,"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:45.378Z","updated_at":"2025-05-11T16:33:03.927Z","avatar_url":"https://github.com/jbheard.png","language":"C","funding_links":[],"categories":["C"],"sub_categories":[],"readme":"# SimpleLang Interpreter\n\nThis is a command line interpreter for a simple, Turing complete, programming language. It can run code from a file or from the command line (interactive mode).\nSimpleLang is actually a rebranding of a popular esoteric programming language called brain\\\u003cexpletive\u003e. SimpleLang is just a change in name and nothing more, since I didn't want to plaster cuss words all over my online portfolio. Similarly, SimpleLang++ is a rebranding of a lesser known addition to the original language by Jacob I. Torrey. Both languages can be easily found on https://esolangs.org\nSimpleLang is an esoteric programming language in which there are only 8 operations, these are as follows:\n\n\nOperation | Explanation\n:---: | :---\n\u003c | Decrements the data pointer  \n\\\u003e | Increments the data pointer  \n\\- | Decrements the byte at the data pointer  \n\\+ | Increments the byte at the data pointer  \n\\[ | Begins a loop, if byte at data pointer is 0, skip to the command after end of loop  \n\\] | Jump to beginning of loop  \n\\, | Take a single byte of input  \n\\. | Print a the byte at the data pointer  \n\n\nAnything that is not one of the above 8 operations is ignored, and can be used to comment.\n\n# SimpleLang++ Interpreter \nSimpleLang++ is an addition to SimpleLang, which adds some new operations to extend the usefulness (if it was useful to begin with) and possibilities of the language.\n\n\nThe added operations in the SimpleLang++ language are:\n\nOperation | Explanation\n:---: | :---\n\\# |\tOpen a file for reading/writing\n; |\twrite the character in the current cell to the file, overwriting what is in the file\n: |\tRead a character from the file\n% |\tOpens a socket for reading/writing. A second call closes the socket.\n^ |\tSends the character in the current cell\n! |\tReads a character from socket into current cell\n\nThe comment syntax does not change. Any SimpleLang program can be run using SimpleLang++, so long as none of the comments contain any of the new operations.  \nThe actual specification for the SimpleLang++ language (includes how to open files and sockets in more depth) can be found in spec.txt\n\n# Building\n\nTo build the interpreter use **gcc main.c SimpleLang.c SimpleLangpp.c -o SimpleLang -Werror -Wall -lws2_32** on Windows platforms (using MinGW) and **gcc main.c SimpleLang.c SimpleLangpp.c -o SimpleLang -Werror -Wall** on linux/unix platforms.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjbheard%2FSimpleLang-interpreter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjbheard%2FSimpleLang-interpreter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjbheard%2FSimpleLang-interpreter/lists"}