Slide 15 of 41
Notes:
This tutorial fairly gently (!) tries to sell the idea of using “AUTOMATIC TAGS” in the module header.
This reflects a move from the days of hand-coding an ASN.1 specification to the present days of using a tool for encoding and decoding.
If you are doing hand-coding, it is vital that you are in no doubt about the tags that are present, because (at least in the Basic Encoding Rules), they appear as bits on the line. Making the presence of tags and their encoding very clear in the specification (even to the extent of always including one of the words EXPLICIT or IMPLICIT with every tag) minimises any chance of implementors getting tagging wrong! Use of AUTOMATIC TAGS in the module header gives maximum scope for errors, with IMPLICIT TAGS being a half-way house!
On the other hand, if most implementors will be using tools for encoding and decoding (and it is not unreasonable to assume that tool vendors will have correctly implemented support for automatic tagging), then the use of AUTOMATIC TAGS makes for a much clearer specification, and enables both the writer of the specification and the implementor to remain in blissful ignorance of the (fairly complicated) rules associated with tagging.
Moreover, the fact that the preferred encoding rule today does not encode tags makes it even more appropriate to avoid cluttering a specification with them.
That is broadly where we are today, except that there remain many current specifications that contain tags, and readers of ASN.1 quite naturally want to understand what they are about.
This tutorial tries to help with that.