He Jifeng
University of Oxford
Network
Latest external collaboration on country level. Dive into details by clicking on the dots.
Publication
Featured researches published by He Jifeng.
Communications of The ACM | 1987
C. A. R. Hoare; Ian J. Hayes; He Jifeng; C. C. Morgan; A. W. Roscoe; Jeff W. Sanders; Ib Holm Sørensen; J. M. Spivey; B. A. Sufrin
A complete set of algebraic laws is given for Dijkstras nondeterministic sequential programming language. Iteration and recursion are explained in terms of Scotts domain theory as fixed points of continuous functionals. A calculus analogous to weakest preconditions is suggested as an aid to deriving programs from their specifications.
Science of Computer Programming | 1997
He Jifeng; Karen Seidel; Annabelle McIver
Abstract The two models presented in this paper provide two different semantics for an extension of Dijkstras language of guarded commands. The extended language has an additional operator, namely probabilistic choice, which makes it possible to express randomized algorithms. An earlier model by Claire Jones included probabilistic choice but not non-determinism, which meant that it could not be used for the development of algorithms from specifications. Our second model is built on top of Claire Jones model, using a general method of extending a probabilistic cpo to one which also contains non-determinism. The first model was constructed from scratch, as it were, guided only by the desire for certain algebraic properties of the language constructs, which we found lacking in the second model. We compare and contrast the properties of the two models both by giving examples and by constructing mappings between them and the non-probabilistic model. On the basis of this comparison we argue that, in general, the first model is preferable to the second.
international symposium organized jointly with working group provably correct systems on formal techniques in real time and fault tolerant systems | 1994
He Jifeng; C. A. R. Hoare; Martin Fränzle; Markus Müller-Olm; Ernst-Rüdiger Olderog; Michael Schenke; Michael R. Hansen; Anders Peter Ravn; Hans Rischel
As computers increasingly control the systems and services we depend upon within our daily lives like transport, communications, and the media, ensuring these systems function correctly is of utmost importance. This book consists of twelve chapters and one historical account that were presented at a workshop in London in 2015, marking the 25th anniversary of the European ESPRIT Basic Research project ProCoS (Provably Correct Systems). The ProCoS I and II projects pioneered and accelerated the automation of verification techniques, resulting in a wide range of applications within many trades and sectors such as aerospace, electronics, communications, and retail. The following topics are covered: An historical account of the ProCoS projectHybrid Systems Correctness of Concurrent Algorithms Interfaces and Linking Automatic VerificationRun-time Assertions Checking Formal and Semi-Formal Methods Provably Correct Systems provides researchers, designers and engineers with a complete overview of the ProCoS initiative, past and present, and explores current developments and perspectives within the field.
Acta Informatica | 1993
C. A. R. Hoare; He Jifeng; A. Sampaio
This paper demonstrates how reduction to normal form can help in the design of a correct compiler for Dijkstras guarded command language. The compilation strategy is to transform a source program, by a series of algebraic manipulations, into a normal form that describes the behaviour of a stored-program computer. Each transformation eliminates high-level language constructs in favour of lower-level constructs. The correctness of the compiler follows from the correctness of each of the algebraic transformations.
Formal Aspects of Computing | 1989
He Jifeng
In this paper we deal with the problem of (nondeterministic and parallel) process refinement. The basic notion of refinement is defined via the improved failure semantics of CSP [BHR84, BrR85, Hoa85, Ros88]. The concept of simulation of Communicating Systems introduced in [Mil80, Par81] is generalised and proved to be sound for the correctness of refinement. A Galois connection is presented to show that up-simulation and down-simulation together provide a complete proof method. The paper also suggests that simulation can be employed to derive an implementation from a specification.In this paper we deal with the problem of (nondeterministic and parallel) process refinement. The basic notion of refinement is defined via the improved failure semantics of CSP [BHR84, BrR85, Hoa85, Ros88]. The concept of simulation of Communicating Systems introduced in [Mil80, Par81] is generalised and proved to be sound for the correctness of refinement. A Galois connection is presented to show that up-simulation and down-simulation together provide a complete proof method. The paper also suggests that simulation can be employed to derive an implementation from a specification.
Theoretical Computer Science | 1994
David Scholefield; Hussein S. M. Zedan; He Jifeng
A refinement calculus for the development of real-time systems is presented. The calculus is based upon a wide-spectrum language called the temporal agent model (TAM), within which both functional and timing properties can be expressed in either abstract or concrete terms. A specification-oriented semantics for the language is given. Program development is considered as a refinement process, i.e. calculation of a structured program from an unstructured specification. A calculus of decomposition is defined. An example program is developed.
CHARME '93 Proceedings of the IFIP WG 10.5 Advanced Research Working Conference on Correct Hardware Design and Verification Methods | 1993
He Jifeng; Ian Page; Jonathan P. Bowen
This paper shows how to compile a program written in a subset of occam into a normal form suitable for further processing into a netlist of components which may be loaded into a Field-Programmable Gate Array (FPGA). A simple state-machine model is adopted for specifying the behaviour of a synchronous circuit where the observable includes the state of the control path and the data path of the circuit. We identify the behaviour of a circuit with a program consisting of a very restricted subset of occam. Algebraic laws are used to facilitate the transformation from a program into a normal form. The compiling specification is presented as a set of theorems that must be proved correct with respect to these laws. A rapid prototype compiler in the form of a logic program may be implemented from these theorems.
Distributed Computing | 1987
He Jifeng; C. A. R. Hoare
An algebraic specification is given of an algorithm for recovery from catastrophe by a deterministic process. A second version of the algorithm also includes check-points. The algorithms are formulated in the notations of Communicating Sequential Processes (Hoare 1985) and the proofs of correctness are conducted wholly by application of algebraic laws (together with the unique fixed point theorem).
Information Processing Letters | 1993
He Jifeng; C. A. R. Hoare
Larticle presente la derivation dune semantique operationnelle a partir dune semantique algebrique. La relation de transition est definie par une inequation et les clauses de la semantique operationnelle sont deduites une a une a laide de raisonnement algebrique. La consistance est garantie dans cette transformation alors que la completude constitue un probleme ouvert
euromicro conference on real-time systems | 1992
He Jifeng; Jonathan P. Bowen
The authors present a real-time programming language, including concurrency, which could be used in the formal development of embedded systems. The semantics of the language is provided in the form of a time interval semantics and also a number of algebraic refinement laws. The laws allow convenient reasoning and transformation of programs. In particular, a compiler for a sequential subset of the language is defined as a set of theorems relating high-level program constructs to a low-level machine specified as an interpreter in the high-level language. In addition, a prototype compiler may be produced very directly from Ihe lheorems in Ihe form of a logic program.