# Are multi-language submissions allowed?

I'm not talking about,

Here's a part of a solution in CJam, and here's the other half in Javalanguage, you figure it out

I'm talking about,

my language is really simplistic and can't read more than a byte of stdin at a time, so here's a bash helper script which reads input, writes it to a known filename and then executes my langauge's interpreter which solves the task using said file

My instinct is that this is either a loophole of some sort, or will be considered simply a needlessly wordy bash answer, because the interpreter command is essentially just another coreutil, for all the rules care (even though that isn't the case).

I'm not asking whether the bytes in the helper script are counted; obviously, they are.

I can't tell if this is explicitly discouraged, and I don't plan on answering this way any time soon (I'll fix the language first).

• If your language's simplest method of input is files, just use a file as input. I'm fairly certain that's an allowed default [citation-needed]. – Geobits Mar 1 '16 at 3:23
• It seems the default is either stdin or command line args, never files – cat Mar 1 '16 at 3:25
• @tac Unless explicitly said otherwise in a challenge, you can use a language's closest alternative to STDIN in lieu of STDIN itself. – Alex A. Mar 1 '16 at 3:25
• @AlexA. that should probably be an answer :D – cat Mar 1 '16 at 3:26
• @tac And now it is! – Alex A. Mar 1 '16 at 4:35

## 1 Answer

### Regarding I/O

Programs don't need to read specifically from STDIN since not all languages have a concept of STDIN. That's why we say that a program can read from STDIN or the language's closest alternative. It's a little vague, but it basically just means that if your language doesn't have a concept of STDIN, use whatever natural input method most closely resembles STDIN.

Also, if your language can only read from a file, note that reading from a file is currently one of our default code golf input formats.

### On multiple languages

I would call what you described "Bash + SuperCoolLang1000," where the latter is obviously replaced by your language's name. In that case the byte count would be the byte count of the Bash driver program + the byte count of your language's program that does the work.

It may be easier to define Bash + SuperCoolLang1000 as a new language, which is not uncommon so long as there's a specific interpreter for it available, or make the Bash wrapper part of the language itself.