When there&#x27;s a close match between a lexical rule and a semantic rule, it&#x27;s easier to remember how to use the semantics.<p>Most languages have an arbitrary rule for distinguishing between an identifier (it begins with letter, except for 30 to 80 special cases) and keyword (30 to 80 special cases) which is hard to remember. When the rule is that the first character of an alphanumeric sequence determines whether it references a number (it begins with digit) or identifier (it begins with letter), that&#x27;s easy to remember. Golang extends that idea by also distinguishing between public (beginning with uppercase) and private variables in this way, but it still falls short on its rule for recognizing the 50-odd keywords and special identifiers.<p>Languages that have simple lexical-semantic matches enable people to program in it without IDE&#x27;s or other crud.