{"id":13715616,"url":"https://github.com/ftripier/spookyc","last_synced_at":"2025-05-07T04:30:55.576Z","repository":{"id":72518705,"uuid":"103703659","full_name":"ftripier/spookyc","owner":"ftripier","description":"A compiler for the 🎃 Spooky 😱 programming language 👻","archived":false,"fork":false,"pushed_at":"2018-11-09T20:02:15.000Z","size":94,"stargazers_count":148,"open_issues_count":4,"forks_count":4,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-11-14T03:34:32.375Z","etag":null,"topics":["boo","fear","ghost","halloween","memes","novelty","programming-language","scary","skeleton","spooky","surprise","vampire","ventriloquist-dolls","werewolf"],"latest_commit_sha":null,"homepage":"http://spookylang.com/","language":"OCaml","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/ftripier.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,"governance":null,"roadmap":null,"authors":null}},"created_at":"2017-09-15T21:39:14.000Z","updated_at":"2024-11-05T00:25:13.000Z","dependencies_parsed_at":null,"dependency_job_id":"a32d3e85-be10-45f9-a53c-b51ed08ca6c3","html_url":"https://github.com/ftripier/spookyc","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/ftripier%2Fspookyc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ftripier%2Fspookyc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ftripier%2Fspookyc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ftripier%2Fspookyc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ftripier","download_url":"https://codeload.github.com/ftripier/spookyc/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252813704,"owners_count":21808374,"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":["boo","fear","ghost","halloween","memes","novelty","programming-language","scary","skeleton","spooky","surprise","vampire","ventriloquist-dolls","werewolf"],"created_at":"2024-08-03T00:01:01.143Z","updated_at":"2025-05-07T04:30:55.153Z","avatar_url":"https://github.com/ftripier.png","language":"OCaml","readme":"# The Spooky Programming Language 👻\n\nAt the bleeding edge of programming language research, theoreticians structure problems intractable for the retention of the mental contex of a single human mind into explicit semantics, their efforts weighted across the axis of expressiveness.\n\nAmong these computations determined too onerous for more affable turing machines, memory management has thrived in the zeitgeist, with such implementations as rust and ATS holding court upon many a Hacker News thread. Distributed systems are no less favored, with Erlang and Ponylang side projects blooming increasingly lush in Github's harvest season.\n\nBut there is one clade of computational semantics that remains too labyrinthine, too daring for the eye of even our most maverick programming language academics: writing spooky programs.\n\nUntil now.\n\nIntroducing:\n\n_🎃 The Spooky Programming Language 🎃_\n\n```\n👻 boo! 👿  😈 💀\n  🤡 spooky_list🎃\n  spooky_list 😱 🍫 1 🍬 2.5 🍬 \"uh oh skeletons\" 🍬 🌝 🍬 🌚 🍬 ⚰️ 🍭🎃\n  print_and_then_scream👿 spooky_list 😈🎃\n  🍬 ⚰️🎃\n☠️\n\n```\n\n# The Programming Language of Fear 🌚\n\nSpookylang stands behind but one goal: to be the scariest programming language. Yes, I know, \"What about Java 7?!\" as you wheel around to high-five your coworker. Enough merriment.\n\nIn order to write Spookylang, our primary researcher first had to truly understand the meaning of fear. Failing to do that, our researcher instead proposed these language features:\n\n\n\n### Spooky-Completeness 😈\n\nSimply put, Spookylang is a procedural, mostly dynamically typed machine that can be programmed to execute any computable functions that take \"scary\" input and output \"spooky\" output. This property (henceforth referred to as Spooky completeness) is isomorphic to Turing completeness by way of the following reversible morphisms:\n\n```\nlet n be any string \nlet 🤡 be any spooky string\nlet 🎃 be a scary word\n\nN + 🎃 -\u003e 🤡\n🤡 - 🎃 -\u003e N\n```\n\nTo enforce this invariant, the Spookylang compiler provides I/O routines that crash upon being passed \"non-scary\" strings.\n\n\n\n### Determining Scariness of Strings 💀\n\nThe problem of binary categorization of arbitrary input is well known to the artificial intelligence community. For our own purposes, we employed an \"AI hardcoded list of regular expressions\" that clusters strings according to the following policy:\n\n![Artifical Intelligence Hardcoded List of Regexs](https://i.imgur.com/Jde71bT.png \"SVM - Support Very Mhardcoded lists of regexs)\")\n\n\n\n### Vari(scary)ables 👹\n\nIn a good program, variable names must be terse, but expressive.\n\nIn Spookylang they must also be scary, or your program won't compile.\n\n\n\n### The Spookiest Emojis 😱\n\nThere's nothing less scary than a keyword.\n\n.. Except in Spookylang where all keywords are spooky emojis!\n\n\n\n### Jump Scares 🤡\n\nSurprise is a key element of being scared.\n\nIt will come as no surprise to you, then, that Spookylang employs the element of surprise in its mandate to spook. Not unlike MongoDB, the spookylang runtime will occasionally and unpredictably produce terrifying output.\n\n\n# Building It 🍬\n\nThe Spookylang compiler is written in WOAH!Caml, a dialect of OCaml wherein the programmer must be\n\n1. Sweaty\n2. Relatively new to OCaml\n3. Screaming\n\nIn order to protect our practitioners from the rank OCaml-building amateurity of our researchers we've provided a docker-based workflow. Provided you have a relatively modern version of docker installed, you may brace yourself against the overwhelming senselessness of fear and run `./docker-compile.sh examples/hell_world.spooky` to test out an example (the first time will run a bit slow due to building the docker image and the aforementioned OCaml-building amateurism - over 200 compiler warnings, sorry Jane Street!).\n\n`docker-compile.sh` will build and persist a docker image dubbed `spookybox` (don't go in there!), and can be run on any spooky file you desire. This very repo helpfully contains a decent amount of source files in the `examples` subdirectory.\n\n\n# Documentation isn't as scary as the other stuff\n\nbut is nonetheless included [here](docs/reference.md).\n\nThe world's scariest examples can be found in the examples directory.\n\n\n# Test your mettle\n\nFinally, something that isn't scary; we have tests! Run them with `docker-compose up`.\n","funding_links":[],"categories":["Esoteric languages"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fftripier%2Fspookyc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fftripier%2Fspookyc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fftripier%2Fspookyc/lists"}