4 ms·
When you say "I think in pseudo-code", what are the semantics of this pseudo-code? 'cause it's actually a bit of a non-answer, when you think about it. Saying
by gdp 17y ago
When you say "I think in pseudo-code", what are the semantics of this pseudo-code?
'cause it's actually a bit of a non-answer, when you think about it. Saying 'pseudo code' means that the language you think in has some informality in its syntax - but presumably you still have some fixed understanding of what it does?
If it has no fixed syntax and no fixed semantics, then is it actually helpful as a mental model? I would argue that it is not.
(Note: I'm not just being antagonistic here, I'm genuinely curious. I don't think in terms of "syntax", so this is all a bit alien to me).
- mbrubeck 17y agoIt's perfectly possible to express solutions at a high level without much regard for formal semantics. Knuth's The Art of Computer Programming expresses most of its algorithms in a combination of informal English and ad-hoc pseudocode. It's usually not difficult to translate them into languages with semantics varying from machine code to Haskell.
- gdp 17y agoI didn't say "formal semantics", I said "fixed semantics", as in "something you understand and can apply consistently within a context". Within the context of a single code-fragment, the semantics are not changing. They might change from example to example, but that's perfectly reasonable. My assertion is that when people say "I think in pseudo-code", they actually mean "an idealised version of language X", where language X is some paradigm or language they understand well. I just wrote a blog post about this very subject, based on the flood of comments (shameless self-promotion follows): http://news.ycombinator.org/item?id=802780 http://news.ycombinator.org/item?id=802780
- byoung2 17y agoFor example, if someone asked me to do the fizzbuzz test (http://www.codinghorror.com/blog/archives/000781.html http://www.codinghorror.com/blog/archives/000781.html), I might think to myself in pseudocode: Loop from 1-100: if the current number is a multiple of 3, print "fizz" if the current number is a multiple of 5, print "buzz" otherwise, print the number print newline Then I might turn that into PHP: <?php for($i=1;$i<=100;$i++) { if($i % 3 == 0) {echo("Fizz");} if($i % 5 == 0) {echo("Buzz");} if($i % 3 != 0 && $i % 5 != 0) {echo($i);} echo("<br />"); } ?>