ASN.1 / XML Software Tools from Objective Systems
首页 > 产品 > ASN1C

ASN1C ASN1 COMPILER

ASN.1 到 C / C++ 编译器
ASN.1 到 Java / C# 编译器
ASN1C 编译器常见问题解答
评估版本

Objective System的ASN1C编译器把ASN.1源代码和/或XML定义源文件(XSD)迅速可靠地 翻译成等价的一种计算机语言(如C, C++, C#或Java)源代码。开发人员可以使用该代码 翻译结构/对象到使用任何编码规则(BER, CER, DER, PER 或 XER).的ASN.1消息,或从 ASN.1消息到结构/对象。

编译器产生的源代码由类型定义和编码/解码函数(或方法)组成。为使用ASN.1内包 含的所有消息定义,提供了完整的应用程序接口(API)。

除了编译器,一个通用的运行编/解码函数库也是该软件的一部分。此函数库包含了编 码和解码ASN.1原语(如布尔型,整型)的子程序。ASN1C编译器使用了一系列对这些函数 的调用来实现更复杂消息类型的编码和解码。

获取并运行一个编码/解码器,一名程序员所有要做的事情是:
1. 运行ASN1C生成给定的ASN.1或者XSD定义,
2. 开发一个应用,调用在生成的代码中的功能或方法,
3. 编译/连接该应用,生成代码和运行库。
为能满足第二和第三项,编译器也有应能力生成读写例程,如同创建所有代码的生成文件 一样。

ASN.1 到 C 或 C++ 编译器

ASN1C能对特定的ASN.1规范生成C或C++源代码。C和C++版本都使用一个由一组低层编码和解码 基本类型的简单C函数组成的通用运行基本运行库。代码生成主要是C代码并且为所有定义的ASN.1 数据类型提供一套完善的C代码API函数。

C++代码生成添加了一组类“封装”,隐藏了大部分调用编/解码函数的细节。这些封装 提供了专门针对C++的附加服务,包括通过构造器实现生成类型的变量自动初始化,通过 重载操作符进行数据更简单的分配和测试以及通过事件处理机制实现虚回调。

ASN.1 到 Java 或 C# 编译器

ASN1C编译器同样也能生成Java或C#代码。生成的Java代码由一系列Java源文件——每个 在ASN.1规范中内定义的production(类型)生成一个。每个Java文件(至少)包括下列 内容:
• 一个公共成员数据变量(或几个变量),用来保存生成类型的数据;
• 一个构造器(或几个),用来初始化变量;
• 一个编码方法;
• 一个解码方法;
• 一个打印方法,用来打印指定的输出流的对象内容。

同样也有一个Java运行库,由一系列编码和解码简单ASN.1类型的类组成。例如,ASN1 整型类编码和解码ASN.1整型变量。编译器将扩展这些基本类以形成从基本类型直接得到高 级类型,或组合一系列低层对象以形成结构类型(如SEQUENCE)。

生成C#代码非常类似于上面描述的Java代码生成。为每个在ASN.1规范中定义的production 生成一个单独的C#类,包含编码和解码一个使用任何ASN.1编码规则类实例的构造器和方法。

支持Java MicroEdition (J2ME) 或者 C# compact edition库的Java 或者 C# 集成开发 工具已经可用了。

阅读更多 - ASN1C 编译器常见问题解答...

“我相当高兴它集成运行时库和我们的嵌入式系统是如此方便。我还 没有找到任何其它供应商能给我们非标准的O/S用的运行时代码。”
 

易于使用的软件
我们的用户友好的界面和向导引导您代码生成的过程。

成本效益良好
以具有竞争力的价格带给您的快速投资回报。

坚固的性能和稳定性
我们的客户都报告说,与竞争对手的产品相比较,Objective System的产品带来更加稳定的、可靠的和坚固的性能。

响应支持与服务
响应支持与在ASN.1软件应用开发方面广泛的专业意见。

* Java 和所有 Java 相关的产品都是 Sun Microsystems 的注册商标