132,621 research outputs found
A combined representation for the maintenance of C programs
A programmer wishing to make a change to a piece of code must first gain a full understanding of the behaviours and functionality involved. This process of program comprehension is difficult and time consuming, and often hindered by the absence of useful program documentation. Where documentation is absent, static analysis techniques are often employed to gather programming level information in the form of data and control flow relationships, directly from the source code itself. Software maintenance environments are created by grouping together a number of different static analysis tools such as program sheers, call graph builders and data flow analysis tools, providing a maintainer with a selection of 'views' of the subject code. However, each analysis tool often requires its own intermediate program representation (IPR). For example, an environment comprising five tools may require five different IPRs, giving repetition of information and inefficient use of storage space. A solution to this problem is to develop a single combined representation which contains all the program relationships required to present a maintainer with each required code view. The research presented in this thesis describes the Combined C Graph (CCG), a dependence-based representation for C programs from which a maintainer is able to construct data and control dependence views, interprocedural control flow views, program slices and ripple analyses. The CCG extends earlier dependence-based program representations, introducing language features such as expressions with embedded side effects and control flows, value returning functions, pointer variables, pointer parameters, array variables and structure variables. Algorithms for the construction of the CCG are described and the feasibility of the CCG demonstrated by means of a C/Prolog based prototype implementation
Load-Balanced Fractional Repetition Codes
We introduce load-balanced fractional repetition (LBFR) codes, which are a
strengthening of fractional repetition (FR) codes. LBFR codes have the
additional property that multiple node failures can be sequentially repaired by
downloading no more than one block from any other node. This allows for better
use of the network, and can additionally reduce the number of disk reads
necessary to repair multiple nodes. We characterize LBFR codes in terms of
their adjacency graphs, and use this characterization to present explicit
constructions LBFR codes with storage capacity comparable existing FR codes.
Surprisingly, in some parameter regimes, our constructions of LBFR codes match
the parameters of the best constructions of FR codes
Decentralized Erasure Codes for Distributed Networked Storage
We consider the problem of constructing an erasure code for storage over a
network when the data sources are distributed. Specifically, we assume that
there are n storage nodes with limited memory and k<n sources generating the
data. We want a data collector, who can appear anywhere in the network, to
query any k storage nodes and be able to retrieve the data. We introduce
Decentralized Erasure Codes, which are linear codes with a specific randomized
structure inspired by network coding on random bipartite graphs. We show that
decentralized erasure codes are optimally sparse, and lead to reduced
communication, storage and computation cost over random linear coding.Comment: to appear in IEEE Transactions on Information Theory, Special Issue:
Networking and Information Theor
Coding over Sets for DNA Storage
In this paper, we study error-correcting codes for the storage of data in
synthetic deoxyribonucleic acid (DNA). We investigate a storage model where
data is represented by an unordered set of sequences, each of length .
Errors within that model are losses of whole sequences and point errors inside
the sequences, such as substitutions, insertions and deletions. We propose code
constructions which can correct these errors with efficient encoders and
decoders. By deriving upper bounds on the cardinalities of these codes using
sphere packing arguments, we show that many of our codes are close to optimal.Comment: 5 page
- …