跳到主要内容
文章

java行为接口规范语言JML的初步设计

出版:2006年5月1日出版历史
跳过抽象节

摘要

JML是一种为Java(TM)量身定制的行为接口规范语言。除了前置和后置条件外,它还允许断言与Java代码混合;这些有助于验证和调试。JML是为在职软件工程师设计的;为此,它遵循Eiffel在断言中使用Java表达式。JML将埃菲尔的这一思想与基于模型的规范方法相结合,以VDM和Larch为代表,从而获得更高的表达能力。与埃菲尔相比,其他表现力优势包括量词、仅指定变量和框架条件。本文讨论了JML的目标和总体方法,并通过示例描述了该语言的基本特性。它面向对Java和使用前置和后置条件的行为规范都有一定了解的读者。

工具书类

  1. {AGH00}肯·阿诺德、詹姆斯·戈斯林和大卫·霍姆斯。Java编程语言第三版。Addison-Wesley,马萨诸塞州雷丁,2000年。]]谷歌学者谷歌学者数字图书馆数字图书馆
  2. {Ame87}皮埃尔美国。并行面向对象语言中的继承和子类型。在Jean Bezivin等人,编辑,ECOOP’87,面向对象编程欧洲会议,法国巴黎,第234-242页,纽约,纽约,1987年6月。斯普林格·弗拉格。计算机科学课堂讲稿,第276卷。]]谷歌学者谷歌学者数字图书馆数字图书馆
  3. {Ame91}皮埃尔美国。使用行为子类型设计面向对象的编程语言。J.W.de Bakker、W.P.de Roever和G.Rozenberg,《面向对象语言基础》编辑,REX学校/研讨会,荷兰诺德威克霍特,1990年5月/6月,《计算机科学讲义》第489卷,第60-90页。Springer-Verlag,纽约州纽约市,1991年。]]谷歌学者谷歌学者数字图书馆数字图书馆
  4. {Bac88}R.J.R.背景。程序派生的细化演算。信息学报,25(6):593--6241988年8月。]]谷歌学者谷歌学者数字图书馆数字图书馆
  5. {BG98}肯特·贝克和埃里奇·伽玛。测试感染:程序员喜欢编写测试。爪哇报告,3(7):37--50,1998年。]]谷歌学者谷歌学者
  6. {BMR95}亚历克斯·博吉达(Alex Borgida)、约翰·米洛波洛斯(John Mylopoulos)和雷蒙德·雷特(Raymond Reiter)。关于程序规范中的框架问题。IEEE软件工程汇刊,21(10):785--7981995年10月。]]谷歌学者谷歌学者数字图书馆数字图书馆
  7. {BMvW98}拉尔夫·巴克(Ralph Back)、安娜·米哈伊洛娃(Anna Mikhajlova)和约阿金·冯·赖特(Joakim von Wright)。使用迭代选择对组件环境和交互式程序进行建模。技术报告200,图尔库计算机科学中心,1998年9月。http://www.tucs.abo.fi/publications/techreports/TR200.html。]]谷歌学者谷歌学者数字图书馆数字图书馆
  8. {BvW98}拉尔夫·约翰·巴克(Ralph-Johan Back)和约阿金·冯·赖特(Joakim von Wright)。精化微积分:系统介绍。计算机科学研究生课程。Springer-Verlag,1998年。]]谷歌学者谷歌学者数字图书馆数字图书馆
  9. {BW00}马丁·比奇和沃尔夫冈·威克。通用包装器。伊丽莎·贝蒂诺(Elisa Bertino),编辑,《ECOOP 2000——面向对象编程》,第14届欧洲会议,计算机科学讲义第1850卷,第201至225页,2000年。]]谷歌学者谷歌学者数字图书馆数字图书馆
  10. {Cha02}帕特里斯·沙林。回到基础:JML和Larch中基本无限整数类型的语言支持和语义。《CU-CS 2002-003.1技术报告》,康考迪亚大学计算机科学系,2002年10月。]]谷歌学者谷歌学者
  11. {Cha04}帕特里斯·沙林。JML对基本任意精度数字类型的支持:定义和语义。对象技术杂志,3(6):57-792004年6月。]]谷歌学者谷歌学者交叉引用交叉引用
  12. {Che03}Yoonsik Cheon。Java建模语言的运行时断言检查器。技术报告03-09,爱荷华州立大学计算机科学系,爱荷华州艾姆斯,2003年4月。作者的博士论文。]]谷歌学者谷歌学者交叉引用交叉引用
  13. {CL02a}Yoonsik Cheon和Gary T.Leavens。Java建模语言(JML)的运行时断言检查器。Hamid R.Arabnia和Youngsong Mun,编辑,《软件工程研究与实践国际会议论文集》(SERP’02),美国内华达州拉斯维加斯,2002年6月24-27日,第322-328页。CSREA出版社,2002年6月。]]谷歌学者谷歌学者
  14. {CL02b}Yoonsik Cheon和Gary T.Leavens。一种简单实用的单元测试方法:JML和JUnit方式。鲍里斯·马格努森(Boris Magnusson),编辑,ECOOP 2002---面向对象编程,第16届欧洲会议,西班牙马拉加,《计算机科学讲稿》第2374卷,第231-255页,柏林,2002年6月。施普林格-弗拉格。]]谷歌学者谷歌学者数字图书馆数字图书馆
  15. {CL05}Yoonsik Cheon和Gary T.Leavens。运行时断言检查的不确定性的上下文解释。2005年9月19日至21日,在美国加利福尼亚州蒙特雷举行的第六届自动和分析驱动调试国际研讨会论文集(AADEBUG 2005)上,第149-157页。ACM出版社,2005年9月。]]谷歌学者谷歌学者数字图书馆数字图书馆
  16. {Coh90}爱德华·科恩。20世纪90年代的程序设计:程序计算导论。Springer-Verlag,纽约州纽约市,1990年。]]谷歌学者谷歌学者数字图书馆数字图书馆
  17. {DL96}克里希纳·基肖尔·达拉(Krishna Kishore Dhara)和加里·利文斯(Gary T.Leavens)。通过规范继承强制行为子类型。《第18届软件工程国际会议论文集》,德国柏林,258-267页。IEEE计算机学会出版社,1996年3月。更正后的版本是爱荷华州州立大学计算机科学系TR#95-20c。]]谷歌学者谷歌学者数字图书馆数字图书馆
  18. {ECGN01}迈克尔·恩斯特(Michael Ernst)、杰克·科克雷尔(Jake Cockrell)、威廉·格里斯·沃尔德(William G.Gris-wold)和大卫·诺特金(David Notkin)。动态发现可能的程序不变量以支持程序进化。IEEE软件工程学报,27(2):99-1232001年2月。]]谷歌学者谷歌学者数字图书馆数字图书馆
  19. {Fin96}凯特·芬尼。形式规范中的数学符号:对大众来说太难了?IEEE软件工程学报,22(2):158--1591996年2月。]]谷歌学者谷歌学者数字图书馆数字图书馆
  20. {FL98}约翰·菲茨杰拉德和彼得·戈姆·拉森。建模系统:软件开发中的实用工具。剑桥,剑桥,英国,1998年。]]谷歌学者谷歌学者
  21. {GHG+93}John V.Guttag、James J.Horning、S.J.Garland、K.D.Jones、A.Modet和J.M.Wing。Larch:用于形式化规范的语言和工具。施普林格-弗拉格,纽约州纽约市,1993年。]]谷歌学者谷歌学者数字图书馆数字图书馆
  22. {GJSB00}詹姆斯·戈斯林、比尔·乔伊、盖·斯蒂尔和吉拉德·布拉查。Java语言规范第二版。Java系列。Addison-Wesley,马萨诸塞州波士顿,2000年。]]谷歌学者谷歌学者数字图书馆数字图书馆
  23. {GL86}大卫·K·吉福德和约翰·M·卢卡森。集成功能和命令式编程。在ACM LISP和函数编程会议上,第28-38页。ACM,1986年8月。]]谷歌学者谷歌学者数字图书馆数字图书馆
  24. {GS95}大卫·格里斯和弗雷德·施耐德。避免未定义的指定不足。《今日计算机科学:最新趋势和发展》编辑简·范·列文在《计算机科学讲义》第366-373页中排名1000。Springer-Verlag,纽约州纽约市,1995年。]]谷歌学者谷歌学者
  25. {Hay93}I.Hayes,编辑。规范案例研究。计算机科学国际丛书。Prentice-Hall,Inc.,第二版,1993年。]]谷歌学者谷歌学者数字图书馆数字图书馆
  26. {Hoa69}C.A.R.霍尔。计算机编程的公理基础。ACM通讯,12(10):576--583,1969年10月。]]谷歌学者谷歌学者数字图书馆数字图书馆
  27. {Hoa72}C.A.R.霍尔。数据表示的正确性证明。《信息学报》,1(4):271--2811972年。]]谷歌学者谷歌学者数字图书馆数字图书馆
  28. {Hui01}玛丽克·赫斯曼。用PVS和Isabelle推理高阶逻辑中的Java程序。荷兰奈梅亨大学,2001年2月,2001-03年,国际公共管理学院论文系列。]]谷歌学者谷歌学者
  29. {Jon90}克利夫·琼斯。使用VDM进行系统软件开发。计算机科学国际丛书。普伦蒂斯·霍尔(Prentice Hall),新泽西州恩格尔伍德克利夫斯(Englewood Cliffs),第二版,1990年。]]谷歌学者谷歌学者数字图书馆数字图书馆
  30. {Jon91}H.B.M.Jonkers。升级前置和后置条件技术。S.Prehn和W.J.Toetenel,编辑,VDM’91正式软件开发方法第四届VDM欧洲国际研讨会,荷兰诺德维克霍特,第1卷:会议贡献,计算机科学讲稿第551卷,第428-456页。施普林格-弗拉格,纽约州纽约市,1991年10月。]]谷歌学者谷歌学者数字图书馆数字图书馆
  31. {JvdBH+98}巴特·雅各布斯(Bart Jacobs)、约阿希姆·范登伯格(Joachim van den Berg)、玛丽克·赫斯曼(Marieke Huisman)、马蒂恩·范贝库姆(Martijn van Berkum)、乌尔里希·亨塞尔(Ulrich Hensel)和亨德里克·图斯。关于Java类的推理(初步报告)。在OOPSLA’98会议记录中,ACM SIGPLAN通知第33(10)卷,第329-340页。ACM,1998年10月。]]谷歌学者谷歌学者数字图书馆数字图书馆
  32. {LB99}加里·利文斯(Gary T.Leavens)和阿尔伯特·贝克(Albert L.Baker)。增强前置和后置条件技术,以获得更具表现力的规范。Jeannette M.Wing、Jim Woodcock和Jim Davies,编辑,FM'99《形式方法:计算系统开发中的形式方法世界大会》,法国图卢兹,1999年9月,《计算机科学讲稿》第1709卷,第1087-1106页。Springer-Verlag,1999年。]]谷歌学者谷歌学者数字图书馆数字图书馆
  33. {LBR99}加里·利文斯(Gary T.Leavens)、阿尔伯特·L·贝克(Albert L.Baker)和克莱德·鲁比(Clyde Ruby)。JML:详细设计的符号。在Haim Kilov、Bernhard Rumpe和Ian Simmonds编辑的《企业和系统的行为规范》中,第175-188页。Kluwer学术出版社,波士顿,1999年。]]谷歌学者谷歌学者交叉引用交叉引用
  34. {Lea96}加里·利文斯(Gary T.Leavens)。Larch/C++概述:C++模块的行为规范。编辑Haim Kilov和William Harvey,《面向对象信息建模中的行为语义规范》,第8章,第121-142页。Kluwer学术出版社,波士顿,1996年。扩展版本为TR#96-01d,爱荷华州立大学计算机科学系,爱荷华州埃姆斯,50011。]]谷歌学者谷歌学者
  35. {Lea97}加里·利文斯(Gary T.Leavens)。落叶松/C++参考手册。版本5.14。在中可用ftp://ftp.cs.iastate.edu/pub/larchc文件++/lcpp.ps.gz或在万维网上的URLhttp://www.cs.iastate.edu/~leavens/larchc++.html,1997年10月。]]谷歌学者谷歌学者
  36. {Lea00}加里·利文斯(Gary T.Leavens)。落叶松经常问问题。版本1.110。在中可用http://www.cs.iastate.edu/~ leavens/larch-faq.html,2000年5月。]]谷歌学者谷歌学者
  37. {Lei95a}K.Rustan M.Leino。程序模块化规范中的一个神话。技术报告KRML 63,数字设备公司,系统研究中心,130 Lytton Avenue Palo Alto,CA 943011995年11月。从作者处获取[电子邮件保护].]]谷歌学者谷歌学者
  38. {Lei95b}K.Rustan M.Leino。走向可靠的模块化程序。加州理工学院博士论文,1995年。可用作技术报告Caltech-CS-TR-95-03。]]谷歌学者谷歌学者数字图书馆数字图书馆
  39. {Lei98}K.Rustan M.Leino。数据组:指定扩展状态的修改。在OOPSLA’98会议记录中,ACM SIGPLAN通知第33(10)卷,第144-153页。ACM,1998年10月。]]谷歌学者谷歌学者数字图书馆数字图书馆
  40. {LG88}约翰·卢卡森(John M.Lucassen)和大卫·吉福德(David K.Gifford)。多晶效应系统。《第十五届美国计算机学会编程语言原理研讨会会议记录》,加利福尼亚州圣地亚哥,第47-57页。ACM,1988年1月。]]谷歌学者谷歌学者数字图书馆数字图书馆
  41. {LH94}K.Lano和H.Haughton,编辑。面向对象规范案例研究。面向对象系列。普伦蒂斯·霍尔,纽约州纽约市,1994年。]]谷歌学者谷歌学者数字图书馆数字图书馆
  42. {LNS00}K.Rustan M.Leino、Greg Nelson和James B.Saxe。ESC/Java用户手册。技术说明,Compaq系统研究中心,2000年10月。]]谷歌学者谷歌学者
  43. {LPC+05}加里·利文斯(Gary T.Leavens)、埃里克·波尔(Erik Poll)、柯蒂斯·克利夫顿(Curtis Clifton)、尹西克·陈(Yoonsik Cheon)、克莱德·鲁比(Clyde Ruby)、大卫·科克(David R.Cok)、彼得·米勒(Peter Müller。JML参考手册。爱荷华州立大学计算机科学系。可从以下位置获得http://www.jmlspecs.org,2005年7月。]]谷歌学者谷歌学者
  44. {LPHZ02}K.Rustan M.Leino、Arnd Poetzsch-Heffter和Yunhong Zhou。使用数据组指定并检查副作用。《2002年ACM SIGPLAN编程语言设计与实现会议论文集》(PLDI'02),SIGPLAN第37卷,第5卷,第246-257页,纽约,2002年6月17-19日。ACM出版社。]]谷歌学者谷歌学者数字图书馆数字图书馆
  45. {Luc87}约翰·卢卡森(John M.Lucassen)。类型和效果:实现功能性编程和命令性编程的集成。技术报告TR-408,麻省理工学院计算机科学实验室,1987年8月。]]谷歌学者谷歌学者
  46. {85级}大卫·勒克姆(David Luckham)和弗里德里希·冯·亨克(Friedrich W.von Henke)。anna概述—Ada的规范语言。IEEE软件,2(2):9--231985年3月。]]谷歌学者谷歌学者数字图书馆数字图书馆
  47. {LvHKBO87}大卫·勒克姆(David Luckham)、弗里德里希·冯·亨克(Friedrich W.von Henke)、伯恩德·克里格·布吕克纳(Bernd Krieg-Brückner)和奥拉夫·奥韦(Olaf Owe)。ANNA-一种注释Ada程序的语言,《计算机科学讲义》第260卷。Springer-Verlag,纽约州纽约市,1987年。]]谷歌学者谷歌学者数字图书馆数字图书馆
  48. {LW94}芭芭拉·利斯科夫和珍妮特·温格。子类型的行为概念。《美国计算机学会编程语言与系统汇刊》,16(6):1811--18411994年11月。]]谷歌学者谷歌学者数字图书馆数字图书馆
  49. {LW95}加里·利文斯(Gary T.Leavens)和威廉·韦尔(William E.Weihl)。使用超类型抽象的面向对象程序的规范和验证。《信息学报》,32(8):705--7781995年11月。]]谷歌学者谷歌学者数字图书馆数字图书馆
  50. {LW97}加里·利文斯(Gary T.Leavens)和珍妮特·温格(Jeannette M.Wing)。保护接口规范。Michel Bidoit和Max Dauchet主编,《TAPSOFT’97:软件开发的理论与实践》,第七届CAAP/FASE国际联合会议,法国里尔,计算机科学讲义第1214卷,第520-534页。施普林格出版社,纽约,纽约,1997年。]]谷歌学者谷歌学者数字图书馆数字图书馆
  51. {Mey92a}贝特朗·梅耶。采用“合同设计”。计算机,25(10):40--511992年10月。]]谷歌学者谷歌学者数字图书馆数字图书馆
  52. {Mey92b}贝特朗·梅耶。埃菲尔:语言。面向对象系列。普伦蒂斯·霍尔,纽约州纽约市,1992年。]]谷歌学者谷歌学者数字图书馆数字图书馆
  53. {Mey97}伯特兰·梅耶。面向对象的软件构造。普伦蒂斯·霍尔,纽约州纽约市,第二版,1997年。]]谷歌学者谷歌学者数字图书馆数字图书馆
  54. 卡罗尔·摩根。规范编程:第二版。普伦蒂斯·霍尔国际公司,英国亨普斯特德,1994年。]]谷歌学者谷歌学者数字图书馆数字图书馆
  55. {缪尔02}彼得·缪勒。面向对象程序的模块化规范和验证,《计算机科学讲义》第2262卷。Springer-Verlag,2002年。作者的博士论文。可从以下位置获得http://www.informatik.fernuni-hagen。de/import/pi5/publications.html.]]谷歌学者谷歌学者
  56. {MV94}卡罗尔·摩根和特雷弗·维克斯,编辑。关于精化微积分。计算和信息技术系列的形式化方法。Springer-Verlag,纽约州纽约市,1994年。]]谷歌学者谷歌学者
  57. {NNA97}H.R.尼尔森、F.尼尔森和T.Amtoft。用于效果分析的多态子类型:静态语义。在M.Dam,编辑,《第五届LOMAPS研讨会论文集》,计算机科学讲义第1192期。Springer-Verlag,1997年。]]谷歌学者谷歌学者数字图书馆数字图书馆
  58. {Org96}国际标准组织。信息技术——编程语言及其环境和系统软件接口——维也纳开发方法——规范语言——第1部分:基础语言。ISO/IEC 13817-1,1996年12月。]]谷歌学者谷歌学者
  59. {ORSvH95}Sam Owre、John Rushby、Natarajan Shankar和Friedrich von Henke。容错架构的形式化验证:PVS设计序言。IEEE软件工程汇刊,21(2):107-1251995年2月。]]谷歌学者谷歌学者数字图书馆数字图书馆
  60. {OSWZ94}威廉·奥格登(William F.Ogden)、穆拉利·西塔拉曼(Murali Sitaraman)、布鲁斯·韦德(Bruce W.Weide)和斯图亚特·韦本(Stuart H.Zweben)。第一部分:RESOLVE框架和学科——研究概要。ACM SIGSOFT软件工程说明,19(4):23-281994年10月。]]谷歌学者谷歌学者数字图书馆数字图书馆
  61. {PH97}Arnd Poetzsch-Heffter。面向对象程序的规范和验证。习惯化论文,慕尼黑技术大学,1997年1月。]]谷歌学者谷歌学者
  62. {RDF+05}埃德温·罗德里格斯(Edwin Rodríguez)、马修·德怀尔(Matthew B.Dwyer)、科马克·弗拉纳根(Cormac Flanagan)、约翰·哈特克利夫(John Hatcliff)、加里·利文斯(Gary T.Leavens)和罗比。扩展JML用于多线程程序的模块化规范和验证。安德鲁·布莱克(Andrew P.Black),《2005年ECOOP——面向对象编程第19届欧洲会议》编辑,英国格拉斯哥,《计算机科学讲义》第3586卷,第551-576页。2005年7月,柏林,施普林格-弗拉格。]]谷歌学者谷歌学者数字图书馆数字图书馆
  63. {RL00}克莱德·鲁比和加里·利文斯。安全地创建正确的子类,而不会看到超类代码。在OOPSLA 2000年面向对象编程、系统、语言和应用会议上,明尼苏达州明尼阿波利斯,ACM SIGPLAN通知第35卷(10),第208-228页,2000年10月。]]谷歌学者谷歌学者数字图书馆数字图书馆
  64. {RL05}Arun D.Raghavan和Gary T.Leavens。脱糖JML方法规范。技术报告00-03e,爱荷华州立大学计算机科学系,2005年5月。]]谷歌学者谷歌学者
  65. {Ros95}大卫·S·罗森布鲁姆(David S.Rosenblum)。使用断言编程的实用方法。IEEE软件工程汇刊,21(1):19--311995年1月。]]谷歌学者谷歌学者数字图书馆数字图书馆
  66. {Spi92}J.迈克尔·斯皮维。Z符号:参考手册。计算机科学国际丛书。普伦蒂斯·霍尔出版社,纽约州纽约市,第二版,1992年。]]谷歌学者谷歌学者数字图书馆数字图书馆
  67. {SR05}亚历山德鲁·萨尔恰努(Alexandru Salcianu)和马丁·里纳德(Martin Rinard)。java程序的纯度和副作用分析。2005年1月,第六届国际验证、模型检查和抽象解释会议记录。]]谷歌学者谷歌学者数字图书馆数字图书馆
  68. {Tan94}杨孟谭。支持编程风格的接口语言。ACM SIGPLAN通知,29(8):74-831994年8月。接口定义语言研讨会论文集。]]谷歌学者谷歌学者数字图书馆数字图书馆
  69. {Tan95}杨梦谭。《工程模块化C程序的形式规范技术》,《Kluwer软件工程国际丛书》第1卷谷歌学者谷歌学者数字图书馆数字图书馆
  70. {TJ94}Jean-Pierre Talpin和Pierre Jouvelot。类型和效果规则。信息与计算,111(2):245--296,1994年6月。]]谷歌学者谷歌学者数字图书馆数字图书馆
  71. {WD96}吉姆·伍德科克和吉姆·戴维斯。使用Z:规范、细化和证明。普伦蒂斯·霍尔计算机科学国际系列,1996年。]]谷歌学者谷歌学者数字图书馆数字图书馆
  72. {Wil94}阿兰·威尔斯。壁画的精致。拉诺和霍顿{LH94},第9章,第184-201页。]]谷歌学者谷歌学者
  73. {Win83}珍妮特·玛丽·荣格。指定程序的双层方法。技术报告TR-299,麻省理工学院计算机科学实验室,1983年。]]谷歌学者谷歌学者数字图书馆数字图书馆
  74. {Win87}珍妮特·M·Wing。编写Larch接口语言规范。《美国计算机学会编程语言与系统汇刊》,9(1):1--241987年1月。]]谷歌学者谷歌学者数字图书馆数字图书馆
  75. {Win90}珍妮特·温格。说明符对形式方法的介绍。计算机,23(9):8--241990年9月。]]谷歌学者谷歌学者数字图书馆数字图书馆
  76. {WLB00}蒂姆·沃尔斯(Tim Wahls)、加里·利文斯(Gary T.Leavens)和阿尔伯特·L·贝克(Albert L.Baker)。使用并发约束编程执行形式规范。自动化软件工程,7(4):315--3432000年12月。]]谷歌学者谷歌学者数字图书馆数字图书馆
  77. {WR25}A.N.Whitehead和B.Russell。数学原理。剑桥大学出版社,伦敦,第二版。1925年版。]]谷歌学者谷歌学者
  78. {Wri92}安德鲁·赖特。通过效果推理键入引用。1992年2月,在法国雷恩举行的第四届欧洲程序设计研讨会上,1992年ESOP编辑伯恩德·克里格·布鲁克纳(Bernd Krieg-Bruckner)著,《计算机科学讲稿》第582卷,第473-491页。Springer-Verlag,纽约州纽约市,1992年。]]谷歌学者谷歌学者数字图书馆数字图书馆

索引术语

  1. java行为接口规范语言JML的初步设计

        建议

        评论

        登录选项

        检查您是否可以通过登录凭据或您的机构访问本文。

        登录

        完全访问权限

        • 发布于

          封面图片ACM SIGSOFT软件工程说明
          ACM SIGSOFT软件工程说明 第31卷第3期
          2006年5月
          171页
          国际标准编号:0163-5948
          内政部:10.1145/1127878
          期刊目录

          版权所有©2006作者

          出版商

          计算机协会

          美国纽约州纽约市

          出版历史

          • 出版:2006年5月1日

          检查更新

          限定符

          • 文章

        PDF格式

        以PDF文件查看或下载。

        PDF格式

        电子阅读器

        使用eReader联机查看。

        电子阅读器