Jayadev Misra

dblp:m/JayadevMisra · DBLP profile ↗
← Back
65ranked-venue papers
38as first author
0since 2021 · last 2015
—ORCID · none

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 24 · 16 first-authorTheory of computation · 23 · 16 first-authorSystems, architecture and hardware · 16 · 6 first-authorDatabases, data management, data science and information retrieval · 10 · 9 first-authorComputer networks · 1Applied, interdisciplinary, general and emerging computing · 1

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Software engineering, system software, and programming languages
11 papers
Program verification · 52% Concurrent programming · 37% Programming languages and type systems · 10%
Computer architecture, parallel and distributed computing, and storage systems
11 papers
Distributed systems · 49% Parallel and multicore computing · 33% Performance modeling and evaluation · 15%
Theoretical computer science
15 papers
Automated reasoning and model checking · 57% Distributed computing theory · 32% Logic in computer science · 5%

Topics — the 30 heaviest of 63, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Concurrent programming
concurrency theory
0.212014
A personal perspective on concurrency · PLDI 2014
Program verification › program logic
UNITY
0.212014
A personal perspective on concurrency · PLDI 2014
Distributed systems › distributed algorithms
logical clocks
0.112008
Simulation, Orchestration and Logical Clocks · FM 2008
Automated reasoning and model checking
model checking
0.112014
A personal perspective on concurrency · PLDI 2014
Parallel and multicore computing
concurrent data structures
0.012004
Brief announcement: concurrent maintenance of rings · PODC 2004
Performance modeling and evaluation
simulation
0.022008
Simulation, Orchestration and Logical Clocks · FM 2008
A Message-Based Approach to Discrete-Event Simulation · IEEE Trans. Software Eng. 1987
Programming languages and type systems
language semantics
0.012000
Toward a theory of maximally concurrent programs (shortened version) · PODC 2000
Programming languages and type systems › specification language
linear temporal logic
0.012000
Toward a theory of maximally concurrent programs (shortened version) · PODC 2000
Program verification
temporal logic
0.012000
Toward a theory of maximally concurrent programs (shortened version) · PODC 2000
Distributed systems
concurrency
0.012004
Brief announcement: concurrent maintenance of rings · PODC 2004
Parallel and multicore computing
data-parallel programming
0.011994
Powerlist: A Structure for Parallel Recursion · ACM Trans. Program. Lang. Syst. 1994
Parallel and multicore computing
parallel algorithms
0.011994
Powerlist: A Structure for Parallel Recursion · ACM Trans. Program. Lang. Syst. 1994
Distributed computing theory
distributed algorithms
0.031986
An Example of Stepwise Refinement of Distributed Programs: Quiescence Detection · ACM Trans. Program. Lang. Syst. 1986
The Drinking Philosopher's Problem · ACM Trans. Program. Lang. Syst. 1984
Detecting Termination of Distributed Computations Using Markers · PODC 1983
Automated reasoning and model checking
equational reasoning
0.011989
Equational Reasoning About Nondeterministic Processes · PODC 1989
Distributed computing theory › predicate detection › stable property detection
termination detection
0.021983
Detecting Termination of Distributed Computations Using Markers · PODC 1983
Termination Detection of Diffusing Computations in Communicating Sequential Processes · ACM Trans. Program. Lang. Syst. 1982
Distributed systems › concurrency control
deadlock detection
0.021982
A Distributed Graph Algorithm: Knot Detection · ACM Trans. Program. Lang. Syst. 1982
A Distributed Algorithm for Detecting Resource Deadlocks in Distributed Systems · PODC 1982
Performance modeling and evaluation › simulation
discrete-event simulation
0.011987
A Message-Based Approach to Discrete-Event Simulation · IEEE Trans. Software Eng. 1987
Concurrent programming
shared memory
0.011986
Axioms for Memory Access in Asynchronous Hardware Systems · ACM Trans. Program. Lang. Syst. 1986
Integrated circuit design
asynchronous circuit design
0.011986
Axioms for Memory Access in Asynchronous Hardware Systems · ACM Trans. Program. Lang. Syst. 1986
Parallel and multicore computing › parallel algorithms › parallel algorithm design
parallel recursion
0.011994
Powerlist: A Structure for Parallel Recursion · ACM Trans. Program. Lang. Syst. 1994
Distributed computing theory
knowledge in distributed systems
0.011985
How Processes Learn · PODC 1985
Distributed computing theory
conflict resolution
0.011984
The Drinking Philosopher's Problem · ACM Trans. Program. Lang. Syst. 1984
Distributed computing theory › mutual exclusion
dining philosophers
0.011984
The Drinking Philosopher's Problem · ACM Trans. Program. Lang. Syst. 1984
Distributed systems
distributed database
0.011983
Distributed Deadlock Detection · ACM Trans. Comput. Syst. 1983
Distributed computing theory › predicate detection › stable property detection
deadlock detection
0.011983
Distributed Deadlock Detection · ACM Trans. Comput. Syst. 1983
Concurrent programming › concurrency theory › process calculi
communicating sequential processes
0.011982
Termination Detection of Diffusing Computations in Communicating Sequential Processes · ACM Trans. Program. Lang. Syst. 1982
Concurrent programming
deadlock detection
0.011982
Termination Detection of Diffusing Computations in Communicating Sequential Processes · ACM Trans. Program. Lang. Syst. 1982
Distributed systems
distributed algorithms
0.011982
A Distributed Algorithm for Detecting Resource Deadlocks in Distributed Systems · PODC 1982
Distributed systems › concurrency control › deadlock detection
distributed deadlock detection
0.011982
A Distributed Graph Algorithm: Knot Detection · ACM Trans. Program. Lang. Syst. 1982
Distributed computing theory › distributed algorithms
diffusing computation
0.011982
Termination Detection of Diffusing Computations in Communicating Sequential Processes · ACM Trans. Program. Lang. Syst. 1982

Methods — techniques the papers use, named apart from their topics

UNITY · 0.4predicate transformer semantics · 0.0linear temporal logic · 0.0algebraic derivation · 0.0stepwise refinement · 0.0axiomatic specification · 0.0distributed detection algorithm · 0.0acyclic precedence graph · 0.0process scheduling · 0.0language design · 0.0dijkstra-scholten scheme · 0.0marker algorithm · 0.0inference rules · 0.0epistemic reasoning · 0.0termination proof · 0.0induction · 0.0formal model · 0.0dijkstra-scholten algorithm · 0.0
YearPublicationVenuePosition
2015 Mapping among the nodes of infinite trees: A variation of Kőnig's infinity lemma
Jayadev Misra
Inf. Process. Lett.1
2014 A personal perspective on concurrency
abstract
This talk will describe a view of concurrency, the author's own, as it has evolved since the late 1970s. Early notions of concurrency were intimately tied with physical hardware and speeding up of computations, which proved to be an impediment to the development of a logical theory of concurrency. In collaboration with K. Mani Chandy, the author developed a theory called UNITY that combined a programming notation with a verification logic to describe a large class of fundamental concurrent algorithms arising in operating systems, communication protocols and distributed systems. Several model checkers, including Murphi, developed by David Dill, are based on UNITY.
Jayadev Misra
PLDI1
2012 A secure voting scheme based on rational self-interest
abstract
Abstract We propose a scheme for secure voting that involves the candidates themselves in implementing the voting system. It exploits the competing interests (rivalry) and mutual distrust among the candidates to force an honest election.
Jayadev Misra
Formal Aspects Comput.1
2011 Virtual Time and Timeout in Client-Server Networks - (Extended Abstract)
Jayadev Misra
ICTAC1
2010 Maintaining the Ranch topology
Xiaozhou Li 0001, Jayadev Misra, C. Greg Plaxton
J. Parallel Distributed Comput.2
2008 Simulation, Orchestration and Logical Clocks
David Kitchin, Evan Powell, Jayadev Misra
FM3
2008 A timed semantics of Orc
Ian Wehrman, David Kitchin, William R. Cook, Jayadev Misra
Theor. Comput. Sci.4
2007 Computation Orchestration
Jayadev Misra, William R. Cook
Softw. Syst. Model.1
2006 A Language for Task Orchestration and Its Semantic Properties
David Kitchin, William R. Cook, Jayadev Misra
CONCUR3
2006 Workflow Patterns in Orc
William R. Cook, Sourabh Patwardhan, Jayadev Misra
COORDINATION3
2006 Concurrent Maintenance of Rings
Xiaozhou Li 0001, Jayadev Misra, C. Greg Plaxton
Distributed Comput.2
2004 Brief announcement: concurrent maintenance of rings
abstract
No abstract available.
Xiaozhou Li 0001, Jayadev Misra, C. Greg Plaxton
PODC2
2004 A Programming Model for the Orchestration of Web Services
Jayadev Misra
SEFM1
2004 Active and Concurrent Topology Maintenance
Xiaozhou Li 0001, Jayadev Misra, C. Greg Plaxton
DISC2
2003 Topic Introduction
Jayadev Misra, Wolfgang Reisig, Michael Schöttner, Laurent Lefèvre
Euro-Par1
2003 Derivation of a parallel string matching algorithm
Jayadev Misra
Inf. Process. Lett.1
2002 Orchestrating Computations on the World-Wide Web
Young-ri Choi, Siddhartha Rai, Jayadev Misra, Harrick M. Vin
Euro-Par4
2002 The Case against a Grand Unification Theory
Jayadev Misra
ICSR1
2002 A Simple, Object-Based View of Multiprogramming
Jayadev Misra
Formal Methods Syst. Des.1
2001 Orchestrating Computations on the World-Wide Web
abstract
The objective of this project is to design a domain-independent framework that allows rapid development of applications customized for specific user needs. We see three major components in the design: (1) persistent storage management, (2) computational logic and execution environment, and (3) methods for orchestrating computations. Recent developments in industry and academia have made available solutions for persistent storage management and distributed execution of computational tasks (e.g., the .NET and the Websphere infrastructures). This project builds upon these efforts; it permits the specification and instantiation of scripts for orchestrating the execution of several computational tasks. The orchestration script specifies what computations to perform and when; but no information on how to perform the computations.
Jayadev Misra, Harrick M. Vin
APSEC1
2001 A walk over the shortest path: Dijkstra's Algorithm viewed as fixed-point computation
Jayadev Misra
Inf. Process. Lett.1
2000 Toward a theory of maximally concurrent programs (shortened version)
abstract
Typically, program design involves constructing a program P that implements a given specification S; that is, the set P of executions of P is a subset of the set S of executions satisfying S. In many cases, we seek a program P that not only implements S, but for which P = S. Then, every execution satisfying the specification is a possible execution of the program; we then call P maximal for the specification S. We argue that maximality is an important criterion in the context of designing concurrent programs because it disallows implementations that do not exhibit enough concurrency. In addition, a maximal solution can serve as a basis for deriving a variety of implementations, each appropriate for execution on a specific computing platform.This paper also describes a method for proving the maximality of a program with respect to a given specification. Even though we prove facts about possible executions of programs, there is no need to appeal to branching time logics; we employ a fragment of linear temporal logic for our proofs. The method results in concise proofs of maximality for several non-trivial examples. The method may also serve as a guide in constructing maximal programs.
Rajeev Joshi, Jayadev Misra
PODC2
2000 Maximally Concurrent Programs
abstract
Abstract. Typically, program design involves constructing a program P that implements a given specification S ; that is, the set ${\overline P}$ of executions of P is a subset of the set ${\overline S}$ of executions satisfying S . In many cases, we seek a program P that not only implements S , but for which ${\overline P}$ = ${\overline S}$ . Then, every execution satisfying the specification is a possible execution of the program; we then call P maximal for the specification S . We argue that maximality is an important criterion in the context of designing concurrent programs because it disallows implementations that do not exhibit enough concurrency. In addition, a maximal solution can serve as a basis for deriving a variety of implementations, each appropriate for execution on a specific computing platform. This paper also describes a method for proving the maximality of a program with respect to a given specification. Even though we prove facts about possible executions of programs, there is no need to appeal to branching time logics; we employ a fragment of linear temporal logic for our proofs. The method results in concise proofs of maximality for several non-trivial examples. The method may also serve as a guide in constructing maximal programs.
Rajeev Joshi, Jayadev Misra
Formal Aspects Comput.2
1994 Powerlist: A Structure for Parallel Recursion
abstract
Many data-parallel algorithms—Fast Fourier Transform, Batcher's sorting schemes, and the prefix-sum—exhibit recursive structure. We propose a data structure called powerlist that permits succinct descriptions of such algorithms, highlighting the roles of both parallelism and recursion. Simple algebraic properties of this data structure can be explotied to derive properties of these algorithms and to establish equivalence of different algorithms that solve the same problem.
Jayadev Misra
ACM Trans. Program. Lang. Syst.1
1992 Loosely-coupled processes
Jayadev Misra
Future Gener. Comput. Syst.1
1992 Corrigenda: Phase Synchronization
Jayadev Misra
Inf. Process. Lett.1
1992 A Constructive Proof of Vizing's Theorem
Jayadev Misra, David Gries
Inf. Process. Lett.1
1991 Phase Synchronization
Jayadev Misra
Inf. Process. Lett.1
1990 Equational Reasoning About Nondeterministic Processes
abstract
Abstract A deterministic message-communicating process can be characterised by a “continuous” function f which describes the relationship between the inputs and the outputs of the process. The operational behaviour of a network of deterministic processes can be deduced from the least fixpoint of a function g , where g is obtained from the functions that characterise the component processes of the network. We show in this paper that a nondeter-ministic process can be characterised by a “description” consisting of a pair of functions. The behaviour of a network consisting of such processes can be obtained from the “smooth” solutions of the descriptions characterising its component processes. The notion of smooth solution is a generalisation of least fixpoint. Descriptions enjoy the crucial property that a variable may be replaced by its definition.
Jayadev Misra
Formal Aspects Comput.1
1990 Specifying Concurrent Objects as Communicating Processes
Jayadev Misra
Sci. Comput. Program.1
1989 Specifications of Concurrently Accessed Data
Jayadev Misra
MPC1
1989 Equational Reasoning About Nondeterministic Processes
abstract
No abstract available.
Jayadev Misra
PODC1
1989 A Simple Proof of a Simple Consensus Algorithm
Jayadev Misra
Inf. Process. Lett.1
1987 Parallelism and Programming: A Perspective
K. Mani Chandy, Jayadev Misra
FSTTCS2
1987 A Message-Based Approach to Discrete-Event Simulation
abstract
This paper develops a message-based approach to discrete-event simulation. Although message-based simulators have the same expressive power as traditional discrete-event simulation lanuages, they provide a more natural environment for simulating distributed systems. In message-based simulations, a physical system is modeled by a set of message-communicating processes. The events in the system are modeled by message-communications. The paper proposes the entity construct to represent a message-communicating process operating in simulated time. A general wait until construct is used for process scheduling and message-communication. Based on these two notions, the paper proposes a language fragment comprising a small set of primitives. The language fragment can be implemented in any general-purpose, sequential programming language to construct a message-based simulator. We give an example of a message-based simulation language, called MAY, developed by implementing the language fragment in Fortran. MAY is in the public domain and is available on request.
Rajive L. Bagrodia, K. Mani Chandy, Jayadev Misra
IEEE Trans. Software Eng.3
1986 How Processes Learn
K. Mani Chandy, Jayadev Misra
Distributed Comput.2
1986 Systolic Algorithms as Programs
K. Mani Chandy, Jayadev Misra
Distributed Comput.2
1986 An Example of Stepwise Refinement of Distributed Programs: Quiescence Detection
abstract
We propose a methodology for the development of concurrent programs and apply it to an important class of problems: quiescence detection. The methodology is based on a novel view of programs. A key feature of the methodology is the separation of concerns between the core problem to be solved and details of the forms of concurrency employed in the target architecture and programming language. We begin development of concurrent programs by ignoring issues dealing with concurrency and introduce such concerns in manageable doses. The class of problems solved includes termination and deadlock detection.
K. Mani Chandy, Jayadev Misra
ACM Trans. Program. Lang. Syst.2
1986 Axioms for Memory Access in Asynchronous Hardware Systems
abstract
The problem of concurrent accesses to registers by asynchronous components is considered. A set of axioms about the values in a register during concurrent accesses is proposed. It is shown that if these axioms are met by a register, then concurrent accesses to it may be viewed as nonconcurrent, thus making it possible to analyze asynchronous algorithms without elaborate timing analysis of operations. These axioms are shown, in a certain sense, to be the weakest. Motivation for this work came from analyzing low-level hardware components in a VLSI chip which concurrently accesses a flip-flop.
Jayadev Misra
ACM Trans. Program. Lang. Syst.1
1985 How Processes Learn
K. Mani Chandy, Jayadev Misra
PODC2
1984 The Drinking Philosopher's Problem
abstract
The problem of resolving conflicts between processes in distributed systems is of practical importance.A conflict between a set of processes must be resolved in favor of some (usually one) process and against the others: a favored process must have some property that distinguishes it from others.To guarantee fairness, the distinguishing property must be such that the process selected for favorable treatment is not always the same.A distributed implementation of an acyclic precedence graph, in which the depth of a process (the longest chain of predecessors) is a distinguishing property, is presented.A simple conflict resolution rule coupled with the acyclic graph ensures fair resolution of all conflicts.To make the problem concrete, two paradigms are presented: the well-known distributed dining philosophers problem and a generalization of it, the distributed drinking philosophers problem.
K. Mani Chandy, Jayadev Misra
ACM Trans. Program. Lang. Syst.2
1983 Detecting Termination of Distributed Computations Using Markers
abstract
A problem of considerable importance in designing computations by process networks, is detection of termination. We propose a very simple algorithm for termination detection in an arbitrary network using a single marker We show an application of this scheme in solving the problem of token loss detection and token regeneration in a token ring.
Jayadev Misra
PODC1
1983 Distributed Deadlock Detection
abstract
Distributed deadlock models are presented for resource and communication deadlocks.Simple distributed algorithms for detection of these deadlocks are given.We show that all true deadlocks are detected and that no false deadlocks are reported.In our algorithms, no process maintains global information; all messages have an identical short length.The algorithms can be applied in distributed database and other message communication systems.
K. Mani Chandy, Jayadev Misra, Laura M. Haas
ACM Trans. Comput. Syst.2
1982 A Distributed Algorithm for Detecting Resource Deadlocks in Distributed Systems
abstract
This paper presents a distributed algorithm to detect deadlocks in distributed data bases. Features of this paper are (1) a formal model of the problem is presented, (2) the correctness of the algorithm is proved, i.e. we show that all true deadlocks will be detected and deadlocks will not be reported falsely, (3) no assumptions are made other than that messages are received correctly and in order and (4) the algorithm is simple.
K. Mani Chandy, Jayadev Misra
PODC2
1982 Proving Safety and Liveness of Communicating Processes with Examples
abstract
A method is proposed for reasoning about safety and liveness properties of message passing networks. The method is hierarchical and is based upon combining the specifications of component processes to obtain the specification of a network. The inference rules for safety properties use induction on the number of messages transmitted; liveness proofs use techniques similar to termination proofs in sequential programs. We illustrate the method with two examples: concatenations of buffers to construct larger buffers and a special case of Stenning protocol for message communication over noisy channels.
Jayadev Misra, K. Mani Chandy, Todd Smith
PODC1
1982 Finding Repeated Elements
Jayadev Misra, David Gries
Sci. Comput. Program.1
1982 Termination Detection of Diffusing Computations in Communicating Sequential Processes
abstract
In this paper it is shown how the Dijkstra-Scholten scheme for termination detection in a diffusing computation can be adapted to detect termination or deadlock in a network of communicating sequential processes as defined by Hoare.
Jayadev Misra, K. Mani Chandy
ACM Trans. Program. Lang. Syst.1
1982 A Distributed Graph Algorithm: Knot Detection
abstract
A knot in a directed graph is a useful concept in deadlock detection.A distributed algorithm for identifying a knot in a graph by using a network of processes is presented.The algorithm is based on the work of Dijkstra and Scholten.
Jayadev Misra, K. Mani Chandy
ACM Trans. Program. Lang. Syst.1
1981 An Exercise in Program Explanation
abstract
article An Exercise in Program Explanation Share on Author: Jayadev Misra Department of Computer Sciences, College of Natural Sciences, The University of Texas at Austin, Austin, TX Department of Computer Sciences, College of Natural Sciences, The University of Texas at Austin, Austin, TXView Profile Authors Info & Claims ACM Transactions on Programming Languages and SystemsVolume 3Issue 1Jan. 1981 pp 104–109https://doi.org/10.1145/357121.357128Published:01 January 1981 4citation294DownloadsMetricsTotal Citations4Total Downloads294Last 12 Months6Last 6 weeks0 Get Citation AlertsNew Citation Alert added!This alert has been successfully added and will be sent to:You will be notified whenever a record that you have chosen has been cited.To manage your alert preferences, click on the button below.Manage my AlertsNew Citation Alert!Please log in to your account Save to BinderSave to BinderCreate a New BinderNameCancelCreateExport CitationPublisher SiteGet Access
Jayadev Misra
ACM Trans. Program. Lang. Syst.1
1981 Proofs of Networks of Processes
abstract
We present a proof method for networks of processes in which component processes communicate exclusively through messages. We show how to construct proofs of invariant properties which hold at all times during network computation, and terminal properties which hold upon termination of network computation, if network computation terminates. The proof method is based upon specifying a process by a pair of assertions, analogous to pre-and post-conditions in sequential program proving. The correctness of network specification is proven by applying inference rules to the specifications of component processes. Several examples are proved using this technique.
Jayadev Misra, K. Mani Chandy
IEEE Trans. Software Eng.1
1979 Distributed Simulation of Networks
K. Mani Chandy, Victor Holmes, Jayadev Misra
Comput. Networks3
1979 Deadlock Absence Proofs for Networks of Communicating Processes
K. Mani Chandy, Jayadev Misra
Inf. Process. Lett.2
1979 Space-Time Trade Off in Implementing Certain Set Operations
Jayadev Misra
Inf. Process. Lett.1
1979 Distributed Simulation: A Case Study in Design and Verification of Distributed Programs
abstract
The problem of system simulation is typically solved in a sequential manner due to the wide and intensive sharing of variables by all parts of the system. We propose a distributed solution where processes communicate only through messages with their neighbors; there are no shared variables and there is no central process for message routing or process scheduling. Deadlock is avoided in this system despite the absence of global control. Each process in the solution requires only a limited amount of memory. The correctness of a distributed system is proven by proving the correctness of each of its component processes and then using inductive arguments. The proposed solution has been empirically found to be efficient in preliminary studies. The paper presents formal, detailed proofs of correctness.
K. Mani Chandy, Jayadev Misra
IEEE Trans. Software Eng.2
1978 A nontrivial example of concurrent processing: Distributed simulation
abstract
This paper is concerned with the pros and cons of writing distributed applications software. Most applications software is highly sequential due to the sharing of variables. Here we focus attention on one such application: discrete-event simulatiom. We show how to develop distributed software for this application by taking a radically different view of the application. We outline proofs that our distributed software is correct. Our goal is to develop guidelines for writing distributed applications software.
K. Mani Chandy, Jayadev Misra
COMPSAC2
1978 A Technique of Algorithm Construction on Sequences
abstract
A technique is presented which is shown to be useful in designing algorithms which operate on sequences (strings). A generalization of the principle is presented for more general data structure.
Jayadev Misra
IEEE Trans. Software Eng.1
1978 An Approach to Formal Definitions and Proofs of Programming Principles
abstract
A method for formal description of programming prinicples is presented in this paper. Programming principles, such as sequential search can be defined and proven even in the absence of an application. We represent a principle as a program scheme which has partially interpreted functions in it. The functions must obey certain input constraints. Use of these ideas in program proving is illustrated with examples.
Jayadev Misra
IEEE Trans. Software Eng.1
1978 Some Aspects of the Verification of Loop Computations
abstract
The problem of proving whether or not a loop computes a given function is investigated. We consider loops which have a certain "closure" property and derive necessary and sufficient conditions for such a loop to compute a given function. It is argued that closure is a fundamental concept in program proving. Extensions of the basic result to proofs involving relations other than functional relations, which typically arise in nondeterministic loops, are explored. Several applications of these results are given, particularly in showing that certain classes of programs may be directly proven (their loop invariants generated) given only their input-output relationships. Implications of these results are discussed.
Jayadev Misra
IEEE Trans. Software Eng.1
1977 A Linear Tree Partitioning Algorithm
abstract
Given a rooted tree with a positive weight associated with every node, a linear algorithm is presented that will partition the tree into a minimum number of subtrees such that the sum of node weights in no subtree exceed a prespecified value k.
Sukhamay Kundu, Jayadev Misra
SIAM J. Comput.2
1977 Prospects and Limitations of Automatic Assertion Generation for Loop Programs
abstract
The problem of generation of loop invariants from the input, output assertions of a loop program $({\textbf{while }}B{\textbf{ do }}S)$ is considered. The problem is theoretically unsolvable in general. As a special case we consider assertions of the form $xRy$, where R denotes a binary relation, x denotes the variables manipulated by the program and y denotes variables that are not modified by the(program. We derive conditions for R such that if any loop program has $xRy$ as the input and output assertions, then $xRy$ is a loop invariant. These conditions for R are shown to be necessary and sufficient in that if some $R'$ does not meet these conditions, then there are loop programs for which $xR'y$ holds at entrance and exit, though not following every iteration. In particular it is shown that if R is an equivalence relation, then under certain reasonable restrictions on the loop, $xRy$ holds at entrance and exit of the loop if and only if it holds after every iteration.
Jayadev Misra
SIAM J. Comput.1
1976 A principle of algorithm design on limited problem domain
abstract
This paper studies the problem of algorithm design on well defined data structures. A general principle is presented which is shown to be useful in designing algorithms which operate on sequences (strings). A generalization of the principle is presented for more general data structures. Implications of these results are discussed.
Jayadev Misra
DAC1
1976 Some Classes of Naturally Provable Programs
Sanat K. Basu, Jayadev Misra
ICSE2
1975 Optimal Chain Partitions of Trees
Jayadev Misra, Robert E. Tarjan
Inf. Process. Lett.1
1975 Remark on "Algorithm 246: Graycode [Z]"
abstract
No abstract available.
Jayadev Misra
ACM Trans. Math. Softw.1
1975 Proving Loop Programs
abstract
Given a `DO WHILE' programPand a functionFon a domainD, the authors investigate the problem of proving (or disproving) ifPcomputesFoverD. It is shown that ifPsatisfies certain natural constraints (well behaved), then there is a loop assertion independent of the structure of the loop body, that is both necessary and sufficient for proving the hypothesis. These results are extended to classes of loop programs which are not well behaved and to FOR loops. The sufficiency of Hoare's DO WHILE axiom for well-behaved loop programs is shown. Applications of these ideas to the problem of mechanical generation of assertions is discussed.
Sanat K. Basu, Jayadev Misra
IEEE Trans. Software Eng.2