BF Interpreter Package


#1

Would it be possible to implement a (pardon my language) Brainfuck interpreter as an atom package? It seems like there is no package for this, and I wonder if the current package structure could support this sort of tool? I’m considering doing some research to see how it could be made, but don’t want to put in the time if it is not possible. If you can’t tell from this question, I’ve not made a package before for Atom and I don’t know the languages used to make packages, but I plan to put some time into this. I think it would be neat to have a package that opened say, the right dock, and revealed a simple BF interpreter, that could run the code, accept input and display output.

Any opinions on this?

Thank you very much.


#2

Except HTML and JavaScript, packages that run code for Atom are all structured in the same basic way: figure out what the user wants to run, and drop off a shell command in the direction of the external binary that knows how to handle that sort of code. If you have an external binary, generic packages like script and atom-runner can actually handle any language you throw at them (you just might need to manually tell them where the external binary is). Now, one area where there is a gap is in accepting input. As far as I know, none of the code running packages are able to handle input prompts except for packages that generate fully interactive terminals, like script-runner (yes, there are some very similar names). If you search in this forum, you’ll find a bunch of threads asking for how to run interactive Python and C++ scripts. My conjecture is that there are some tutorials online that encourage users to download Atom and script, but also feature scripts that ask for input, so they come here and I have to explain the disconnect and provide alternative options.

If you developed a code-runner view that knew how to handle stdin across all platforms, you could use it for more than just Brainfuck. It’s something that’s been done before (so you have plenty of examples), but there’s definitely room for some UI improvements over existing packages. Not a bad idea for a first package.