首页 > 最新文献

Strathclyde ALGOL 68 Conference最新文献

英文 中文
Description of dynamic manipulation of ALGOL68 values using a generative grammar 使用生成语法动态操作ALGOL68值的描述
Pub Date : 1977-06-01 DOI: 10.1145/872738.807144
C. F. Vansina
Code generation is very complex. Using ALGOL68, complexity increases due to the recursivity of the manipulated values. The set of routines manipulating values will be recursive too. Describing such a manipulating process with flow charts makes it less readable. To avoid that difficulty the description of the process will use a generative action grammar. With such a grammar recursivity is natural, so the description of a recursive process will be very readable. Moreover, such a grammar can easily be translated into a program, which will be very structured and modular. The produced code will be very structured too and that can be helpful for debugging and checking processes.
代码生成非常复杂。使用ALGOL68,由于被操纵值的递归性,复杂性增加了。操作值的例程集也将是递归的。用流程图描述这样的操作过程会降低可读性。为了避免这种困难,过程的描述将使用生成动作语法。有了这样的语法,递归性是自然的,所以递归过程的描述将非常可读。此外,这种语法可以很容易地翻译成程序,这将是非常结构化和模块化的。生成的代码也将非常结构化,这对调试和检查过程很有帮助。
{"title":"Description of dynamic manipulation of ALGOL68 values using a generative grammar","authors":"C. F. Vansina","doi":"10.1145/872738.807144","DOIUrl":"https://doi.org/10.1145/872738.807144","url":null,"abstract":"Code generation is very complex. Using ALGOL68, complexity increases due to the recursivity of the manipulated values. The set of routines manipulating values will be recursive too. Describing such a manipulating process with flow charts makes it less readable. To avoid that difficulty the description of the process will use a generative action grammar. With such a grammar recursivity is natural, so the description of a recursive process will be very readable. Moreover, such a grammar can easily be translated into a program, which will be very structured and modular. The produced code will be very structured too and that can be helpful for debugging and checking processes.","PeriodicalId":226613,"journal":{"name":"Strathclyde ALGOL 68 Conference","volume":"288 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1977-06-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125033128","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 5
A transportation of ALGOL68C ALGOL68C的运输
Pub Date : 1977-06-01 DOI: 10.1145/800238.807148
P. J. Gardner
This paper describes the problems and solutions of a particular “pulled” bootstrap transportation of the Cambridge ALGOL68C compiler; in particular, the problems encountered in making the external appearance of the compiler system conform to the conventions of the object machine's operating system interface.
本文描述了剑桥ALGOL68C编译器的一种特殊的“拉式”自举传输问题及其解决方法;特别是,在使编译器系统的外观符合目标机操作系统接口的约定时遇到的问题。
{"title":"A transportation of ALGOL68C","authors":"P. J. Gardner","doi":"10.1145/800238.807148","DOIUrl":"https://doi.org/10.1145/800238.807148","url":null,"abstract":"This paper describes the problems and solutions of a particular “pulled” bootstrap transportation of the Cambridge ALGOL68C compiler; in particular, the problems encountered in making the external appearance of the compiler system conform to the conventions of the object machine's operating system interface.","PeriodicalId":226613,"journal":{"name":"Strathclyde ALGOL 68 Conference","volume":"25 9","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1977-06-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133455260","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 13
ALGOL 68 might-have-beens ALGOL 68可能已经存在
Pub Date : 1977-06-01 DOI: 10.1145/872738.807137
S. G. V. D. Meulen
This paper discusses some language features which might have been in ALGOL68. They would not have complicated the compiler to any considerable extent. They would certainly have contributed to the expressive power of the language. In fact their desirability emerged from the practice of ALGOL68 programming (cf. {4}). “Might-have-beens” are small super-language features and some of them could even be considered as “might-be”s in the sense that they still might be incorporated in existing compilers without (great) difficulty. A few of these “lost chances” have deeper roots and may contribute to the development of future languages.
本文讨论了ALGOL68中可能存在的一些语言特性。它们不会使编译器在很大程度上复杂化。他们肯定会为语言的表现力做出贡献。事实上,它们的可取性来自ALGOL68编程的实践(参见{4})。“可能已经存在”是一些小的超级语言特性,其中一些甚至可以被认为是“可能存在”,因为它们仍然可以毫无困难地合并到现有的编译器中。这些“失去的机会”中有一些有着更深的根源,可能有助于未来语言的发展。
{"title":"ALGOL 68 might-have-beens","authors":"S. G. V. D. Meulen","doi":"10.1145/872738.807137","DOIUrl":"https://doi.org/10.1145/872738.807137","url":null,"abstract":"This paper discusses some language features which might have been in ALGOL68. They would not have complicated the compiler to any considerable extent. They would certainly have contributed to the expressive power of the language. In fact their desirability emerged from the practice of ALGOL68 programming (cf. {4}). “Might-have-beens” are small super-language features and some of them could even be considered as “might-be”s in the sense that they still might be incorporated in existing compilers without (great) difficulty. A few of these “lost chances” have deeper roots and may contribute to the development of future languages.","PeriodicalId":226613,"journal":{"name":"Strathclyde ALGOL 68 Conference","volume":"82 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1977-06-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121435192","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 19
Verification of an Algol 68 implementation Algol 68实现的验证
Pub Date : 1977-06-01 DOI: 10.1145/800238.807151
B. Houssais
A tool for the systematic production of test cases for a compiler is first presented. The input of the generator are formal grammars, derived from the definition of the reference language. This tool has been applied to the generation of test programs for Algol 68. For each construction which the language possesses, the syntactic structure of the corresponding test and the semantic verifications it contains are given. The test set has begun to be employed on a specific implementation. Discovered errors related to Algol 68 constructions are analysed.
为编译器系统地生产测试用例的工具首次被提出。生成器的输入是形式语法,派生自参考语言的定义。该工具已应用于Algol 68的测试程序的生成。对于语言所具有的每一种结构,给出了相应测试的句法结构及其包含的语义验证。测试集已经开始用于特定的实现。对Algol 68结构中发现的错误进行了分析。
{"title":"Verification of an Algol 68 implementation","authors":"B. Houssais","doi":"10.1145/800238.807151","DOIUrl":"https://doi.org/10.1145/800238.807151","url":null,"abstract":"A tool for the systematic production of test cases for a compiler is first presented. The input of the generator are formal grammars, derived from the definition of the reference language. This tool has been applied to the generation of test programs for Algol 68. For each construction which the language possesses, the syntactic structure of the corresponding test and the semantic verifications it contains are given. The test set has begun to be employed on a specific implementation. Discovered errors related to Algol 68 constructions are analysed.","PeriodicalId":226613,"journal":{"name":"Strathclyde ALGOL 68 Conference","volume":"36 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1977-06-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131244001","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 9
Storage management for ALGOL68 ALGOL68的存储管理
Pub Date : 1977-06-01 DOI: 10.1145/800238.807147
A. Birrell
This paper describes some of the techniques which can be used for managing the run time storage required for an ALGOL68 program. The emphasis is on stack storage, since garbage collection techniques would require another paper. The problems caused by some ALGOL68 constructs are described: the solutions given are mainly those adopted in the Cambridge ALGOL68C system.
本文描述了一些可用于管理ALGOL68程序所需的运行时存储的技术。重点是堆栈存储,因为垃圾收集技术将需要另一篇论文。介绍了一些ALGOL68结构引起的问题,给出的解决方案主要是剑桥ALGOL68C系统所采用的解决方案。
{"title":"Storage management for ALGOL68","authors":"A. Birrell","doi":"10.1145/800238.807147","DOIUrl":"https://doi.org/10.1145/800238.807147","url":null,"abstract":"This paper describes some of the techniques which can be used for managing the run time storage required for an ALGOL68 program. The emphasis is on stack storage, since garbage collection techniques would require another paper. The problems caused by some ALGOL68 constructs are described: the solutions given are mainly those adopted in the Cambridge ALGOL68C system.","PeriodicalId":226613,"journal":{"name":"Strathclyde ALGOL 68 Conference","volume":"29 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1977-06-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132308168","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 1
Quantifying the test effectiveness of Algol 68 programs 量化Algol 68程序的测试有效性
Pub Date : 1977-06-01 DOI: 10.1145/800238.807140
M. Hennell, D. Hedley, M. Woodward
In this paper we describe how a software testbed is used to determine the quality of testing of Algol 68 programs. The system monitors the execution of an Algol 68 program and obtains a run-time execution history. This history is then compared with the results of a static analysis and three levels of testing are calculated. The third level is an extension to Algol 68 of a method originally devised for analysing Fortran IV programs. The system has been used extensively in the coordination stage of the NAG Algol 68 numerical algorithms library and we quote some results obtained from an analysis of stringent tests on these library routines.
本文描述了如何使用软件测试平台来确定Algol 68程序的测试质量。该系统监视Algol 68程序的执行并获得运行时执行历史。然后将此历史与静态分析的结果进行比较,并计算出三个测试级别。第三层是对Algol 68的一种方法的扩展,这种方法最初是为分析Fortran IV程序而设计的。该系统已广泛应用于NAG Algol 68数值算法库的协调阶段,并引用了对这些库例程进行严格测试的分析结果。
{"title":"Quantifying the test effectiveness of Algol 68 programs","authors":"M. Hennell, D. Hedley, M. Woodward","doi":"10.1145/800238.807140","DOIUrl":"https://doi.org/10.1145/800238.807140","url":null,"abstract":"In this paper we describe how a software testbed is used to determine the quality of testing of Algol 68 programs. The system monitors the execution of an Algol 68 program and obtains a run-time execution history. This history is then compared with the results of a static analysis and three levels of testing are calculated. The third level is an extension to Algol 68 of a method originally devised for analysing Fortran IV programs. The system has been used extensively in the coordination stage of the NAG Algol 68 numerical algorithms library and we quote some results obtained from an analysis of stringent tests on these library routines.","PeriodicalId":226613,"journal":{"name":"Strathclyde ALGOL 68 Conference","volume":"211 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1977-06-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132436957","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 6
Geometric modelling in ALGOL 68 ALGOL 68中的几何建模
Pub Date : 1977-06-01 DOI: 10.1145/800238.807158
I. Braid, R. C. Hillyard
The paper describes the experiences of a small team in writing a substantial ALGOL 68 program to model the shapes of engineering components. The application derives much advantage from structures, operators and the heap. It includes a command interpreter, graphics package, vector and matrix routines, and procedures for moving data structures on the heap to and from disc. A system has been devised to ensure safe, selective compilation of program segments.
本文描述了一个小团队在编写一个实质性的ALGOL 68程序来模拟工程部件形状的经验。应用程序从结构、操作符和堆中获得了很多优势。它包括命令解释器、图形包、矢量和矩阵例程,以及将堆上的数据结构移到磁盘或从磁盘移到磁盘的过程。已经设计了一个系统来确保安全、有选择性地编译节目片段。
{"title":"Geometric modelling in ALGOL 68","authors":"I. Braid, R. C. Hillyard","doi":"10.1145/800238.807158","DOIUrl":"https://doi.org/10.1145/800238.807158","url":null,"abstract":"The paper describes the experiences of a small team in writing a substantial ALGOL 68 program to model the shapes of engineering components. The application derives much advantage from structures, operators and the heap. It includes a command interpreter, graphics package, vector and matrix routines, and procedures for moving data structures on the heap to and from disc. A system has been devised to ensure safe, selective compilation of program segments.","PeriodicalId":226613,"journal":{"name":"Strathclyde ALGOL 68 Conference","volume":"73 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1977-06-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133335670","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 5
An attribute description of a subset of Algol 68 Algol 68子集的属性描述
Pub Date : 1977-06-01 DOI: 10.1145/800238.807152
M. Simonet
Among the formalisms used for the definition of programming languages, context-free grammars are widely and satisfactorily used, but their power is limited. Augmented with attributes they can express context sensitive aspects of a language. In this paper a subset of Algol 68 is described by an attribute-grammar. This is done in a way which suggests that the attribute point of view may also help reading and writing W-grammars.
在用于定义编程语言的形式化中,上下文无关语法得到了广泛而令人满意的使用,但其功能有限。添加属性后,它们可以表达语言的上下文敏感方面。本文用一个属性语法描述了Algol 68的一个子集。这样做的方式表明,属性观点也可以帮助阅读和编写w语法。
{"title":"An attribute description of a subset of Algol 68","authors":"M. Simonet","doi":"10.1145/800238.807152","DOIUrl":"https://doi.org/10.1145/800238.807152","url":null,"abstract":"Among the formalisms used for the definition of programming languages, context-free grammars are widely and satisfactorily used, but their power is limited. Augmented with attributes they can express context sensitive aspects of a language. In this paper a subset of Algol 68 is described by an attribute-grammar. This is done in a way which suggests that the attribute point of view may also help reading and writing W-grammars.","PeriodicalId":226613,"journal":{"name":"Strathclyde ALGOL 68 Conference","volume":"9 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1977-06-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126021973","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 2
Is Pascal a logical subset of Algol68 or not? Part One Pascal是不是Algol68的逻辑子集?第一部分
Pub Date : 1977-06-01 DOI: 10.1145/800238.807161
R. Edwards
It is often believed that Pascal is - Algol68 in miniature - well “structured”. It will be argued in Part One of this paper that both beliefs are badly founded.
人们通常认为帕斯卡是——Algol68的缩影——结构良好。本文的第一部分将论证这两种信念都是毫无根据的。
{"title":"Is Pascal a logical subset of Algol68 or not? Part One","authors":"R. Edwards","doi":"10.1145/800238.807161","DOIUrl":"https://doi.org/10.1145/800238.807161","url":null,"abstract":"It is often believed that Pascal is - Algol68 in miniature - well “structured”.\u0000 It will be argued in Part One of this paper that both beliefs are badly founded.","PeriodicalId":226613,"journal":{"name":"Strathclyde ALGOL 68 Conference","volume":"15 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1977-06-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130145630","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 1
A Multi Radar Tracking simulation using ALGOL 68'R 基于ALGOL 68r的多雷达跟踪仿真
Pub Date : 1977-06-01 DOI: 10.1145/800238.807159
P. R. West
The paper outlines the use of ALGOL 68R in the production of a series of simulation models for a Multi Radar Tracking feasibility study. Particular reference is made to the use of structures, the chaining mechanisms used and the modularity of the models. The multi-radar tracking models were developed in ALGOL 68'R by Plessey Radar Ltd. and run on their 1906S under George 3/MOP.
本文概述了ALGOL 68R在多雷达跟踪可行性研究的一系列仿真模型制作中的应用。特别提到了结构的使用,所使用的链接机制和模型的模块化。多雷达跟踪模型由Plessey雷达有限公司在ALGOL 68'R中发展并且在他们的1906S George 3/MOP下运行。
{"title":"A Multi Radar Tracking simulation using ALGOL 68'R","authors":"P. R. West","doi":"10.1145/800238.807159","DOIUrl":"https://doi.org/10.1145/800238.807159","url":null,"abstract":"The paper outlines the use of ALGOL 68R in the production of a series of simulation models for a Multi Radar Tracking feasibility study. Particular reference is made to the use of structures, the chaining mechanisms used and the modularity of the models. The multi-radar tracking models were developed in ALGOL 68'R by Plessey Radar Ltd. and run on their 1906S under George 3/MOP.","PeriodicalId":226613,"journal":{"name":"Strathclyde ALGOL 68 Conference","volume":"7 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1977-06-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130305280","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 2
期刊
Strathclyde ALGOL 68 Conference
全部 Acc. Chem. Res. ACS Applied Bio Materials ACS Appl. Electron. Mater. ACS Appl. Energy Mater. ACS Appl. Mater. Interfaces ACS Appl. Nano Mater. ACS Appl. Polym. Mater. ACS BIOMATER-SCI ENG ACS Catal. ACS Cent. Sci. ACS Chem. Biol. ACS Chemical Health & Safety ACS Chem. Neurosci. ACS Comb. Sci. ACS Earth Space Chem. ACS Energy Lett. ACS Infect. Dis. ACS Macro Lett. ACS Mater. Lett. ACS Med. Chem. Lett. ACS Nano ACS Omega ACS Photonics ACS Sens. ACS Sustainable Chem. Eng. ACS Synth. Biol. Anal. Chem. BIOCHEMISTRY-US Bioconjugate Chem. BIOMACROMOLECULES Chem. Res. Toxicol. Chem. Rev. Chem. Mater. CRYST GROWTH DES ENERG FUEL Environ. Sci. Technol. Environ. Sci. Technol. Lett. Eur. J. Inorg. Chem. IND ENG CHEM RES Inorg. Chem. J. Agric. Food. Chem. J. Chem. Eng. Data J. Chem. Educ. J. Chem. Inf. Model. J. Chem. Theory Comput. J. Med. Chem. J. Nat. Prod. J PROTEOME RES J. Am. Chem. Soc. LANGMUIR MACROMOLECULES Mol. Pharmaceutics Nano Lett. Org. Lett. ORG PROCESS RES DEV ORGANOMETALLICS J. Org. Chem. J. Phys. Chem. J. Phys. Chem. A J. Phys. Chem. B J. Phys. Chem. C J. Phys. Chem. Lett. Analyst Anal. Methods Biomater. Sci. Catal. Sci. Technol. Chem. Commun. Chem. Soc. Rev. CHEM EDUC RES PRACT CRYSTENGCOMM Dalton Trans. Energy Environ. Sci. ENVIRON SCI-NANO ENVIRON SCI-PROC IMP ENVIRON SCI-WAT RES Faraday Discuss. Food Funct. Green Chem. Inorg. Chem. Front. Integr. Biol. J. Anal. At. Spectrom. J. Mater. Chem. A J. Mater. Chem. B J. Mater. Chem. C Lab Chip Mater. Chem. Front. Mater. Horiz. MEDCHEMCOMM Metallomics Mol. Biosyst. Mol. Syst. Des. Eng. Nanoscale Nanoscale Horiz. Nat. Prod. Rep. New J. Chem. Org. Biomol. Chem. Org. Chem. Front. PHOTOCH PHOTOBIO SCI PCCP Polym. Chem.
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1