{"id":20425438,"url":"https://github.com/catseye/beatnik","last_synced_at":"2025-04-12T18:55:33.827Z","repository":{"id":30220879,"uuid":"33771924","full_name":"catseye/Beatnik","owner":"catseye","description":"Cat's Eye Technologies' implementation of (and tools for) the Beatnik programming language","archived":false,"fork":false,"pushed_at":"2021-07-16T07:23:11.000Z","size":11,"stargazers_count":7,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-26T13:12:09.926Z","etag":null,"topics":["beatnik","beatnik-language","esolang","esoteric-language","esoteric-programming-language","interpreter"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"wishbone-modules/wishbone-input-httpserver","license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/catseye.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":"2015-04-11T10:33:06.000Z","updated_at":"2024-05-19T12:44:02.000Z","dependencies_parsed_at":"2022-09-07T20:31:48.468Z","dependency_job_id":null,"html_url":"https://github.com/catseye/Beatnik","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/catseye%2FBeatnik","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/catseye%2FBeatnik/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/catseye%2FBeatnik/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/catseye%2FBeatnik/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/catseye","download_url":"https://codeload.github.com/catseye/Beatnik/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248618273,"owners_count":21134200,"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":["beatnik","beatnik-language","esolang","esoteric-language","esoteric-programming-language","interpreter"],"created_at":"2024-11-15T07:13:21.011Z","updated_at":"2025-04-12T18:55:33.807Z","avatar_url":"https://github.com/catseye.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"Beatnik\n=======\n\nThis is Cat's Eye Technologies' distribution of tools for Cliff L. Biffle's\n**[Beatnik][]** programming language.  This includes an interpreter for Beatnik,\nsome example Beatnik programs, a compiler from a [wimpmode][] dialect called\n**Wottasquare**, and various small utilities which can (for example) search a\ndictionary file for all words with a given Scrabble score.\n\nAll tools are written in Python and located in the `scripts` directory.\nYou may wish to `cd` to this directory to run them, or put this directory\non your executable search path.\n\nbeatnik.py\n----------\n\nBasic usage:\n\n    beatnik.py (filename.beatnik|--eval 'Beatnik program source')\n\nInterprets the Beatnik program in the given source file, or, if the `--eval`\nflag is given, the Beatnik program in the command line.\n\nIt considers the program to be written in Beatnik at face value.  That is to\nsay, it interprets the Beatnik specification as containing no errors, even\nthough the author claims there is an error in it and won't divulge where.\nDon't expect this interpreter to work on the example programs supplied with\nthe specification.\n\nThis interpreter seems to have the same behaviour as\n[Catatonic Porpoise's Beatnik interpreter][].  This repository could stand\nto contain some test cases, though.\n\n`beatnik.py` also takes a `--debug` flag, which dumps some internal state\nto standard error as the program is run.\n\n`beatnik.py` also takes a `--tokenize` flag, which prevents the program\nfrom being run, and instead dumps a representation of the program in\nWottasquare to standard output.  (It is essentially a Beatnik-to-Wottasquare\ncompiler.)\n\nThe following idiom can be used to find out what Scrabble score, and thus what\nBeatnik instruction, a particular word has.\n\n    $ beatnik.py --tokenize --eval 'Twenty'\n    [12:DUP/Twenty]\n\nwottasquare.py\n--------------\n\nBasic usage:\n\n    wottasquare.py [--dictionary filename] filename.wottasquare\n\nReads the Wottasquare program from the given file and compiles it to an\nequivalent Beatnik program on standard output.\n\nThe Wottasquare language has the same semantics as the Beatnik language,\nbut each token has the form `[n:comment]` where `n` is the Scrabble score,\ngiven in decimal, and `comment` is optional, purely descriptive, and ignored\nby translation tools such as this one.\n\nThus, the Wottasquare token `[5]` could be translated to any word which has\na Scrabble score of 5, such as `slug`, for use in Beatnik.\n\nBy default, `wottasquare.py` looks in `/usr/share/dict/words` for\nwords to use when translating Wottasquare to Beatnik.  A different dictionary\nfile can be specified with the `--dictionary` command-line argument.  Note\nthat the dictionary file is parsed like a Beatnik source file would be;\npunctuation is ignored (and treated as word seperator), etc.\n\nThere are two flags which trigger special behaviour:\n\n    wottasquare.py --find 'number-or-word'\n\nShows the Scrabble score of the given word (or treats the given argument as\na Scrabble score, if it is numeric,) then dumps, to standard output, 20 words\nchosen from the dictionary file which have the same Scrabble score as the given\nword.  Examples:\n\n    $ wottasquare.py --find chase\n    10\n    cubits badger gourmet pointers militant acumen engorges rehab fulled bibles bonny wantons motored blasters colossus warder howl colonial mainline frailer\n\n    $ wottasquare.py --find 5\n    5\n    nip rode sitar lisle stilt uteri slug stain stool earls terns cot liter stout lob lab trots lotus altos boo\n\nThe flag `--find-all` works similarly, but dumps _all_ words from the dictionary\nwith the given Scrabble score to standard output.\n\nmake-wottasquare-print.py\n-------------------------\n\nTakes a string on the command line and writes, to standard output, a\nWottasquare program which, when run, prints that string.  It does not produce\nthe most efficient such program.\n\nThis tool was used to generate `eg/hello-world.wottasquare`, which was then\ntranslated to Beatnik by `wottasquare.py`, which was then manually formatted\nand punctuated, with some (maybe 3%) words \"adjusted\" to make it flow better.\n\nLicense\n-------\n\nThe contents of this repository are in the public domain.  See the file\nUNLICENSE in this directory for more information.\n\n[Beatnik]: http://esolangs.org/wiki/Beatnik\n[wimpmode]: http://esolangs.org/wiki/Wimpmode\n[Catatonic Porpoise's Beatnik interpreter]: http://esoteric.voxelperfect.net/files/beatnik/impl/BEATNIK.c\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcatseye%2Fbeatnik","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcatseye%2Fbeatnik","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcatseye%2Fbeatnik/lists"}