Re:Was the iOS SSL Flaw Deliberate?
by lutusp on Thursday February 27, 2014 @03:47PM
(#7314938)
> I feel that your answer proves the point my original comment - that there is literally Silicon level support for completely avoiding gotos.
Yes, and there's a reason -- chip design should reflect how computers are programmed at a higher level, and function calls produce code that's easier to understand, create and maintain. The reason is that function calls obey a logical hierarchy that often reflects the meaning of the algorithm being executed.
To see the point, try creating a recursive-descent parser that uses GOTO and avoids function calls.
This understanding isn't limited to an HN gaggle of nattering bystanders:
> I was just trying to show that I have heard of jmp, and that I know it is spat out by compilers to implement high level language features, and that any nontrivial compiled program will contain many jmp instructions.
Yes, but what a compiler does, and what a high-level language does, are often completely different. As one example, many recursive algorithms are compiled into functionally equivalent loops, to make them more efficient and to keep from blowing up the stack.
My point is that a compiler's output doesn't have to be read by a human, so it can break every rule. Not so for a high-level code listing that might have to be understood and maintained over decades.
Yes, and there's a reason -- chip design should reflect how computers are programmed at a higher level, and function calls produce code that's easier to understand, create and maintain. The reason is that function calls obey a logical hierarchy that often reflects the meaning of the algorithm being executed.
To see the point, try creating a recursive-descent parser that uses GOTO and avoids function calls.
This understanding isn't limited to an HN gaggle of nattering bystanders:
http://www.u.arizona.edu/~rubinson/copyright_violations/Go_T...
> I was just trying to show that I have heard of jmp, and that I know it is spat out by compilers to implement high level language features, and that any nontrivial compiled program will contain many jmp instructions.
Yes, but what a compiler does, and what a high-level language does, are often completely different. As one example, many recursive algorithms are compiled into functionally equivalent loops, to make them more efficient and to keep from blowing up the stack.
My point is that a compiler's output doesn't have to be read by a human, so it can break every rule. Not so for a high-level code listing that might have to be understood and maintained over decades.