首页 > 最新文献

[1993] IEEE Second Workshop on Program Comprehension最新文献

英文 中文
Use of a program understanding taxonomy at Hewlett-Packard 在惠普公司使用一个理解分类法的程序
Pub Date : 1993-07-08 DOI: 10.1109/WPC.1993.263905
A. Padula
Summarizes the use of a program understanding taxonomy developed at Hewlett-Packard. The primary use of the taxonomy has been in the creation of a company internal document called the Software Tools Report. The Software Tools Report is a selection and evaluation guide to software tools that addresses key company software engineering areas which include program understanding. A description of the Report, how it was created, and how it is used is given.<>
总结了在Hewlett-Packard开发的程序理解分类法的使用。分类法的主要用途是创建一个名为Software Tools Report的公司内部文档。软件工具报告是软件工具的选择和评估指南,解决了公司软件工程的关键领域,包括程序理解。给出了报告的描述、如何创建它以及如何使用它
{"title":"Use of a program understanding taxonomy at Hewlett-Packard","authors":"A. Padula","doi":"10.1109/WPC.1993.263905","DOIUrl":"https://doi.org/10.1109/WPC.1993.263905","url":null,"abstract":"Summarizes the use of a program understanding taxonomy developed at Hewlett-Packard. The primary use of the taxonomy has been in the creation of a company internal document called the Software Tools Report. The Software Tools Report is a selection and evaluation guide to software tools that addresses key company software engineering areas which include program understanding. A description of the Report, how it was created, and how it is used is given.<<ETX>>","PeriodicalId":151277,"journal":{"name":"[1993] IEEE Second Workshop on Program Comprehension","volume":"87 3 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1993-07-08","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"134095223","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
A process algebra based program and system representation for reverse engineering 逆向工程中基于过程代数的程序和系统表示
Pub Date : 1993-07-08 DOI: 10.1109/WPC.1993.263910
E. Merlo, Renato DeMori, K. Kontogiannis
A reverse engineering approach based on process algebras for system representation and understanding is presented. Process algebras offer both a formal framework for representing communicating processes and a proof theory for proving semantic equivalences between them. Programs and program fragments are denoted as concurrent agents and code behaviour is defined in terms of interactions among agents in a process algebra representation suitable for subsequent analysis. Semantic and behavioural equivalences between programming plans, which represent programming stereo-types, and code fragments can be defined in this formal system together with a deduction system to prove them. Several advantages and further research issues on the use of process algebra for reverse engineering and maintenance are identified and discussed.<>
提出了一种基于过程代数的逆向工程方法,用于系统的表示和理解。过程代数既提供了表示通信过程的形式化框架,也提供了证明它们之间语义等价的证明理论。程序和程序片段被表示为并发代理,代码行为被定义为代理之间的交互,以适合后续分析的进程代数表示。在这个形式化系统中,可以定义代表编程原型的编程计划和代码片段之间的语义和行为等价,并使用演绎系统来证明它们。指出并讨论了在逆向工程和维修中使用过程代数的几个优点和需要进一步研究的问题
{"title":"A process algebra based program and system representation for reverse engineering","authors":"E. Merlo, Renato DeMori, K. Kontogiannis","doi":"10.1109/WPC.1993.263910","DOIUrl":"https://doi.org/10.1109/WPC.1993.263910","url":null,"abstract":"A reverse engineering approach based on process algebras for system representation and understanding is presented. Process algebras offer both a formal framework for representing communicating processes and a proof theory for proving semantic equivalences between them. Programs and program fragments are denoted as concurrent agents and code behaviour is defined in terms of interactions among agents in a process algebra representation suitable for subsequent analysis. Semantic and behavioural equivalences between programming plans, which represent programming stereo-types, and code fragments can be defined in this formal system together with a deduction system to prove them. Several advantages and further research issues on the use of process algebra for reverse engineering and maintenance are identified and discussed.<<ETX>>","PeriodicalId":151277,"journal":{"name":"[1993] IEEE Second Workshop on Program Comprehension","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1993-07-08","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131177567","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}
引用次数: 4
Model-based tools to record program understanding 记录程序理解的基于模型的工具
Pub Date : 1993-07-08 DOI: 10.1109/WPC.1993.263902
E. Younger, K. Bennett
Tools to record the knowledge gained by maintainers engaged in understanding an existing program are described. These tools are based on a model of the comprehension process and of reverse engineering as a whole. They form a part of an integrated reverse engineering toolset based around a central repository. Using these tools new documentation for an existing software system may be built up incrementally by successive maintainers who work on the system.<>
描述了用于记录维护人员在理解现有程序时所获得的知识的工具。这些工具是基于理解过程和逆向工程作为一个整体的模型。它们构成了基于中央存储库的集成逆向工程工具集的一部分。使用这些工具,现有软件系统的新文档可以由在系统上工作的后续维护者逐步建立起来。
{"title":"Model-based tools to record program understanding","authors":"E. Younger, K. Bennett","doi":"10.1109/WPC.1993.263902","DOIUrl":"https://doi.org/10.1109/WPC.1993.263902","url":null,"abstract":"Tools to record the knowledge gained by maintainers engaged in understanding an existing program are described. These tools are based on a model of the comprehension process and of reverse engineering as a whole. They form a part of an integrated reverse engineering toolset based around a central repository. Using these tools new documentation for an existing software system may be built up incrementally by successive maintainers who work on the system.<<ETX>>","PeriodicalId":151277,"journal":{"name":"[1993] IEEE Second Workshop on Program Comprehension","volume":"39 6 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1993-07-08","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116416852","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}
引用次数: 21
Partial evaluation as an aid to the comprehension of Fortran programs 部分求值有助于理解Fortran程序
Pub Date : 1993-07-08 DOI: 10.1109/WPC.1993.263907
Sandrine Blazy, P. Facon
The authors describe a technique and a tool supporting partial evaluation of Fortran programs, i.e. their specialization for specific values of their input variables. They aim at understanding old programs, which have become very complex due to numerous extensions. From a given Fortran program and these values of its input variables, the tool provides a simplified program, which behaves like the initial one for the specific values. This tool uses mainly constant propagation and simplification of alternatives to one of their branches. The tool is specified in inference rules and operates by induction on the Fortran abstract syntax. These rules are compiled into Prolog by the Centaur/Fortran environment.<>
作者描述了一种支持Fortran程序部分求值的技术和工具,即它们对输入变量的特定值的专门化。它们旨在理解由于大量扩展而变得非常复杂的旧程序。根据给定的Fortran程序及其输入变量的这些值,该工具提供了一个简化的程序,其行为类似于针对特定值的初始程序。该工具主要使用恒定传播和简化其分支之一的替代方案。该工具在推理规则中指定,并通过对Fortran抽象语法的归纳操作。这些规则由Centaur/Fortran环境编译成Prolog。
{"title":"Partial evaluation as an aid to the comprehension of Fortran programs","authors":"Sandrine Blazy, P. Facon","doi":"10.1109/WPC.1993.263907","DOIUrl":"https://doi.org/10.1109/WPC.1993.263907","url":null,"abstract":"The authors describe a technique and a tool supporting partial evaluation of Fortran programs, i.e. their specialization for specific values of their input variables. They aim at understanding old programs, which have become very complex due to numerous extensions. From a given Fortran program and these values of its input variables, the tool provides a simplified program, which behaves like the initial one for the specific values. This tool uses mainly constant propagation and simplification of alternatives to one of their branches. The tool is specified in inference rules and operates by induction on the Fortran abstract syntax. These rules are compiled into Prolog by the Centaur/Fortran environment.<<ETX>>","PeriodicalId":151277,"journal":{"name":"[1993] IEEE Second Workshop on Program Comprehension","volume":"23 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1993-07-08","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125132792","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}
引用次数: 14
Facilitating the comprehension of C-programs: an experimental study 促进c程序理解:一项实验研究
Pub Date : 1993-07-08 DOI: 10.1109/WPC.1993.263906
P. Linos, Philippe Aubet, Laurent Dumas, Yann Helleboid, Patricia Lejeune, Philippe Tulula
A software environment called CARE (computer-aided re-engineering) that facilitates the comprehension of existing C programs is described. Program comprehension in CARE is accomplished by visualizing program dependencies (i.e. entities and their relations). A repository of such dependencies is maintained and displayed using a graphical model which combines control and data-flow information. Moreover, CARE entails transformation tools and abstraction mechanisms that support monolithic and multiple-view organization of program dependencies. Results from an experimental study with the CARE environment has shown that the productivity of its users was increased and the quality of the changes made during a software maintenance task was improving. Finally, the lessons learned from an empirical evaluation of the CARE environment indicated that its graphical model, transformation tools and abstraction mechanisms constitute a promising platform for the comprehension of C programs.<>
描述了一种称为CARE(计算机辅助再工程)的软件环境,它有助于理解现有的C程序。CARE中的程序理解是通过可视化程序依赖项(即实体及其关系)来完成的。使用结合了控制和数据流信息的图形模型来维护和显示这些依赖关系的存储库。此外,CARE需要转换工具和抽象机制来支持程序依赖关系的整体和多视图组织。对CARE环境的实验研究结果表明,在软件维护任务期间,用户的生产力得到了提高,所做更改的质量得到了改善。最后,从对CARE环境的经验评估中得到的教训表明,它的图形模型、转换工具和抽象机制构成了一个理解C程序的有前途的平台。
{"title":"Facilitating the comprehension of C-programs: an experimental study","authors":"P. Linos, Philippe Aubet, Laurent Dumas, Yann Helleboid, Patricia Lejeune, Philippe Tulula","doi":"10.1109/WPC.1993.263906","DOIUrl":"https://doi.org/10.1109/WPC.1993.263906","url":null,"abstract":"A software environment called CARE (computer-aided re-engineering) that facilitates the comprehension of existing C programs is described. Program comprehension in CARE is accomplished by visualizing program dependencies (i.e. entities and their relations). A repository of such dependencies is maintained and displayed using a graphical model which combines control and data-flow information. Moreover, CARE entails transformation tools and abstraction mechanisms that support monolithic and multiple-view organization of program dependencies. Results from an experimental study with the CARE environment has shown that the productivity of its users was increased and the quality of the changes made during a software maintenance task was improving. Finally, the lessons learned from an empirical evaluation of the CARE environment indicated that its graphical model, transformation tools and abstraction mechanisms constitute a promising platform for the comprehension of C programs.<<ETX>>","PeriodicalId":151277,"journal":{"name":"[1993] IEEE Second Workshop on Program Comprehension","volume":"33 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1993-07-08","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122800762","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}
引用次数: 15
A combined representation for the maintenance of C programs 维护C程序的组合表示法
Pub Date : 1993-07-08 DOI: 10.1109/WPC.1993.263899
David A. Kinloch
An important aid to the problems of program comprehension has been the use of static analysis tools to provide useful and up to date information on a program. Through the use of different views a maintainer can gain a much clearer understanding of a program. A drawback of static analysis tools is that various representations of the code are required to construct the different views of the program. A solution is to devise a single combined representation containing sufficient information to allow construction of each required view. The paper describes research to extend an existing unified interprocedural graph to allow the representation of C programs. Techniques for the dependence analysis of pointer variables are described and the construction of interprocedural definition-use information in the presence of pointer parameters addressed. A fine grained program representation, the Combined C Graph (CCG), containing three new edge types is introduced.<>
对程序理解问题的一个重要帮助是使用静态分析工具来提供有关程序的有用的和最新的信息。通过使用不同的视图,维护者可以更清楚地理解程序。静态分析工具的一个缺点是需要代码的不同表示来构造程序的不同视图。一种解决方案是设计一个包含足够信息的单一组合表示,以允许构造每个所需的视图。本文描述了扩展现有的统一过程间图以允许C程序的表示的研究。描述了指针变量依赖性分析的技术,并讨论了在指针参数存在的情况下构建过程间定义使用信息的问题。介绍了一种细粒度的程序表示,即包含三种新边缘类型的组合C图(CCG)。
{"title":"A combined representation for the maintenance of C programs","authors":"David A. Kinloch","doi":"10.1109/WPC.1993.263899","DOIUrl":"https://doi.org/10.1109/WPC.1993.263899","url":null,"abstract":"An important aid to the problems of program comprehension has been the use of static analysis tools to provide useful and up to date information on a program. Through the use of different views a maintainer can gain a much clearer understanding of a program. A drawback of static analysis tools is that various representations of the code are required to construct the different views of the program. A solution is to devise a single combined representation containing sufficient information to allow construction of each required view. The paper describes research to extend an existing unified interprocedural graph to allow the representation of C programs. Techniques for the dependence analysis of pointer variables are described and the construction of interprocedural definition-use information in the presence of pointer parameters addressed. A fine grained program representation, the Combined C Graph (CCG), containing three new edge types is introduced.<<ETX>>","PeriodicalId":151277,"journal":{"name":"[1993] IEEE Second Workshop on Program Comprehension","volume":"38 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1993-07-08","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125163586","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
Understanding concurrent programs using program transformations 使用程序转换理解并发程序
Pub Date : 1993-07-08 DOI: 10.1109/WPC.1993.263895
E. Younger, M. Ward
Reverse engineering of concurrent real-time programs with timing constraints is a particularly challenging research area, because the functional behaviour of a program, and the non-functional timing requirements, are implicit and can be very difficult to discover. The authors present a significant advance in this area, which is achieved by modelling real-time concurrent programs in the wide spectrum language WSL. They show how a sequential program with interrupts can be modelled in WSL, and the method is then extended to model more general concurrent programs. They show how a program modelled in this way may subsequently be 'inverse engineered' by the use of formal program transformations, to discover a specification for the program.<>
具有时间约束的并发实时程序的逆向工程是一个特别具有挑战性的研究领域,因为程序的功能行为和非功能时间需求是隐式的,并且很难发现。作者提出了在这一领域的重大进展,这是通过在宽频谱语言WSL中建模实时并发程序来实现的。它们展示了如何在WSL中对具有中断的顺序程序进行建模,然后将该方法扩展到对更一般的并发程序进行建模。他们展示了用这种方式建模的程序如何随后通过使用正式的程序转换进行“逆向工程”,以发现程序的规范。
{"title":"Understanding concurrent programs using program transformations","authors":"E. Younger, M. Ward","doi":"10.1109/WPC.1993.263895","DOIUrl":"https://doi.org/10.1109/WPC.1993.263895","url":null,"abstract":"Reverse engineering of concurrent real-time programs with timing constraints is a particularly challenging research area, because the functional behaviour of a program, and the non-functional timing requirements, are implicit and can be very difficult to discover. The authors present a significant advance in this area, which is achieved by modelling real-time concurrent programs in the wide spectrum language WSL. They show how a sequential program with interrupts can be modelled in WSL, and the method is then extended to model more general concurrent programs. They show how a program modelled in this way may subsequently be 'inverse engineered' by the use of formal program transformations, to discover a specification for the program.<<ETX>>","PeriodicalId":151277,"journal":{"name":"[1993] IEEE Second Workshop on Program Comprehension","volume":"95 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1993-07-08","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125271270","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}
引用次数: 10
Experiments in identifying reusable abstract data types in program code 在程序代码中识别可重用抽象数据类型的实验
Pub Date : 1993-07-08 DOI: 10.1109/WPC.1993.263908
G. Canfora, A. Cimitile, M. Munro, M. Tortorella
The issue of program comprehension is addressed from the software reuse perspective. In particular the identification of abstract data types in existing program code is explored. A candidature criterion is presented and a prototype implementing it is described. The criterion is applied in an experiment that analyses five very different programs and the resulting output is discussed. The work described forms part of the RE/sup 2/ project that addresses the wider issues of software reuse through the exploration of reverse engineering and re-engineering techniques to identify and extract reusable assets from existing systems.<>
程序理解的问题是从软件重用的角度来解决的。特别是对现有程序代码中抽象数据类型的识别进行了探讨。提出了一个候选标准,并描述了实现该标准的原型。该准则应用于一个实验,分析了五种不同的程序,并讨论了结果输出。所描述的工作构成了RE/sup 2/项目的一部分,该项目通过探索逆向工程和再工程技术来识别和从现有系统中提取可重用资产,从而解决了软件重用的更广泛问题
{"title":"Experiments in identifying reusable abstract data types in program code","authors":"G. Canfora, A. Cimitile, M. Munro, M. Tortorella","doi":"10.1109/WPC.1993.263908","DOIUrl":"https://doi.org/10.1109/WPC.1993.263908","url":null,"abstract":"The issue of program comprehension is addressed from the software reuse perspective. In particular the identification of abstract data types in existing program code is explored. A candidature criterion is presented and a prototype implementing it is described. The criterion is applied in an experiment that analyses five very different programs and the resulting output is discussed. The work described forms part of the RE/sup 2/ project that addresses the wider issues of software reuse through the exploration of reverse engineering and re-engineering techniques to identify and extract reusable assets from existing systems.<<ETX>>","PeriodicalId":151277,"journal":{"name":"[1993] IEEE Second Workshop on Program Comprehension","volume":"46 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1993-07-08","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114692192","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}
引用次数: 27
From program comprehension to tool requirements for an industrial environment 从程序理解到工业环境的工具要求
Pub Date : 1993-07-08 DOI: 10.1109/WPC.1993.263903
A. Andrews, A. M. Vans
A major portion of the maintenance effort is spent understanding existing software. The authors present an integrated code comprehension model and experiences with it in an industrial setting. They use audio-taped, think-aloud reports to investigate how well this integrated code comprehension model works during industrial maintenance activities ranging from code fixes to enhancements, code leverage, and reuse. They analyze the tapes for information needs during maintenance activities and derive tool capabilities accordingly.<>
维护工作的主要部分是用于理解现有的软件。作者提出了一个集成的代码理解模型和在工业环境中使用它的经验。他们使用录音的、有声思考的报告来调查这个集成的代码理解模型在从代码修复到增强、代码利用和重用的工业维护活动期间的工作情况。他们分析磁带以获取维护活动期间的信息需求,并据此派生工具功能。
{"title":"From program comprehension to tool requirements for an industrial environment","authors":"A. Andrews, A. M. Vans","doi":"10.1109/WPC.1993.263903","DOIUrl":"https://doi.org/10.1109/WPC.1993.263903","url":null,"abstract":"A major portion of the maintenance effort is spent understanding existing software. The authors present an integrated code comprehension model and experiences with it in an industrial setting. They use audio-taped, think-aloud reports to investigate how well this integrated code comprehension model works during industrial maintenance activities ranging from code fixes to enhancements, code leverage, and reuse. They analyze the tapes for information needs during maintenance activities and derive tool capabilities accordingly.<<ETX>>","PeriodicalId":151277,"journal":{"name":"[1993] IEEE Second Workshop on Program Comprehension","volume":"36 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1993-07-08","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116776408","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}
引用次数: 109
Understanding Lolita: program comprehension in functional languages 理解洛丽塔:函数式语言中的程序理解
Pub Date : 1993-07-08 DOI: 10.1109/WPC.1993.263909
Jonathan E. Hazan, S. Jarvis, Richard G. Morgan, R. Garigliano
Traditional arguments concerning the comprehensibility of functional programs have been illustrated with trivial examples. The authors present the real-life example of a large system for natural language processing which has been programmed entirely in a lazy functional language. This system is undergoing constant change as new features are added to different areas. They present a series of case studies which illustrate various aspects of the maintenance task, including reuse of existing parts of the system and the integration of the new features. They explain how the choice of a functional language for programming the system has aided in the comprehension of the system by new programmers and how this in turn has led to the simplification of the maintenance task. They describe the ease with which new features have been integrated into the system and relate this to the careful design of abstractions within a functional programming framework.<>
关于函数式程序的可理解性的传统论点已经用一些简单的例子加以说明。作者给出了一个用于自然语言处理的大型系统的实际示例,该系统完全用惰性函数语言编程。随着新功能被添加到不同的领域,这个系统正在经历不断的变化。他们提供了一系列案例研究,说明了维护任务的各个方面,包括系统现有部分的重用和新功能的集成。它们解释了选择函数式语言来编写系统是如何帮助新程序员理解系统的,以及这反过来又如何简化了维护任务。它们描述了将新特性集成到系统中的容易程度,并将其与函数式编程框架中抽象的精心设计联系起来
{"title":"Understanding Lolita: program comprehension in functional languages","authors":"Jonathan E. Hazan, S. Jarvis, Richard G. Morgan, R. Garigliano","doi":"10.1109/WPC.1993.263909","DOIUrl":"https://doi.org/10.1109/WPC.1993.263909","url":null,"abstract":"Traditional arguments concerning the comprehensibility of functional programs have been illustrated with trivial examples. The authors present the real-life example of a large system for natural language processing which has been programmed entirely in a lazy functional language. This system is undergoing constant change as new features are added to different areas. They present a series of case studies which illustrate various aspects of the maintenance task, including reuse of existing parts of the system and the integration of the new features. They explain how the choice of a functional language for programming the system has aided in the comprehension of the system by new programmers and how this in turn has led to the simplification of the maintenance task. They describe the ease with which new features have been integrated into the system and relate this to the careful design of abstractions within a functional programming framework.<<ETX>>","PeriodicalId":151277,"journal":{"name":"[1993] IEEE Second Workshop on Program Comprehension","volume":"4 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1993-07-08","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"117083381","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
期刊
[1993] IEEE Second Workshop on Program Comprehension
全部 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