Lindy Mayfield wrote: > My understanding of this term, orthogonal, in relation to a computer > language may be best expressed by example, BASIC. > > LET A=1 B=2 IF A=B THEN C=3 > > That this is non-orthogonal because a) the = sign is an assignment > operator, b) there are two ways of invoking it, with the LET and > without, and c) that the = is used as a comparison operator. First time I heard this term in relation to computer languages was in relation to a comparison of PDP-11 vs. 68000 vs. 8086 assembler. When you look at an assembler instruction, you usually have three or four elements: - the action - one or two source locations - one destination location Now you can create a multi-dimensional "cube" and fill it with a processor's instruction set. If it's 100% orthogonal, you will have every action with every source and destination addressing mode. Some come close, many yield pretty spotty "cubes". With the ones with designed orthogonality, the individual dimensions usually map to bitmap fields in the opcodes. http://en.wikipedia.org/wiki/Orthogonal_instruction_set C is probably not orthogonal. Too many special cases for different types. However, I'm not sure whether "orthogonality" is actually 100% defined. It probably depends on what exactly you put on your dimensional axes. Gerhard -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist