Problem
I'm writing a document where I have to describe some of the properties of a type system as they relate to a particular formal grammar.
I was trying to refer to the right-hand-sides of the last two productions in the grammar when it struck me that it's very strange that I've pretty much always heard the left- and right-hand sides describes as such. In particular it seems like an artifact of our notation having its roots in languages which are read from left-to-right.
It would make sense for there to be terms like in logic, where the left-hand-side of an implication is the antecedent
and the right-hand-side is the consequent
.
These words don't refer to the notation properties, but actually describe the meaning of the implication from each side (although I suppose you could make the argument that they are artifacts of our conception of causality, but at least this provides some insight into the interpretation of the terms rather than the notation).
What I've tried so far:
I thought about it for a little while and the most natural words I could come up with were source
and destination
(obviously for the left- and right-hand-sides of the production, respectively.)
Sources I've checked:
- Looked through a couple of my textbooks on formal languages and compilers;
- Checked some likely Wikipedia pages;
- Skimmed/ctrl+f'd some online teaching resources, and of course;
- Checked math.stackexchange and also cstheory.stackexchange
Are there alternative names which are in colloquial use among computer scientists for referring to these components?