On 2/20/2015 5:02 PM, Dave G4UGM wrote:
Almost all , so there exceptions, modern compliers
are written in a high
level language. Most use LEXX and YACC or their modern equivalents to
generate the program fragments needed to generate the code.
I would say that is 50%. If you have LEXX and YACC you tend have a
UNIX system with a C compiler.
You have a
front-end, which does the lexical work and translates the
program into some intermediate form, such as a tree. In the middle, you
have optimization and checking--and finally, you have the back end which
essentially emits code--but that doesn't necessarily imply that the
compiler
author knows the numeric opcodes or the precise
instruction format. Many
compiler backends feed into an existing assembler, which puts it all
together.
How do handle byte operations in C like *x++ on a PDP 10?
> Knowing the numeric opcodes and instruction format
isn't all that it would
> seem to be. I never had much more than a passing familiarity with the
> numeric opcodes of the CDC STAR--given that there was 8 bits for the
> opcode and 8 more "modifier" bits, you arguably had a machine with
> thousands of opcodes. What was hardest and very important was
> committing to memory the *timings* of those instructions, within a
> superscalar, segmented, pipelined vector architecture.
Time for POWER code re-arrangement.
Ben.