We present a technique for detecting plagiarism in computer code, which is easier to implement than existing methods and has the advantage of distinguishing between the originator and the copiers. We record our experi...
详细信息
We present a technique for detecting plagiarism in computer code, which is easier to implement than existing methods and has the advantage of distinguishing between the originator and the copiers. We record our experience using it to monitor a large group studying Java programming in an automated learning environment.
The introduction of a 'loop header' block facilitates the hoisting of loop-invariant code from a loop. In a λ-calculus intermediate representation, which has a notion of scope, this transformation is particul...
详细信息
The introduction of a 'loop header' block facilitates the hoisting of loop-invariant code from a loop. In a λ-calculus intermediate representation, which has a notion of scope, this transformation is particularly useful. Loop headers with scope also solve a problem with in-line expansion of recursive functions or loops: if done naively, only the first iteration is inlined. A loop header can encapsulate the loop or recursion for better in-line expansion. This optimization improves performance by about 5% in Standard ML of New Jersey.
We introduce a tensor sum which is useful for the design and analysis of digit-index permutations (DIPs) algorithms. Using this operation we obtain a new high-performance algorithm for the family of DIPs. We discuss a...
详细信息
We introduce a tensor sum which is useful for the design and analysis of digit-index permutations (DIPs) algorithms. Using this operation we obtain a new high-performance algorithm for the family of DIPs. We discuss an implementation in the applicative language Sisal and show how different choices of parameters yield different DIPs. The efficiency of the special case of digit reversal is illustrated with performance results on a Cray C-90.
We present a new approach to static program analysis that permits each expression in a program to be assigned an execution time estimate. Our approach uses a time system in conjunction with a conventional type system ...
详细信息
We present a new approach to static program analysis that permits each expression in a program to be assigned an execution time estimate. Our approach uses a time system in conjunction with a conventional type system to compute both the type and the time of an expression. The time of an expression is either an integer upper bound on the number of ticks the expression will execute, or the distinguished element long that indicates that the expression contains a loop, and thus may run for an arbitrary length of time. Every function type includes a latent time that is used to communicate its expected execution time from the point of its definition to the points of its use. Unlike previous approaches, a time system works in the presence of first-class functions and separate compilation. In addition, time polymorphism allows the time of a function to depend on the times of any functions that it takes as arguments. Time estimates are useful when compiling programs for multiprocessors in order to balance the overhead of initiating a concurrent computation against the expected execution time of the computation. The correctness of our time system is proven with respect to a dynamic semantics.
In the paper, an algorithm is presented for solving two-level programming problems. This algorithm combines direction finding problem with a regularization of the lower level problem. The upper level objective functio...
详细信息
In the paper, an algorithm is presented for solving two-level programming problems. This algorithm combines direction finding problem with a regularization of the lower level problem. The upper level objective function is included in the regularization to yield uniqueness of the follower's solution set. This is possible if the problem functions are convex and the upper level objective function has a positive definite Hessian. The computation of a direction of descent and of the step size is discussed in more detail. Afterwards the convergence proof is given. Last but not least some remarks and examples describing the difficulty of the inclusion of upper-level constraints also depending on the variables of the lower level are added.
Chip multiprocessors are of increasing importance due to recent difficulties in achieving higher clock frequencies in uniprocessors, but their success depends on finding useful work for the processor cores. This paper...
详细信息
Chip multiprocessors are of increasing importance due to recent difficulties in achieving higher clock frequencies in uniprocessors, but their success depends on finding useful work for the processor cores. This paper addresses this challenge by presenting a simple compiler approach that extracts non-speculative thread-level parallelism from sequential codes. We present initial results from this technique targeting a validated dual-core processor model, achieving speedups ranging from 948% with an average of 25% for important benchmark loops over their single-threaded versions. We also identify important next steps found during our, pursuit of higher degrees of automatic threading.
The occur-check problem arises from the omission of the ``occur-check'' test in the implementation of the unification algorithm in the PROLOG interpreters. This may cause loops or unsound successes. Even an un...
详细信息
ISBN:
(纸本)0262691477
The occur-check problem arises from the omission of the ``occur-check'' test in the implementation of the unification algorithm in the PROLOG interpreters. This may cause loops or unsound successes. Even an unification algorithm of rational infinite terms may cause unsound success (with regards to the classical logic). Many works have been devoted to methods for finding statically in which points in a program an occur check has to be performed, taking advantage of the knowledge about the strategy to find a minimal set of such points. But the method depends on a fixed strategy and it is a limitation (for example strategy may be dynamically defined as in interpreters with delaying primitives). We tackle the problem in another way: We define the property NSTO for a program: ``all unifications are Not Subject To Occur-check in any step of any resolution scheme''. The NSTO property itself is undecidable. Therefore the paper is devoted to the elaboration of sufficient conditions for a program to be NSTO. An originality of our approach is that it can be applied not only to all computation rules in SLD resolution but more generally to all resolution strategies. This presentation clarifies and develops some results already known about this problem.
This paper describes a GUI testing toolset. This toolset was designed to augment the primary testing activities found in a normal GUI testing cycle. It includes an automatic test case and test automation generator, st...
详细信息
ISBN:
(纸本)9781424437702
This paper describes a GUI testing toolset. This toolset was designed to augment the primary testing activities found in a normal GUI testing cycle. It includes an automatic test case and test automation generator, static binary analysis, a GUI change tracking tool and a comprehensive reporting mechanism. An empirical study on a complex system demonstrates that the toolset could greatly reduce the effort spent on developing test automation and tracking GUI changes during a software products development cycle.
With the transferring and development of the application of computer operating system from desktop to network, in the next generation of internet operating system, it is more and more important to consider the securit...
详细信息
ISBN:
(纸本)076952432X
With the transferring and development of the application of computer operating system from desktop to network, in the next generation of internet operating system, it is more and more important to consider the security of creating, running and exiting a thread on remote computer. This paper put forward the conceptions of "WorkerApplet", and designs a new running mechanism of thread that is implemented in Elastos. We change the object of thread for running from a "code of function" to a "WorkerApplet object". This work gives a new way to create, run, and exit a thread in remote system, especially which can be used to improve the security of system and data in the internet environment. And it perfects the running mechanism of thread in traditional operating system on the aspects of both the management of security and programming model.
Many computer programs today show skills that appear to rival those of outstanding human consultants. However, while each such program does certain things well, it is helpless at doing anything else. Why do our presen...
详细信息
ISBN:
(纸本)9783540699118
Many computer programs today show skills that appear to rival those of outstanding human consultants. However, while each such program does certain things well, it is helpless at doing anything else. Why do our present-day programs lack the versatility and resourcefulness that a typical person shows? Clearly, those programs are deficient in both commonsense knowledge and commonsense reasoning. I’ll argue that this has happened because the field of AI has evolved in a backwards direction, as compared with how a typical person develops-and that this is because our AI programmers have not appreciated the importance of making their system able to use more ’reflective’ ways to think.
暂无评论