首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到20条相似文献,搜索用时 296 毫秒
1.
Java uses exceptions to provide elegant error handling capabilities during program execution. However, the presence of exception handlers complicates the job of the just‐in‐time (JIT) compiler, while exceptions are rarely used in most programs. This paper describes two techniques for reducing such complications. First, we delay the translation of an exception handler until the exception really occurs. This on‐demand translation of exception handlers allows more optimizations when translating the main flow, without being hindered by constraints caused by the exception flows. Secondly, for those exceptions that are actually thrown during program execution we insert exception‐type check code and a direct branch to the translated exception handlers. This exception handler prediction is motivated by an observation that frequently thrown exceptions are likely to be handled by the same exception handlers, so this will eliminate the exception processing overhead of the Java virtual machine. Our experiments indicate that the code quality of the main flow is no longer affected by the presence of exception handlers. Also, frequently thrown exceptions can be efficiently handled by the exception handler prediction. Copyright © 2004 John Wiley & Sons, Ltd.  相似文献   

2.
《Information Systems》2001,26(2):93-120
Exception handling in workflow management systems (WFMSs) is a very important problem since it is not possible to specify all possible outcomes and alternatives. Effective reuse of existing exception handlers can greatly help in dealing with workflow exceptions. On the other hand, cooperative support for user-driven computer supported resolution of unexpected exceptions and workflow evolution at run-time is vital for an adaptive WFMS. We have been developing ADOME-WFMS as a comprehensive framework in which the problem of workflow exception handling can be adequately addressed. In this article, we present an adaptive exception manager and its web-based interface for ADOME-WFMS with procedures for supporting the following: reuse of exception handlers, thorough and automated resolution of expected exceptions, effective management of Problem Solving Agents, cooperative exception handling, user-driven computer supported resolution of unexpected exceptions, and workflow evolution.  相似文献   

3.
Metal-level compositions of object logic programs are naturally implemented by means of meta-programming techniques. Metainterpreters defining program compositions however suffer from a computational overhead that is due partly to the interpretation layer present in all meta-programs, and partly to the specific interpretation layer needed to deal with program compositions. We show that meta-interpreters implementing compositions of object programs can be fruitfully specialised w.r.t. meta-level queries of the form Demo (E, G), where E denotes a program expression and G denotes a (partially instantiated) object level query. More precisely, we describe the design and implementation of declarative program specialiser that suitably transforms such meta-interpreters so as to sensibly reduce — if not to completely remove — the overhead due to the handling of program compositions. In many cases the specialiser succeeds in eliminating also the overhead due to meta-interpretation. Antonio Brogi, Ph.D.: He is currently assistant professor in the Department of Computer Science at the University of Pisa, Italy. He received his Laurea Degree in Computer Science (1987) and his Ph. D. in Computer Science (1993) from the University of Pisa. His research interests include programming language design and semantics, logic programming, deductive databases, and software coordination. Simone Contiero: He is currently a Ph. D. student at the Department of Computer Science, University of Pisa (Italy). He received his Laurea Degree in Computer Science from the University of Pisa in 1994. His research interests are in high-level programming languages, metaprogramming and logic-based coordination of software.  相似文献   

4.
Exception handling mechanisms were added to programming languages to segregate normal algorithmic processing from error processing. However, handlers which are typically associated with exceptions through a program's control features, clutter source text when features are nested or when different objects require different responses to exceptions. The authors describe a method for associating handlers with data objects in declarations that better segregates algorithmic and error processing. They call their notion data-oriented exception handling to distinguish it from more conventional, control-oriented mechanisms. Empirical studies of Ada programs indicate that conventional exception handling mechanisms are more complex than necessary and that data-oriented exception handling can be used to produce programs that are smaller, better structured, and easier to understand and modify  相似文献   

5.
Modeling out-of-order processors for WCET analysis   总被引:1,自引:0,他引:1  
Estimating the Worst Case Execution Time (WCET) of a program on a given processor is important for the schedulability analysis of real-time systems. WCET analysis techniques typically model the timing effects of micro-architectural features in modern processors (such as pipeline, cache, branch prediction) to obtain safe and tight estimates. In this paper, we model out-of-order superscalar processor pipelines for WCET analysis. The analysis is, in general, difficult even for a basic block (a sequence of instructions with single-entry and single-exit points) if some of the instructions have variable latencies. This is because the WCET of a basic block on out-of-order pipelines cannot be obtained by assuming maximum latencies of the individual instructions. Our timing estimation technique for a basic block proceeds by a fixed-point analysis of the time intervals at which the instructions enter/leave a pipeline stage. To extend our estimation to whole programs, we use Integer Linear Programming (ILP) to combine the timing estimates for basic blocks. Timing effects of instruction cache and branch prediction are also modeled within our pipeline analysis framework. This forms a combined timing analysis framework that captures out-of-order pipeline, cache, branch prediction as well as the mutual interaction among these micro-architectural features. The accuracy of our analysis is demonstrated via tight estimates obtained for several benchmarks. Preliminary version of parts of this paper has previously been published as Li et al. (2004). Abhik Roychoudhury received his B.E. in Computer Engineering from Jadavpur University (India) in 1995 and his M.S. / Ph.D. degrees (both in Computer Science) from the State University of New York at Stony Brook in 1997 and 2000 respectively. Since 2001 he has been an Assistant Professor at National University of Singapore. His research interests are in models and methods for reliable development of embedded software and systems, with specific focus on software validation, analysis and comprehension. Xianfeng Li is a postdoctoral researcher in the Department of Computer Science and Technology at Peking University, China. He received his Ph.D. from National University of Singapore in 2005. His research interests include real-time systems, modeling and evaluation of computer architecture, and System-on-Chips. Tulika Mitra is an Assistant Professor in School of Computing at National University of Singapore from January 2001. She received her PhD in Computer Science from SUNY at Stony Brook in December 2000. Tulika received M.E in Computer Science and Automation from Indian Institute of Science in 1997 and her B.E. in Computer Engineering from Jadavpur University, India in 1995. Her current research focuses on design and analysis of embedded and real-time systems.  相似文献   

6.
We present a generalized let-polymorphic type inference algorithm, prove that any of its instances is sound and complete with respect to the Hindley/Milner let-polymorphic type system, and find a condition on two instance algorithms so that one algorithm should find type errors earlier than the other. By instantiating the generalized algorithm with different parameters, we can obtain not only the two opposite algorithms (the bottom-up standard algorithmW and the top-down algorithmM) but also other hybrid algorithms which are used in real compilers. Such instances’ soudness and completeness follow automatically, and their relative earliness in detecting type-errors is determined by checking a simple condition. The set of instances of the generalized algorithm is a superset of those used in the two most popular ML compilers: SML/NJ and OCaml. This work is supported by Creative Research Initiatives of the Korean Ministry of Science and Technology National Creative Research Initiative Center, http://ropas.kaist.ac.kr Work done while the third author was associated with Korea Advanced Institute of Science and Technology Hyunjun Eo: He is a Ph.D. candidate in the Department of Computer Science at KAIST (Korea Advanced Institute of Science and Technology). He recieved his bachelor’s degree and master’s degree in Computer Science from KAIST in 1996 and 1998, respectively. His research interest has been on static program analysis, fixpoint iteration algorithm and higher-order and typed languages. From fall 1998, he has been a research assistant of the National Creative Research Initiative Center for Research on Program Analysis System. He is currently working on developing a tool for automatic generation of program analyzer. Oukseh Lee: He is a Ph.D. candidate in the Department of Computer Science at KAIST (Korea Advanced Institute of Science and Technology). He received his bachelor’s and master’s degree in Computer Science from KAIST in 1995 and 1997, respectively. His research interest has been on static program analysis, type system, program language implementation, higher-order and typed languages, and program verification. From 1998, he has been a research assistant of the National Creative Research Initiative Center for Research on Program Analysis System. He is currently working on compile-time analyses and verification for the memory behavior of programs. Kwangkeun Yi, Ph.D.: His research interest has been on semanticbased program analysis and systems application of language technologies. After his Ph.D. from University of Illinois at Urbana-Champaign he joined the Software Principles Research Department at Bell Laboratories, where he worked on various static analysis approaches for higher-order and typed programming languages. For 1995 to 2003 he was a faculty member in the Department of Computer Science, Korea Advanced Institute of Science and Technology. Since fall 2003, he has been a faculty member in the School of Computer Science and Engineering, Seoul National University.  相似文献   

7.
异常处理是现代程序设计语言提供的用来提高软件健壮性的一种机制。由于在C^++的函数界面中并不要求声明该函数所能传播出的异常的类型,所以要想提高系统的健壮性,必须清楚在程序的执行过程中可能引发的异常、异常的传播路径等。然而在大型系统中,要想确定这些信息是非常困难的。本文针对C^++的异常处理机制,首先提出了一个描述C^++异常结构信息的模型,并把该模型应用于递归函数中。然后,描述了一个基于该模型的分析C^++程序异常结构信息的工具CETool。该工具能提供所有显式引发异常的有关信息,为系统中异常处理结构的改进和程序的结构测试提供有价值的信息。最后给出了该工具的实现方法和应用实例。  相似文献   

8.
C++程序中异常处理的分析与测试技术研究   总被引:2,自引:1,他引:2  
异常处理机制是一种运行时错误通知机制,将程序的正常控制代码和错误处理代码分离.然而异常机制的引入使得程序控制信息变得更为复杂;且开发人员一般难以熟练使用它,导致程序中会潜伏许多异常错误.扩展已有的显式异常分析技术,对隐式异常也进行了全面的分析并提出了过程间(内)控制流图的构造方法,并以此为基础给出了一个C++程序健壮性改进模型.同时还提出了针对异常的两种动态测试策略:基于约束求解的异常测试策略和统计结构性异常测试策略.最后实现了一个初步的异常分析与测试原型工具并进行了初步实验分析,其结果表明本文提出的分析与测试方法对程序质量有较大程度的提高.  相似文献   

9.
As aspects extend or replace existing functionality at specific join points in the code, their behavior may raise new exceptions, which can flow through the program execution in unexpected ways. Assuring the reliability of exception handling code in aspect-oriented (AO) systems is a challenging task. Testing the exception handling code is inherently difficult, since it is tricky to provoke all exceptions during tests, and the large number of different exceptions that can happen in a system may lead to the test-case explosion problem. Moreover, we have observed that some properties of AO programming (e.g., quantification, obliviousness) may conflict with characteristics of exception handling mechanisms, exacerbating existing problems (e.g., uncaught exceptions). The lack of verification approaches for exception handling code in AO systems stimulated the present work. This work presents a verification approach based on a static analysis tool, called SAFE, to check the reliability of exception handling code in AspectJ programs. We evaluated the effectiveness and feasibility of our approach in two complementary ways (i) by investigating if the SAFE tool is precise enough to uncover exception flow information and (ii) by applying the approach to three medium-sized ApectJ systems from different application domains.  相似文献   

10.
We present polynomial-time static semantics-preserving transformations of real-time programs. Used in conjunction with schedulability analysis, the transformations significantly increase the class of real-time programs that may be analyzed efficiently for guaranteed schedulability at compile-time. In cases where the form of resource contention among processes resists efficient transformation, we apply a heuristic transformation (and a consequent run-time scheduling heuristic) to allow the programs to be analyzed efficiently.This work is supported in part by the U.S. Office of Naval Research Grant N00014-92-J-1367 and AT&T UEDP grant 91-134. Work on this paper was completed, and the paper submitted while this author was visiting Department of Computer Science, University of Twente, Enschede, The Netherlands, under the conditions of the NATO Collaborative Research Grant CRG-901007.  相似文献   

11.
当前并发程序容错机制处理方式单一、效率较低。为此,提出一种适用于多种并发程序错误处理的容错机制。通过在编译及运行过程中对程序进行异常处理,并在异常发生时根据设置的检查点对程序进行回滚和防错误处理,以实现并发程序容错。实验结果表明,该容错机制可有效检测并发程序中的错误,在不增加程序总体运行时间的情况下达到比较理想的容错效果。  相似文献   

12.
Java语言的异常处理设计原则   总被引:4,自引:0,他引:4  
异常处理是Java语言的重要语言机制,正确地处理异常对程序的可靠性、健壮性是十分重要的。回顾了异常处理技术的概念和思想,对异常处理提出了一套实用的设计原则,并针对Java语言的具体环境,分类介绍了各种异常的常用处理方式。  相似文献   

13.
Linguistic mechanisms for exception handling facilitate the production of reliable software and play an important role in fault tolerant computing. This paper describes the functional semantics of a Pascal-like language which supports exception handling and data abstraction. A program with exceptions is considered as having a standard semantics, as well as an exceptional semantics for each exception that may be signaled during its execution. Standard functional semantics methods provide rules to obtain the function representing the standard semantics. In this paper, we provide rules to determine the functions representing the exceptional semantics. We also describe a method for specifying and verifying the correctness of implementation of data types with exceptions.  相似文献   

14.
In this paper,a noverl technique adopted in HarkMan is introduced.HarkMan is a keywore-spotter designed to automatically spot the given words of a vocabulary-independent task in unconstrained Chinese telephone speech.The speaking manner and the number of keywords are not limited.This paper focuses on the novel technique which addresses acoustic modeling,keyword spotting network,search strategies,robustness,and rejection.The underlying technologies used in HarkMan given in this paper are useful not only for keyword spotting but also for continuous speech recognition.The system has achieved a figure-of-merit value over 90%.  相似文献   

15.
Efficient detection of a class of stable properties   总被引:1,自引:1,他引:1  
Summary We present a general protocol for detecting whether a property holds in a distributed system, where the property is a member of a class of stable properties we call thelocally stable properties. Our protocol is based on a decentralized method for constructing a maximal subset of the local states that are mutually consistent, which in turn is based on a weakened version of vector time stamps. The structure of our protocol lends itself to refinement, and we demonstrate its utility by deriving some specialized property-detection protocols, including two previously-known protocols that are known to be efficient. Laura Sabel received the BSE degree from Princeton University in 1989 and the MS degree in Computer Science from Cornell University in 1992. She is currently a PhD student in the Department of Computer Science at Cornell University. Her research interests include fault-tolerance and distributed systems. she is the recipient of an AT&T PhD Scholarship. Keith Marzullo received his Ph.D. degree in electrical engineering from Stanford University in 1984. He is an associate professor in the Computer Science and Engineering Department at the University of California, San Diego. His research interests are in the area of fault-tolerance in both asynchronous and real-time distributed systems. He has consulted on several projects including the IBM Air Traffic Control System, and is an associate editor for IEEE Transactions on Software Engineering.This work was supported by the Defense Advanced Research Projects Agency (DoD) under NASA Ames grant number NAG 2-593, and by grants from IBM and Siemens. The views, opinions, and findings contained in this report are those of the authors and should not be construed as an official Department of Defense position, policy, or decision. An earlier version of this paper appears in theProceedings of the 5th International Workshop on Distributed Systems, October 1991, Springer-Verlag LNCS Vol. 579This author is also supported by an AT&T PhD Scholarship  相似文献   

16.
Java异常处理策略研究   总被引:1,自引:0,他引:1  
异常处理机制是程序设计语言的重要标志之一,在程序设计过程中用来处理程序运行中的异常。传统的程序设计语言里异常处理较为繁杂。Java是一种面向对象的程序设计语言,且引入了异常处理机制。合理完备的异常处理可以增强程序运行的可靠性、提高软件的健壮性,可以较为快速地确定错误的位置。文章分析了Java异常处理的逻辑,阐述了异常类、异常处理机制以及异常处理方法,提出了异常处理的一些策略。综合运用这些策略可以使编程人员编写出更加简洁、高效的程序代码。  相似文献   

17.
薛岗  叶小虎  张楠  姚绍文 《计算机科学》2011,38(11):131-136
业务流程运行期间,外部或运行环境中的某些属性与流程设计时所设定的条件不一致时,将导致流程运行时的违例,违例处理方法涉及流程运行时违例的发现和处理。首先介绍了流程的违例及其分类;基于流程违例处理模式,使用CCS偶图对流程工作项级、案例级违例处理以及相关补偿处理进行分析和表述;在违例处理策略讨论的基础上,总结了违例处理模式的基本形式,并通过CCS偶图的动态特征分析了违例处理的动态行为。  相似文献   

18.
对Java程序设计中出现的异常处理技术进行了研究,对Java异常处理知识进行了必要的介绍和简单的分析,并总结了几种在Java程序设计中如何定义和使用异常类。  相似文献   

19.
Java异常处理机制的研究   总被引:7,自引:0,他引:7  
杨厚群  陈静 《计算机科学》2007,34(3):286-289
异常处理是Java语言的重要语言机制,正确、合理地处理异常对程序的可靠性、健壮性是十分重要的。在分析了异常处理技术的概念和思想后,对异常处理提出了指导原则,并针对检查型异常和非检查型异常的差异,探讨了对应的解决措施。  相似文献   

20.
In software testing, developing effective debugging strategies is important to guarantee the reliability of software under testing. A heuristic technique is to cause failure and therefore expose faults. Based on this approach mutation testing has been found very useful technique in detecting faults. However, it suffers from two problems with successfully testing programs: (1) requires extensive computing resources and (2) puts heavy demand on human resources. Later, empirical observations suggest that critical slicing based on Statement Deletion (Sdl) mutation operator has been found the most effective technique in reducing effort and the required computing resources in locating the program faults. The second problem of mutation testing may be solved by automating the program testing with the help of software tools. Our study focuses on determining the effectiveness of the critical slicing technique with the help of the Mothra Mutation Testing System in detecting program faults. This paper presents the results showing the performance of Mothra Mutation Testing System through conducting critical slicing testing on a selected suite of programs. Zuhoor Abdullah Al-Khanjari is an assistant professor in the Computer Science Department at Sultan Qaboos University, Sultanate of Oman. She received her BSc in mathematics and computing from Sultan Qaboos University, MSc and PhD in Computer Science (Software Engineering) from the University of Liverpool, UK. Her research interests include software testing, database management, e-learning, human-computer interaction, programming languages, intelligent search engines, and web data mining and development. ~Currently, she is the coordinator of the software engineering research group in the Department of Computer Science, College of Science, Sultan Qaboos University. She is also coordinating a program to develop e-learning based undergraduate teaching in the Department of Computer Science. Currently she is holding the position of assistant dean for postgraduate studies and research in the College of Science, Sultan Qaboos University, Sultanate of Oman. Martin Woodward is a Senior Fellow in the Computer Science Department at the University of Liverpool in the UK. After obtaining BSc and Ph.D. degrees in mathematics from the University of Nottingham, he was employed by the University of Oxford as a Research Assistant on secondment to the UK Atomic Energy Authority at the Culham Laboratory. He has been at the University of Liverpool for many years and initially worked on the so-called ‘Testbed’ project, helping to develop automated tools for software testing which are now marketed successfully by a commercial organisation. His research interests include software testing techniques, the relationship between formal methods and testing, and software visualisation. He has served as Editor of the journal ‘Software Testing, Verification and Reliability’ for the past thirteen years. Haider Ramadhan is an associate professor in the Computer Science Department at Sultan Qaboos University. He received his BS and MS in Computer Science from University of North Carolina, and the PhD in Computer Science and AI from Sussex University. His research interests include visualization of software, systems, and process, system engineering, human-computer interaction, intelligent search engines, and Web data mining and development. Currently, he is the chairman of the Computer Science Department, College of Science, Sultan Qaboos University, Sultanate of Oman. Swamy Kutti (N. S. Kutti) is an associate professor in the Computer Science Department at Sultan Qaboos University. He received his B.E. in Electronics Engineering from the University of Madras, M.E. in Communication Engineering from Indian Institute of Science (Bangalore), and the MSc in Computer Science from Monash University (Australia) and PhD in Computer Science from Deakin University (Australia). His research interests include Real-Time Programming, Programming Languages, Program Testing and Verification, eLearning, and Distributed Operating Systems.  相似文献   

设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司  京ICP备09084417号