1、1 本科毕业设计文献综述 (2012 届)届) 论文题目 JavaScript 在线 API 文档生成 2 JavaScriptJavaScript 在线在线 APIAPI 文档生成文档生成 引言 随着现在软件工程的规模越来越大,参与项目的人数也越来越多,因此非常 需要一些API文档来描述模块的功能,以让团队内的成员无需关心其它人的编码 细节,减少沟通成本。 而API文档的手动书写是一个漫长费时的过程,使用一些工具来生成API文档 自然是最佳的解决方案。 3 一、 关于 JavaScript 的研究 1.1 JavaScript 语言背景 JavaScript简称Js,是目前 Web应用程序开
2、发者使用最为广泛的客户端脚本 编程语言,它不仅可用来开发交互式的 Web 页面,更重要的是它将 HTML、 XML 和 Java applet、flash 等功能强大的 Web 对象有机结合起来,使开发人员 能快捷生成 Internet 或 Intranet 上使用的分布式应用程序。另外由于 Windows 对其最为完善的支持并提供二次开发的接口来访问操作系统各组件并实施相应 的管理功能,JavaScript 成为继.bat(批处理文件)以 来 Windows 系统里使用最为 广泛的脚本语言1。 1.2 脚本语言 脚本语言是为了缩短传统的编写-编译-链接-运行(edit-compile-lin
3、k-run)过 程而创建的计算机编程语言2。此命名起源于一个脚本“screenplay”,每次运 行都会使对话框逐字重复。早期的脚本语言经常被称为批量处理语言或工作控 制语言。一个脚本通常是解释运行而非编译。脚本语言通常都有简单、易学、 易用的特性,目的就是希望能让程序员快速完成程序的编写工作。 1.3 JavaScript 语言特性 JavaScript 作为一门脚本语言,具有较大的灵活性3。作者可以在代码任意 位置定义和使用一个函数,也可以在任意变量读写属性。 4 二、 关于 API文档生成的研究 2.1 API 文档 API(Application Programming Interfa
4、ce,应用程序编程接口)是一些预先定义 的函数,目的是提供应用程序与开发人员基于某软件或硬件的以访问一组例程 的能力,而又无需访问源码,或理解内部工作机制的细节4。 API 文档则是专门用于描述 API 的文档。比如比较有名 API 文档如 java 2 api 文档5。 2.2 现有的 API 文档生成技术 目前主流的编程语言都有相应的文档生成工具,且这些工具也工作地很 好,比如 Java 语言可以使用 javadoc6来生成文档,生成的文档非常精确。 目前国外最有名的JS文档生成项目为 Jsdoc Toolkit7,它的工作原理是在书 写文档的时候额外提供一些标记,以让文档生成工具更好地理
5、解,确保最后生 成的文档是正确的。这样做就让书写文档的工作量倍增。因此它不是完美的解 决方案。 2.3 编译原理在 API 文档生成的应用 编译是为了解析源码,并根据源码生成对应的可执行文件。 现在的目标是 API 文档生成,因此需要用到编译技术中的词法分析和语法 分析8技术,在词法分析同时,还需要额外进行 API 文档注释分析。 1) 词法分析 一个词法分析器从输入中读取字符,并将它们组成“词法单元对象”9。 2) 语法分析 语法分析器从词法分析器获得一个由词法单元组成的串,并验证这个串可 以由源语言的文法生成9。JavaScript 语言遵循 ECMA-26210 语法规范,因此 进行Ja
6、vaScript语法分析时,必须严格按照其文档中的文法约定执行。JavaScript 在语法上符合 LR1 规范,因此可以使用 LR1 生成器来定制适用于 JavaScript 的 语法分析器。 5 图 2-1 语法分析的位置 3) 注释分析 如果是一个完整的编译器,则需要后续的单元链接11、代码优化过程语法 分析可以得到代码语法树,通过遍历这棵树,可以分析出某个位置的注释的意 义。 4) 文档合成 分析注释的时候,将创建一个临时变量域,分析这个变量域可以提取整个 文档数据,提取的文档数据被存储为 XML 文件,这个步骤称为文档合成。 2.4 基于 DOM 的 XML 文档解析技术 XML(可扩展标记语言)是W3C 为适应Internet的发展,实现快速的电子商务 和电子数据交换而推出的新型 web 语言它具有自描述性、数据结构高度规 范、良好的扩展性、以及其数据与平台无关性等诸多优点12。 文档对象模型 DOM(Document object Model)是 W3C 为在内存中建立 XML 文档的树结构提供的一种标准规范,XM