3,798 research outputs found
Matrix Code
Matrix Code gives imperative programming a mathematical semantics and
heuristic power comparable in quality to functional and logic programming. A
program in Matrix Code is developed incrementally from a specification in
pre/post-condition form. The computations of a code matrix are characterized by
powers of the matrix when it is interpreted as a transformation in a space of
vectors of logical conditions. Correctness of a code matrix is expressed in
terms of a fixpoint of the transformation. The abstract machine for Matrix Code
is the dual-state machine, which we present as a variant of the classical
finite-state machine.Comment: 39 pages, 19 figures; extensions and minor correction
Visibly Linear Dynamic Logic
We introduce Visibly Linear Dynamic Logic (VLDL), which extends Linear
Temporal Logic (LTL) by temporal operators that are guarded by visibly pushdown
languages over finite words. In VLDL one can, e.g., express that a function
resets a variable to its original value after its execution, even in the
presence of an unbounded number of intermediate recursive calls. We prove that
VLDL describes exactly the -visibly pushdown languages. Thus it is
strictly more expressive than LTL and able to express recursive properties of
programs with unbounded call stacks.
The main technical contribution of this work is a translation of VLDL into
-visibly pushdown automata of exponential size via one-way alternating
jumping automata. This translation yields exponential-time algorithms for
satisfiability, validity, and model checking. We also show that visibly
pushdown games with VLDL winning conditions are solvable in triply-exponential
time. We prove all these problems to be complete for their respective
complexity classes.Comment: 25 Page
Reset machines
AbstractA reset tape has one read-write head which moves only left-to-right except that the head can be reset once to the left end and the tape rescanned; a multiple-reset machine has reset tapes as auxiliary storage and a one-way input tape. Linear time is no more powerful than real time for nondeterministic multiple-reset machines and so the family MULTI-RESET of languages accepted in real time by nondeterministic multiple-reset machines is closed under linear erasing. MULTI-RESET is closed under Kleene. It can be characterized as the smallest family of languages containing the regular sets and closed under intersection and linear-erasing homomorphic duplication or as the smallest intersection-closed semiAFL containing COPY = {ww | w in {a, b}∗}. A circular tape is read full-sweep from left-to-right only and then reset to the left, any number of times; a nonwriting circular tape cannot be altered after the first sweep. For nondeterministic machines operating in real time, multiple reset tapes, circular tapes or nonwriting circular tapes have the same power. Languages in MULTI-RESET can be accepted in real time by nondeterministic machines using only three reset tapes or using only one reset tape and one nonwriting circular tape
The Need to Support of Data Flow Graph Visualization of Forensic Lucid Programs, Forensic Evidence, and their Evaluation by GIPSY
Lucid programs are data-flow programs and can be visually represented as data
flow graphs (DFGs) and composed visually. Forensic Lucid, a Lucid dialect, is a
language to specify and reason about cyberforensic cases. It includes the
encoding of the evidence (representing the context of evaluation) and the crime
scene modeling in order to validate claims against the model and perform event
reconstruction, potentially within large swaths of digital evidence. To aid
investigators to model the scene and evaluate it, instead of typing a Forensic
Lucid program, we propose to expand the design and implementation of the Lucid
DFG programming onto Forensic Lucid case modeling and specification to enhance
the usability of the language and the system and its behavior. We briefly
discuss the related work on visual programming an DFG modeling in an attempt to
define and select one approach or a composition of approaches for Forensic
Lucid based on various criteria such as previous implementation, wide use,
formal backing in terms of semantics and translation. In the end, we solicit
the readers' constructive, opinions, feedback, comments, and recommendations
within the context of this short discussion.Comment: 11 pages, 7 figures, index; extended abstract presented at VizSec'10
at http://www.vizsec2010.org/posters ; short paper accepted at PST'1
Negative Interactions in Irreversible Self-Assembly
This paper explores the use of negative (i.e., repulsive) interaction the
abstract Tile Assembly Model defined by Winfree. Winfree postulated negative
interactions to be physically plausible in his Ph.D. thesis, and Reif, Sahu,
and Yin explored their power in the context of reversible attachment
operations. We explore the power of negative interactions with irreversible
attachments, and we achieve two main results. Our first result is an
impossibility theorem: after t steps of assembly, Omega(t) tiles will be
forever bound to an assembly, unable to detach. Thus negative glue strengths do
not afford unlimited power to reuse tiles. Our second result is a positive one:
we construct a set of tiles that can simulate a Turing machine with space bound
s and time bound t, while ensuring that no intermediate assembly grows larger
than O(s), rather than O(s * t) as required by the standard Turing machine
simulation with tiles
Automatically Leveraging MapReduce Frameworks for Data-Intensive Applications
MapReduce is a popular programming paradigm for developing large-scale,
data-intensive computation. Many frameworks that implement this paradigm have
recently been developed. To leverage these frameworks, however, developers must
become familiar with their APIs and rewrite existing code. Casper is a new tool
that automatically translates sequential Java programs into the MapReduce
paradigm. Casper identifies potential code fragments to rewrite and translates
them in two steps: (1) Casper uses program synthesis to search for a program
summary (i.e., a functional specification) of each code fragment. The summary
is expressed using a high-level intermediate language resembling the MapReduce
paradigm and verified to be semantically equivalent to the original using a
theorem prover. (2) Casper generates executable code from the summary, using
either the Hadoop, Spark, or Flink API. We evaluated Casper by automatically
converting real-world, sequential Java benchmarks to MapReduce. The resulting
benchmarks perform up to 48.2x faster compared to the original.Comment: 12 pages, additional 4 pages of references and appendi
- …