8 ms·
> As we move from the "low" level to the "high", say from the domain of machine code all the way up to, for instance, a rich, expressive Ruby DSL, the question
by kruhft 13y ago
> As we move from the "low" level to the "high", say from the domain of machine code all the way up to, for instance, a rich, expressive Ruby DSL, the question arises, as it does for all language: have we acquired a surplus of content that cannot be simply reduced to core rules?
No, not if it's still executing on a physical computer.
- mjburgess 13y agoThe surplus he's talking about is in the structure of the program: why is it that way rather than any other? Because of some meaning attached to the program, some "metalogic" (my terminology): a logic about the program which is not formally in the program but which nevertheless has significantly affected it.
- kruhft 13y agoI would still say no, because such metalogic will still be reducable to a type elevated logic and thus be reducable to 'core rules' operating on a lesser logic. Computability dictates what a computer can be instructed to do, leaving the 'meaning' to also have to conform to what can be computed. If it runs on a computer it can be reduced to a simple set of core rules that is a logic, no matter how complex, by virtue that it is running on a computer. Real math doesn't have to follow such rules.
- davesims 13y agoIf the "it" in question is considered merely as the program and sum of CPU operations that the bytecode or binary-whatever reduces to, of course what you say is true, and also completely uninteresting. All that we've stated in this case is that software is software, electrons are electrons and bytecode is bytecode. Computers compute, end of story. But of course that's not what we do as coders. The code is never "complete" -- it's always striving towards some "meaning" that is for a human being. You cannot exclude the meaning of the code from the subject that it is intended for. A human being perceiving the code is always redacting the meaning of the code, not as a function of ones and zeros, but as a function of the analogy that code creates, pointing not towards electrons but towards: a product in a warehouse; a sum of sales at the end of a quarter; a flaming ball of death hurling towards my first-person-virtual head. And so on. In this sense the electrons/ones and zeroes are no more significant than the paper that The Iliad is written on + the ink it is written with.
- kruhft 13y agoThen what does this specifically have to do with programs? All works of substance share such an 'incompleteness' and meaning. We just look to non-programming works as complete in a sense when they are recognized. But such works are constantly being rewritten in different forms in order to produce the effect they are known to be able to produce. In the end, everything is a program in some sense whether to be executed by a brain or computer. The point of what I was saying was to refute the idea that somehow our programs are so complex and have such amazing behaviour that they will not be reducable to a core set of rules. If the programs run on a computer they must be computable and thus reducable to a core set of rules. That's it. Whether we can be reduced to that core set of rules is not evident yet. Using logic, a statement that denies it's own provability in the language it was writen in was crewated. Logic was not thought to be able to lie, until it did. Who knows what the right brain can make it do?
- mjburgess 13y agoreduction implies elimination of something. the argument was never that a program could become incomputable, but that it is much more than merely what happens when it is run
- kruhft 13y ago> As we move from the "low" level to the "high", say from the domain of machine code all the way up to, for instance, a rich, expressive Ruby DSL, the question arises, as it does for all language: have we acquired a surplus of content that cannot be simply reduced to core rules? This was the statement that I started all this with. I am taking "surplus of content" to mean "a bunch of programs" in this context due to the quote speaking of a Ruby DSL. Programs can be reduced to a sequence of logical operations if they are computable, which I would take as 'core rules'. Therefore, only non-computable programs can not be reduced to a set of core rules by the definition of computability. QED Maybe you can explain 'it is much more than merely what happens when it runs'? Do you mean that what it took to create the program was greater than the resulting program and it's effects caused by running it? That the meta-logic used to create the program is far greater than the logic in the program itself? I am 'much more' than the results of actions when I act. I have a past history that has created me, a physical body being used to act with, the world I am acting in, and the resulting effects of my actions, plus everything else I have missed. I that what you mean by 'much more'?
- davesims 13y agoBut the computer and its physical state has no meaning unless the output is perceived (paging Berkeley). That meaning to the user or coder is more than a function of the position of electrons in silicon, but also, and I would argue primarily, in the meaning conveyed to the subject/user/coder. Certainly there is no meaning without physicality, but physicality without subjectivity is literally meaningless, and that subjectivity brings with it analogies and more content than can possibly be found in a pure reduction to electrons. I think if we look hard at the structure of CPU instruction sets, GPUs, math coprocessors and the like, we'll see even at the lowest level attempts to present analogies and manage the limits of pure logic as presented to a human consciousness. So even at the lowest level of CPUs, the language of analogy is present, and that implies that a human subject is going to supply the content "between the electrons" as it were.
- kruhft 13y agoYou are taking the system of computer and user as a single system, and are no longer talking about just the computer. This will lead to more than electronic reduction in silicon because there is more than electrons and silicon. There are no attempts to manage the limits of pure logic at the silicon level. The entire analogy of the CPU is to implement pure boolean logic through strict controls and limits of voltage levels in analog circuits. The logic available to humans is the same available to CPU. Godel used pure logic to create an unprovable statement that was both true and false. What he did to create such a statement is what computers do not (yet) have, but it most certainly is not logic, and I think that would be what you say is 'between the electrons'. But whether we can program and execute this 'insight' on a finite logic system is another question that is yet to be answered. What we can program we can execute and thus can be reduced to basic forms of symbolic logic, whether powered by electrons, pen and paper or the brain.
- davesims 13y ago>> The entire analogy of the CPU is to implement pure boolean logic through strict controls and limits of voltage levels in analog circuits. But this isn't the whole story either, right? What is "pure boolean logic" anyway? It doesn't exist even at the lowest levels. Logic is always applied to a statement of some kind, it doesn't exist as a pure abstraction. It's interesting you bring up Godel. Russell and Whitehead attempted to map logic to math in the Principia, and were refuted by Godel's incompleteness. I don't want to make too much of incompleteness (as many do), but let's not make too little of it either. At some point logic can only do so much for you, and you have to resort to analogy. I think this happens much earlier in CPU architecture than you're allowing for. What you have at a low level on the CPU are a set of instructions arbitrarily (to some degree) defined to efficiently model analogical actions like "push" and "move" and "shift" and the fundamental operations that map to assembly. And here we've already moved out of the realm of pure logic -> math envisioned by Russell and we've created logic -> language, by way of analogy. This is, I would argue, a rhetorical move rather than a logical one. We've already prepared/redacted the ones and zeroes for human consumption, and assumed a specific semantic to provide for a human imagination that will accept and adapt to the semantic.