This Article 
   
 Share 
   
 Bibliographic References 
   
 Add to: 
 
Digg
Furl
Spurl
Blink
Simpy
Google
Del.icio.us
Y!MyWeb
 
 Search 
   
The Design and Implementation of an ASN.1-C Compiler
October 1990 (vol. 16 no. 10)
pp. 1209-1220

Abstract syntax notation one (ASN.1) has been widely used in international standard specification: its transfer-syntax, the basic encoding rules (BER), is used as the external data representation. A BER implementation called the ED library is presented. The ED library includes a number of encoding and decoding routines that may be used as primitive functions to compose encoders and decoders for arbitrarily complicated ASN.1 data types. Based on the ED library an ASN.1-C compiler, called CASN1, is designed and implemented to free the protocol implementers from the arduous work of translating protocol-defined data-types and constructing their encoders and decoders. Given an ASN.1 protocol specification, CASN1 automatically translates the input ASN.1 modules into C and generates the BER encoders and decoders for the protocol defined data-types. The CASN1 design principles, user interface, and some example applications are discussed. The performance of the ED library and generated CASN1 code is also measured and discussed.

[1] CCITT, Recommendation X.208, "Specification of abstract syntax notation one (ASN.1)," Geneva, Switzerland, 1987.
[2] CCITT, Recommendation X.209, "Specification of basic encoding rules for abstract syntax notation one (ASN.1)," Geneva, Switzerland, 1987.
[3] CCITT, Recommendation X.226 (ISO 8823 proof F), "Presentation protocol specification for open systems interconnection for CCITT applications," Geneva, Switzerland, 1987.
[4] CCITT, Recommendation X.409, "Message handling system--Presentation transfer syntax and notation," inCCITT Red Book, Vol. VIII, Fascicle VIII. 7, Geneva, Switzerland, 1985.
[5] CCITT, Recommendation X.410, "Message handling system--Remote operations and reliable transfer service," inCCITT Red Book, Vol. VIII, Fascicle VIII. 7, Geneva, Switzerland, 1985.
[6] D. Chappell, "A tutorial on abstract syntax notation one (ASN.1),"Open systems data transfer, Omnicom Information Service, Omnicom, Inc., Transmission 25, open systems data transfer, ISSN 0741- 286X, Dec. 1986.
[7] International Standard for Information Processing System, "Open systems interconnection--Specification of abstract syntax notation one (ASN.1),"ISO Final 8824, 1987.
[8] International Standard for Information Processing System, "Open systems interconnection--Specification of abstract syntax notation one (ASN.1)--Proposed draft addendum 1: Extensions to ASN. 1,"ISO DP 8824 PDAD 1, 1987.
[9] International Standard for Information Processing System, "Open systems interconnection-Specification of basic encoding rules for abstract syntax notation one (ASN.1)."ISO Final 8825, 1987.
[10] International Standard for Information Processing System, "Open systems interconnection--Specification of basic encoding rules for abstract syntax notation one (ASN.1)--Proposed draft addendum 1: Extensions to ASN.1 basic encoding rules,"ISO DP 8825 PDAD 1, 1987.
[11] International Standard for Information Processing System, "Open systems interconnection--Virtual terminal protocol--Basic class,"ISO DIS 9041, 1987.
[12] ISO/CCITT, "The directory," Gloucester, Directory Convergence Document #1-#8, CCITT Recommendation X.500-X.521, ISO DIS 9594.1-9594.8, Nov. 1987.
[13] ISODE, "The ISO development environment: User manual," Wollongong Group, Palo Alto, CA, Version 4.102 vols. 1 and 4, Aug. 1988.
[14] "User guide for the NBS prototype compiler for Estelle, final report," U.S. Dep. Commerce, Nat. Bureau Standards, Rep. ICST/ SNA-87/3, Oct. 1987.
[15] G. Neufeld, "EAN: A distributed message system," inProc. Canadian Information Processing Society National Meeting, Ottawa, Ont., Canada, May 1983, pp. 144-149.
[16] G. Neufeld, J. Demco, B. Hilpert, and R. Sample, "EAN: An X.400 message system," inProc. IFIP Computer Message System '85. Amsterdam, The Netherlands: Elsevier North-Holland, 1986.
[17] S. Ng, "On implementing the ISO virtual terminal protocol for a UNIX environment,"Master's Thesis, Dep. Comput. Sci., Univ. British Columbia, 1988.
[18] G. Bochmann, D. Ouimet, and G. Neufeld, "Implementation support tools for OSI application layer protocols," Dep. d'Informatique et de Recherche Operationnelle, Univ. Montreal, 1990.
[19] Sloman, M., and J. Kramer,Distributed Systems and Computer Networks, Prentice Hall, Englewood Cliffs, N.J., 1987.
[20] Y. Yang,ED Library User Manual, Dep. Comp. Sci., Univ. British Columbia, 1988.
[21] Y. Yang,CASN1 User Manual, Dep. Comput. Sci., Univ. British Columbia, 1988.
[22] T. Hasegawa, H. Horiuchi, T. Kato, K. Suzuki, and Y. Urano, "Automatic Ada program generation from protocol specification based on Estelle and ASN.1," inProc. 9th Int. Conf. Computer Communications, Tel Aviv, Israel, Oct. 1988, pp. 181-185.

Index Terms:
abstract syntax notation one; design; implementation; ASN.1-C compiler; international standard specification; transfer-syntax; basic encoding rules; external data representation; ED library; decoding; CASN1; protocol; C; user interface; decoding; encoding; program compilers; protocols; standards
Citation:
G.N. Neufeld, Y. Yang, "The Design and Implementation of an ASN.1-C Compiler," IEEE Transactions on Software Engineering, vol. 16, no. 10, pp. 1209-1220, Oct. 1990, doi:10.1109/32.60300
Usage of this product signifies your acceptance of the Terms of Use.