Since I had reason to obtain, once more, Having Thought from the library, and did so, I decided to re-read "Pattern and Being", since it's so butt-ass good. Which, in turn, caused me to notice something prima facie strange about Dennett's chess-playing setup, namely, that he imagines a UTM running a chess-playing program and then, in a further move, being configured so as to play against itself. But the second provision is unnecessary—you can't play chess against a chess-playing Turing machine! Turing machines don't accept input from their environment; everything's got to be there in the state transitions and the symbols initially on the tape. But if that's how you're thinking of it calling it a chess-playing Turing machine seems mostly a courtesy; wouldn't it be better to call it a winner-determining Turing machine? You give it (taking the processing routines as a given, though you'd also have to give those to a UTM) the initial board state, and when it halts the final state symbol tells you whether white won, lost, or drew. So maybe we're supposed to think of the machine as being more like a chess-stepper: it takes you from one complete game state description[1] to another, the difference being a move (and whatever else needs updated), or some extra output possibilities to indicate resignation, victory, a draw, whatever. Then you could give it an initial description, wait for it to make its move, reconstruct from the symbols now on the tape what the new game state is, and then (after deciding on your move) recode the new state on the tape and start over. If you had it set up to output its own listing prior to the game state, such that its output could also be its input, you could feed it back into itself, I suppose (though finite tapes would make it tricky). I have a hard time seeing at this point why anything other than the output (/input) tape configurations should have anything recognizable (likely only by a superhuman, but nevermind that) as, or adhering to the rules regarding, chess pieces or positions, and those will be vanishingly few, compared to the huge number of intermediary tape configurations: which means that without meaning to I've made the same complaint I made before. So let's all ignore that and focus instead on the marvel of wasted time that is this C to Brainfuck compiler, which is actually barely functional even when considering the limited subset of C that could be implemented in Brainfuck but still an impressively bizarre undertaking, something that seems less understandable to me than writing a Brainfuck compiler in Brainfuck, which has of course also been done.
[1] not a description of a game from start to finish, obviously, but a complete description of the game at a turn: board layout, whose move it is, what the last move was (or some other means of determining if a capture en passant is legal), what rooks and kings have moved, number of consecutive alternating repeated board positions, whatever else is involved.
Recent Comments