《JavaScript在线API文档生成文献综述.doc》由会员分享,可在线阅读,更多相关《JavaScript在线API文档生成文献综述.doc(11页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、本科毕业设计文献综述 (2012届)论文题目 JavaScript在线API文档生成JavaScript在线API文档生成引言随着现在软件工程的规模越来越大,参与项目的人数也越来越多,因此非常需要一些API文档来描述模块的功能,以让团队内的成员无需关心其它人的编码细节,减少沟通成本。而API文档的手动书写是一个漫长费时的过程,使用一些工具来生成API文档自然是最佳的解决方案。一、 关于JavaScript的研究1.1 JavaScript 语言背景JavaScript简称Js,是目前 Web应用程序开发者使用最为广泛的客户端脚本编程语言,它不仅可用来开发交互式的 Web页面,更重要的是它将 H
2、TML、XML和 Java applet、flash等功能强大的 Web对象有机结合起来,使开发人员能快捷生成 Internet或 Intranet上使用的分布式应用程序。另外由于 Windows对其最为完善的支持并提供二次开发的接口来访问操作系统各组件并实施相应的管理功能,JavaScript成为继.bat(批处理文件)以 来 Windows系统里使用最为广泛的脚本语言1。1.2 脚本语言脚本语言是为了缩短传统的编写-编译-链接-运行(edit-compile-link-run)过程而创建的计算机编程语言2。此命名起源于一个脚本“screenplay”,每次运行都会使对话框逐字重复。早期的脚
3、本语言经常被称为批量处理语言或工作控制语言。一个脚本通常是解释运行而非编译。脚本语言通常都有简单、易学、易用的特性,目的就是希望能让程序员快速完成程序的编写工作。1.3 JavaScript语言特性JavaScript作为一门脚本语言,具有较大的灵活性3。作者可以在代码任意位置定义和使用一个函数,也可以在任意变量读写属性。二、 关于API文档生成的研究2.1 API 文档API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件的以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节
4、4。API 文档则是专门用于描述API的文档。比如比较有名API文档如 java 2 api 文档5。2.2 现有的API文档生成技术目前主流的编程语言都有相应的文档生成工具,且这些工具也工作地很好,比如Java语言可以使用javadoc6来生成文档,生成的文档非常精确。目前国外最有名的JS文档生成项目为 Jsdoc Toolkit7,它的工作原理是在书写文档的时候额外提供一些标记,以让文档生成工具更好地理解,确保最后生成的文档是正确的。这样做就让书写文档的工作量倍增。因此它不是完美的解决方案。2.3 编译原理在API文档生成的应用编译是为了解析源码,并根据源码生成对应的可执行文件。现在的目标
5、是API文档生成,因此需要用到编译技术中的词法分析和语法分析8技术,在词法分析同时,还需要额外进行API文档注释分析。1) 词法分析一个词法分析器从输入中读取字符,并将它们组成“词法单元对象”9。2) 语法分析语法分析器从词法分析器获得一个由词法单元组成的串,并验证这个串可以由源语言的文法生成9。JavaScript 语言遵循 ECMA-26210 语法规范,因此进行JavaScript语法分析时,必须严格按照其文档中的文法约定执行。JavaScript在语法上符合LR1规范,因此可以使用LR1生成器来定制适用于JavaScript的语法分析器。图2-1 语法分析的位置3) 注释分析如果是一个
6、完整的编译器,则需要后续的单元链接11、代码优化过程语法分析可以得到代码语法树,通过遍历这棵树,可以分析出某个位置的注释的意义。4) 文档合成分析注释的时候,将创建一个临时变量域,分析这个变量域可以提取整个文档数据,提取的文档数据被存储为XML文件,这个步骤称为文档合成。2.4 基于DOM的XML文档解析技术XML(可扩展标记语言)是W3C为适应Internet的发展,实现快速的电子商务和电子数据交换而推出的新型web语言它具有自描述性、数据结构高度规范、良好的扩展性、以及其数据与平台无关性等诸多优点12。文档对象模型DOM(Document object Model)是W3C为在内存中建立X
7、ML文档的树结构提供的一种标准规范,XML文档中的每个元素、属性、CDATA部分等都可以用DOM树结构中的节点来表示。DOM是处理XML数据的传统方法。使用DOM时,数据以树状结构的形式被加载到内存中13。三、 关于在线API文档的研究3.1 在线API文档传统的API文档都是一个类似word的本地数据文件,它确实完成了API文档所应该拥有的功能。但在 web2.014 时代,如果能让更多人通过网页参与API文档内容的讨论,则可以帮助作者修正错误,更帮助读者对某个API进行评论。同时还能让来自不同地区的读者在网站上共同学习、共同进步。在线API文档也方便读者浏览文档,读者不需要安装额外的软件,
8、只需一个浏览器即可直接阅读文档。目前比较有名的在线API文档如 MSDN15。3.2 在线API文档的实现在线API文档本质上是一个 web2.0的网站,因此需要用到ASP.NET 、SQL数据库和 XML相关技术才能实现这样的功能。(1) ASP.NETASP.NET 不仅仅是 Active Server Page (ASP) 的下一个版本,而且是一种建立在通用语言上的程序构架,能被用于一台Web服务器来建立强大的Web应用程序。ASP.NET提供许多比现在的Web开发模式强大的优势16。(2) SQL数据库SQL(Structured Query Language),结构化查询语言。SQL
9、语言的主要功能就是同各种数据库建立联系,进行沟通。按照ANSI(美国国家标准协会)的规定,SQL被作为关系型数据库管理系统的标准语言。SQL语句可以用来执行各种各样的操作,例如更新数据库中的数据,从数据库中提取数据等。绝大多数流行的关系型数据库管理系统都采用了SQL语言标准。虽然很多数据库都对SQL语句进行了再开发和扩展,但是包括Select, Insert, Update, Delete, Create,以及Drop在内的标准的SQL命令仍然可以被用来完成几乎所有的数据库操作17。(3) XMLXML解决方案的使用让我们的系统实现更加清洁和优雅,而且当前XML相对其它技术更为轻量和可塑。超链
10、接标识文本语言(Hyper Text Markup Language ,HTML)和XML的区别是:HTML 只能使用预定的几个标签,这些标签在 文档类型定义(Document Type Denition,DTD)定义。用户可以使用样式表修改这些元素的样式。而XML的优势则在于(1)它将数据的存储和展示分开,不同的样式可以用于显示相同的数据。这对程序来说非常有必要,因为不同的用户需要展示不要的数据,比如指定医生和病人等看到的是不同的格式的网页。(2)这个分析器可以直观地提取数据,实现数据交换18。网站的数据是生成的文档内容,并且网站还允许用户注册登录、发布评论、搜索文档内容和检索文档索引。四、
11、 关于生成工具软件的研究作为一个软件,文档生成工具必须具有相应的用户界面。类似的项目有NDoc19,但该项目目前已经停止开发,不过其整体的软件设计是可以借鉴的。此外大部分文档生成工具仅提供了控制台命名接口,不具备图形界面。有一个图形操作界面可以让软件操作更简单明了。WinForm 具有下列优点:(1) 简单强大:Windows窗体可用于设计窗体和可视控件,以创建丰富的基于Windows的应用程序。(2) 新的数据提供程序管理:数据提供程序管理提供易于连接OLEDB和ODBC数据源的数据控件,包括Microsoft SQL Server、Microsoft Access、Jet、DB2以及Ora
12、cle等。(3) 安全:Windows窗体充分利用公共语言运行库的安全特性。这就意味着,一切都可以通过Windows窗体来实现,包括在浏览器中运行的不可信控件和用户硬盘上安装的完全可信的应用程序。(4) 灵活的控件:Windows窗体提供了一套丰富的控件,并且开发人员可以定义自己有特色的新的控件20。总结软件的最终目标是生成API文档,其中经历了这里步骤:(1) 提供一个图形界面方便用户操作。(2) 分析和生成文档。(3) 将分析的结构转为一个在线网站。软件用到了多方面的知识,其主要难点是解析部分。通过这个软件可以真正实现文档的自动化,把开发人员从书写文档的任务中解脱出来。参考文献1 尼古拉斯
13、泽卡斯(Nicholas C.Zakas) ,李松峰、曹力译. JavaScript高级程序设计(第2版)M. 人民邮电出版社,20102 Alfred V. Aho, Monica S.Lam, 赵建华、郑滔译. 编译原理M. 第2版. 机械工业出版社,20093 弗拉纳根. 李强译. JavaScript权威指南(第5版). 机械工业出版社.2007-84 百度百科OL.5 Java2 文档OL.6 Javadoc ToolOL7 jsdoc-toolkitOL.8 李文生.编译原理与技术M. 清华大学出版社,20099 Alfred.V.Aho, Monica S.Lam, Ravi S
14、ethi, Jeffrey D.Ullman 赵建华、郑淘、戴新宇译.编译原理.机械工业出版社.200710 ECMA. Standard ECMA-262PDF, http:/www.ecma-international.org/publications/standards/Ecma-262.htm.2011-111 (美)Alfred V.Aho;Monica S.Lam;Ravi Sethi;Jeffrey D.Ullman. Compilers: Principles, Techniques, and Tools (2nd Edition)M, 机械工业出版社, 200812 Deit
15、el H m,Deitel P J康博译XML编程技术大全M北京:清华大学出版社,200013 常春燕,李定主. XML文档解析技术研究J. 太原师范学院学报,200614 百度百科OL. 15 MSDNOL.16 Bill Evjen, Scott Hanselman, Devin Rader, 李增民译. ASP.NET 4高级编程:涵盖C#和VB.NET(第7版)M, 清华大学出版社,2010-917 Robert Vieria. Beginning Microsoft SQL Server 2008 ProgrammingM, 清华大学出版社, 201018 George Stalidis, Andriana Prentza, Ioannis N. Vlachos,Stavroula Maglavera, Dimitris Koutsouris. Medical support system for continuation of care based on XML web technologyJ. International Journal of Medical Informatics.200119 NDocOL.20 钱哨.C# WinForm实践开发教程,中国水利水电出版社,201111