Hacker News new | past | comments | ask | show | jobs | submit login

Early versions of Word ran in a custom interpreter Microsoft wrote. Think like Java or WASM bytecode. To debug this properly would require writing a special version of that interpreter with debugging features built-in.

Debugging an interpreted program by debugging the emulator it's inside of is a special kind of hell. Even moreso if you don't have debugging symbols for that emulator either. Instead of "step to next instruction", it's "step to next bytecode fetch, step through the interpreter's jump table, step through the implementation of that instruction, figure out what it is, repeat". Each one of those is multiple machine code instructions and you will lose track of things very quickly.




> the instructions comprising their applications were encoded in pseudo-code to save space, in the tradition of the byte-code interpreters from Xerox, which Charles Simonyi advocated.

I never heard of that; Simonyi is usually associated with his "Hungarian style" of prefixing variable names by type indicators (sz_* for pointers to strings implemented as zero-terminated character sequences etc. - https://en.wikipedia.org/wiki/Hungarian_notation ).

Writing office in interpreted bytecode must have slowed down things quite a lot, and back then there was not JIT compilation available. Does anyone have specifics on that VM (e.g. opcode table)?


Wow now that’s interesting I didn’t fully understand what he meant by pseudo code, but this makes it especially interesting!




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: