scispace - formally typeset
Search or ask a question
Author

Kassem Saleh

Bio: Kassem Saleh is an academic researcher from Kuwait University. The author has contributed to research in topics: Communications protocol & Finite-state machine. The author has an hindex of 16, co-authored 84 publications receiving 901 citations. Previous affiliations of Kassem Saleh include American University of Sharjah & Concordia University.


Papers
More filters
Journal ArticleDOI
TL;DR: Eleven methods for the synthesis of communication protocols are described and it is noted that interactive methods allow flexibility in the design process; as a result, communication patterns are not prespecified but may be constructed interactively.
Abstract: Eleven methods for the synthesis of communication protocols are described. Based on particular features of the synthesis process, these methods are classified and compared. In particular, it is noted that interactive methods allow flexibility in the design process; as a result, communication patterns are not prespecified but may be constructed interactively. Methods that only consider the synchronous mode of behavior of communicating entities exclude a wide range of real-life protocols. Methods that make no reference to service requirements do not guarantee the semantic correctness of the synthesized protocol and therefore require the application of a semantic verification procedure. Most methods concentrate on the synthesis of the control part of the protocol entities, which mainly consists of the exchange of synchronization messages. The data part is not adequately treated by any of the synthesis methods. Other than the exchange of synchronization messages, some methods have been extended to deal with unreliable media by synthesizing error-recovery patterns. Some new research directions for enhancing the applicability of the synthesis approach to the design of real-life protocols are obtained. >

103 citations

Journal ArticleDOI
TL;DR: This work assess and compare various compiler testing techniques with respect to some selected criteria and also proposes some new research directions in compiler testing of modem programming languages.
Abstract: Software testing is an important and critical phase of the application software development life cycle. Testing is a time consuming and costly stage that requires a high degree of ingenuity. In the development stages of safety-critical and dependable computer software such as language compilers and real-time embedded software, testing activities consume about 50% of the project time. In this work we address the area of compiler testing. The aim of compiler testing is to verify that the compiler implementation conforms to its specifications, which is to generate an object code that faithfully corresponds to the language semantic and syntax as specified in the language documentation. A compiler should be carefully verified before its release, since it has to be used by many users. Finding an optimal and complete test suite that can be used in the testing process is often an exhaustive task. Various methods have been proposed for the generation of compiler test cases. Many papers have been published on testing compilers, most of which address classical programming languages. In this paper, we assess and compare various compiler testing techniques with respect to some selected criteria and also propose some new research directions in compiler testing of modem programming languages.

84 citations

Journal ArticleDOI
TL;DR: An introduction to methods and tools for testing communication protocols and distributed systems and the problem of testing based on models, in the form of finite state machines, extended FSMs, timed FSMs and communicating FSMs is presented.

72 citations

Journal ArticleDOI
TL;DR: This paper investigates the generation of tests for the data flow aspects of a system implementation, through the application of data flow oriented test selection criteria which have been originally proposed for testing programs written in procedural languages.

53 citations

Journal ArticleDOI
Kassem Saleh1
01 Oct 1996
TL;DR: This paper introduces protocol synthesis in the context of the protocol engineering process, and briefly describes and survey the main features of the proposed synthesis methods.
Abstract: Protocol synthesis attempts to formalize and automate the process of designing communications protocols. Protocol design is an important step in the communications software or protocol engineering development process. Protocol synthesis has been addressed extensively by many researchers around the world, and various approaches have been proposed: from the stepwise refinement of a high level requirements specification to the automatic generation starting from a formal service specification. In this paper, we introduce protocol synthesis in the context of the protocol engineering process, and we briefly describe and survey the main features of the proposed synthesis methods. Tables summarizing this survey are also provided.

45 citations


Cited by
More filters
01 Jan 1978
TL;DR: This ebook is the first authorized digital version of Kernighan and Ritchie's 1988 classic, The C Programming Language (2nd Ed.), and is a "must-have" reference for every serious programmer's digital library.
Abstract: This ebook is the first authorized digital version of Kernighan and Ritchie's 1988 classic, The C Programming Language (2nd Ed.). One of the best-selling programming books published in the last fifty years, "K&R" has been called everything from the "bible" to "a landmark in computer science" and it has influenced generations of programmers. Available now for all leading ebook platforms, this concise and beautifully written text is a "must-have" reference for every serious programmers digital library. As modestly described by the authors in the Preface to the First Edition, this "is not an introductory programming manual; it assumes some familiarity with basic programming concepts like variables, assignment statements, loops, and functions. Nonetheless, a novice programmer should be able to read along and pick up the language, although access to a more knowledgeable colleague will help."

2,120 citations

Journal ArticleDOI
04 Jun 2011
TL;DR: Csmith, a randomized test-case generation tool, is created and spent three years using it to find compiler bugs, and a collection of qualitative and quantitative results about the bugs it found are presented.
Abstract: Compilers should be correct. To improve the quality of C compilers, we created Csmith, a randomized test-case generation tool, and spent three years using it to find compiler bugs. During this period we reported more than 325 previously unknown bugs to compiler developers. Every compiler we tested was found to crash and also to silently generate wrong code when presented with valid input. In this paper we present our compiler-testing tool and the results of our bug-hunting study. Our first contribution is to advance the state of the art in compiler testing. Unlike previous tools, Csmith generates programs that cover a large subset of C while avoiding the undefined and unspecified behaviors that would destroy its ability to automatically find wrong-code bugs. Our second contribution is a collection of qualitative and quantitative results about the bugs we have found in open-source C compilers.

799 citations

Journal ArticleDOI
01 Jul 2003
TL;DR: The experimental results show that the new QoS guided Min-Min heuristic can lead to significant performance gain for a variety of applications and is compared with others based on the quality of the prediction formulated by inaccurate information.
Abstract: Task scheduling is an integrated component of computing With the emergence of Grid and ubiquitous computing, new challenges appear in task scheduling based on properties such as security, quality of service, and lack of central control within distributed administrative domains A Grid task scheduling framework must be able to deal with these issues One of the goals of Grid task scheduling is to achieve high system throughput while matching applications with the available computing resources This matching of resources in a nondeterministically shared heterogeneous environment leads to concerns over Quality of Service (QoS) In this paper a novel QoS guided task scheduling algorithm for Grid computing is introduced The proposed novel algorithm is based on a general adaptive scheduling heuristics that includes QoS guidance The algorithm is evaluated within a simulated Grid environment The experimental results show that the new QoS guided Min-Min heuristic can lead to significant performance gain for a variety of applications The approach is compared with others based on the quality of the prediction formulated by inaccurate information

434 citations

Book
01 Sep 1996
TL;DR: A senior undergraduate or graduate level computer science textbook on algorithm design for distributed computer systems.
Abstract: A senior undergraduate or graduate level computer science textbook on algorithm design for distributed computer systems.

433 citations

Journal Article
TL;DR: A test sequence generated by the procedure given here tours all state transitions and uses a unique signature for each state, called the Unique Input/Output (UIO) sequence, called an input/output behavior that is not exhibited by any other state.

430 citations