We tackle the problem of data-structure rewriting including pointer redirections. We propose two basic rewrite steps: (i) Local Redirection and Replacement steps the aim of which is redirecting specific pointers determined by means of a pattern, as well as adding new information to an existing data ; and (ii) Global Redirection steps which are aimed to redirect all pointers targeting a node towards another one. We define these two rewriting steps following the double pushout approach. We define first the category of graphs we consider and then define rewrite rules as pairs of graph homomorphisms of the form "L R". Unfortunately, inverse pushouts (complement pushouts) are not unique in our setting and pushouts do not always exist. Therefore, we define rewriting steps so that a rewrite rule can always be performed once a matching is found.
Recently, in @cite_11 the authors are also interested in classical data-structures built by using pointers. Their work is complementary to ours in the sense that they are rather concerned by data-structure shapes by means of so called Graph reduction specifications.
@cite_11
1820275044
We present a new algorithm for checking the shape-safety of pointer manipulation programs. In our model, an abstract, data-less pointer structure is a graph. A shape is a language of graphs. A pointer manipulation program is modelled abstractly as a set of graph rewrite rules over such graphs where each rule corresponds to a pointer manipulation step. Each rule is annotated with the intended shape of its domain and range and our algorithm checks these annotations. In a document network such as a citation network of scientific documents, web-logs, etc., the content produced by authors exhibits their interest in certain topics. In addition some authors influence other authors' interests. In this work, we propose to model the influence of cited authors along with the interests of citing authors. Moreover, we hypothesize that apart from the citations present in documents, the context surrounding the citation mention provides extra topical information about the cited authors. However, associating terms in the context to the cited authors remains an open problem. We propose novel document generation schemes that incorporate the context while simultaneously modeling the interests of citing authors and influence of the cited authors. Our experiments show significant improvements over baseline models for various evaluation criteria such as link prediction between document and cited author, and quantitatively explaining unseen text. In this survey paper, we consider linear structured systems in state space form, where a linear system is structured when each entry of its matrices, like A,B,C and D, is either a fixed zero or a free parameter. The location of the fixed zeros in these matrices constitutes the structure of the system. Indeed a lot of man-made physical systems which admit a linear model are structured. A structured system is representative of a class of linear systems in the usual sense. It is of interest to investigate properties of structured systems which are true for almost any value of the free parameters, therefore also called generic properties. Interestingly, a lot of classical properties of linear systems can be studied in terms of genericity. Moreover, these generic properties can, in general, be checked by means of directed graphs that can be associated to a structured system in a natural way. We review here a number of results concerning generic properties of structured systems expressed in graph theoretic terms. By properties we mean here system-specific properties like controllability, the finite and infinite zero structure, and so on, as well as, solvability issues of certain classical control problems like disturbance rejection, input-output decoupling, and so on. In this paper, we do not try to be exhaustive but instead, by a selection of results, we would like to motivate the reader to appreciate what we consider as a wonderful modelling and analysis tool. We emphasize the fact that this modelling technique allows us to get a number of important results based on poor information on the system only. Moreover, the graph theoretic conditions are intuitive and are easy to check by hand for small systems and by means of well-known polynomially bounded combinatorial techniques for larger systems. Several recent projects have shown the feasibility of verifying low-level systems software. Verifications based on automated theorem-proving have omitted reasoning about first-class code pointers, which is critical for tasks like certifying implementations of threads and processes. Conversely, verifications that deal with first-class code pointers have featured long, complex, manual proofs. In this paper, we introduce the Bedrock framework, which supports mostly-automated proofs about programs with the full range of features needed to implement, e.g., language runtime systems. The heart of our approach is in mostly-automated discharge of verification conditions inspired by separation logic. Our take on separation logic is computational, in the sense that function specifications are usually written in terms of reference implementations in a purely functional language. Logical quantifiers are the most challenging feature for most automated verifiers; by relying on functional programs (written in the expressive language of the Coq proof assistant), we are able to avoid quantifiers almost entirely. This leads to some dramatic improvements compared to both past work in classical verification, which we compare against with implementations of data structures like binary search trees and hash tables; and past work in verified programming with code pointers, which we compare against with examples like function memoization and a cooperative threading library.