5
$\begingroup$

At one extreme, questions about how Turing machines operate are on-topic.

At another extreme, questions about x86 assembly code are off-topic.

What about intermediate cases: theoretical models that are close in spirit to real machines? For example Knuth's MIX/MMIX, or the Mano machine as in this question.

$\endgroup$
1
  • $\begingroup$ I wasn't aware that Mano was a theoretical system. That being the case, I'm not sure what I think, and I'm mostly posting this comment so Gilles doesn't think I'm ignoring his ping. $\endgroup$ Commented Apr 4, 2016 at 23:39

3 Answers 3

6
$\begingroup$

Broadly speaking, let me divide this into two kinds of questions: (a) conceptual questions about some particular architecture (e.g., Mano, MIX, etc.), or (b) coding questions, involving writing code for that architecture.

I would propose that coding questions should be off-topic, even if they are asking for code targeted at a theoretical model. For instance, "how do I write assembly code for memcpy(), in the Mano assembly language?" would be off-topic, as that's a coding question that calls for us to write code targeted at Mano assembly. Same for MIX, or MIPS, or x86, or any other assembly language, regardless of whether the underlying platform is real or theoretical.

Why? I don't see much difference between "write me code to do X, in MIPS assembly" vs "write me code to do X, in Mano assembly" vs "write me code to do X, in MIX". The first of those three is already established as off-topic. I suggest that the other two are essentially equivalent and should also be off-topic. Askers could be directed to Stack Overflow for those sorts of questions.

I have no position on whether conceptual questions about a theoretical architecture/platform should be on-topic or off-topic.

$\endgroup$
4
  • $\begingroup$ I think it is a bit more complicated. How about this one: give a Turing machine that copies its input? or adds two binary numbers? Note that these are typical exercises in a theory of computation course to asked to make sure students understand how a Turing machine works but are not difficult programming questions. Similar questions about designing DFAs/NFAs/PDAs, grammars, etc. Also similar questions about TTE model are actually important for computability in analysis. $\endgroup$
    – Kaveh
    Commented Apr 5, 2016 at 23:06
  • 2
    $\begingroup$ Since when do we like these questions, @Kaveh? Plus, do we ever answer these with a program (meaning the formal representation of the automaton/machine)? Usually, we give them an algorithmic sketch they have to implement themselves. $\endgroup$
    – Raphael Mod
    Commented Apr 7, 2016 at 15:44
  • $\begingroup$ @Raphael, Whether we like a question or not is not the same as the question being on-topic or not. They are computer science questions so they are by default they on-topic. If there is a relevant policy or meta discussion that I have forgotten about please remind me. $\endgroup$
    – Kaveh
    Commented Apr 7, 2016 at 23:28
  • 1
    $\begingroup$ @Kaveh All true. My point is, if we were to label them programming questions and make them offtopic, the perceived loss may be minimal since we dislike such questions anyway. $\endgroup$
    – Raphael Mod
    Commented Apr 8, 2016 at 6:38
2
$\begingroup$

I think this is a difficult tricky issue. Here is my far from perfect two cents:

Is the question about understanding an aspect of the model or is it a program to be used?

If it is a question whose intention is to understand an aspect of the model then I think it is fine. I think the same idea can apply to questions about MIX/MMIX, Z80, DFA, NFA, PDA, and other models and even common programming languages.

Another criteria that we can take into account is the following:

If posted on Stack Overflow would it get answered?

If yes then there is less harm in closing the question and directing the user to ask it on Stack Overflow or simply migrating the question there.


The main issue which I agree with (if I understand it correctly) is that we do not want to duplicate Stack Overflow. On the other hand there is a concern that we would ban questions which are computer science questions and would not get a good answer on Stack Overflow.

$\endgroup$
5
  • 2
    $\begingroup$ I agree with your first criterion, but not with the second one. What SO considers on-topic, and what SO tends to answer, are not relevant here. (For example there are whole classes of questions that are unambiguously computer science and tend to be accepted on SO, including many undergraduate topics such as “draw a finite automaton”, “write a CFG for this language”, etc.) $\endgroup$ Commented Apr 5, 2016 at 23:17
  • $\begingroup$ @Gilles, I see. Maybe you, David, D.W. or someone else should clarify the issue these questions raise here. That way we can narrow down the problem and adopt a policy that addresses the problem without banning questions we may not want to ban. My understanding was that this is a slippery slope issue and if we allow them why not allow programming questions. My answer to that was that we don't want to duplicate SO. I should dig at old meta posts to recall the rational we had for banning programming questions. $\endgroup$
    – Kaveh
    Commented Apr 5, 2016 at 23:23
  • 2
    $\begingroup$ The issue is whether they're on-topic, or which ones are on-topic. Neither David nor D.W. nor I has a firm position on that at the moment. There's a gray area, we're trying to figure out where to draw a line. $\endgroup$ Commented Apr 5, 2016 at 23:25
  • $\begingroup$ (The idea behind the first criteria is the difference between science and engineering.) $\endgroup$
    – Kaveh
    Commented Apr 5, 2016 at 23:26
  • $\begingroup$ @Gilles, what I meant is: we need examples of questions similar to these which are not in the gray area and are off-topic and if we clarify why they are off-topic we can then use that as a base for deciding about questions in the gray area. $\endgroup$
    – Kaveh
    Commented Apr 5, 2016 at 23:27
2
$\begingroup$

Let's approach it from another perspective entirely: "What do you learn?" Let's take the extreme case of adding two numbers. If the question is a give me the codez type question nothing is learned, and it has no value. If the question were something more along the lines of "When adding a float to an integer on a 486 (has math coprocessor) how does the choice of register design affect performance?" would be a fascinating read.

$\endgroup$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .