18,021 research outputs found

    Program slicing by calculation

    Get PDF
    Program slicing is a well known family of techniques used to identify code fragments which depend on or are depended upon specific program entities. They are particularly useful in the areas of reverse engineering, program understanding, testing and software maintenance. Most slicing methods, usually oriented towards the imperatice or object paradigms, are based on some sort of graph structure representing program dependencies. Slicing techniques amount, therefore, to (sophisticated) graph transversal algorithms. This paper proposes a completely different approach to the slicing problem for functional programs. Instead of extracting program information to build an underlying dependencies' structure, we resort to standard program calculation strategies, based on the so-called Bird-Meertens formalism. The slicing criterion is specified either as a projection or a hiding function which, once composed with the original program, leads to the identification of the intended slice. Going through a number of examples, the paper suggests this approach may be an interesting, even if not completely general, alternative to slicing functional programsFundação para a Ciência e a Tecnologia (FCT

    Development of a Tool for Slicing of Object-Oriented Program

    Get PDF
    Program slicing has many applications in a software development environment such as debugging, testing, anomaly detection, program understanding and many more. The concept being introduced by Weiser and it was started with static slicing calculation. Talking about static slicing, it is a subset of statements of a program which directly or indirectly affect the values of the variables computed providing a slicing criterion. Dynamic slicing is the counterpart of the static slicing i.e finding the statements which are really affected by giving the particular input value of the variable. Object-Oriented Program(OOP) has been the most widely used software development technique. OOP is still popular among many companies for their product development.There are some drawbacks of the OOP implementation. One of them is cross-cutting concerns. Aspect-Oriented Program provides separation of cross-cutting concerns from the core modules by introducing a new unit of modularization, called Aspect. In this project, we have developed a Tool which creates System dependence Graph(SDG) which is the intermediate representation of an OOP and AOP , then takes that SDG as input to compute the slicing of that program with respect to slicing criterion

    Static Slicing of Interprocedural Programs

    Get PDF
    Program slicing has many applications in a software development environment such as debugging, testing, anomaly detection, program understanding and many more. The concept being introduced by Weiser and it was started with static slicing calculation. Talking about static slicing, it is a subset of statements of a program which directly or indirectly affect the values of the variables computed providing a slicing criterion. In this project, we have developed an approach for creating an intermediate representation of a program in the form of System Dependence Graph (SDG) which is to be, again taken as input for computing the slicing of a program with respect to slicing criterion. The slicing approach computes the slices with respect to a given slicing criterion. For generating the graph, we have analysed the input program, identified the tokens and finally generated the relation between tokens as data dependent or control dependent. For calculating the slice, we have used two-phase graph reachability algorithm developed by Horwitz, Reps and Binkley, which creates a graph consisting of only those nodes that are dependent on slicing criterion. Finally we have plotted a graph between time taken to create graph versus number of functions used in program. Our approach of calculating slices has been limited only to C programs

    JetViP 1.1: Calculating One- and Two-Jet Cross Sections with Virtual Photons in NLO QCD

    Full text link
    JetViP is a computer program for the calculation of inclusive single- and dijet cross sections in eP- and e-gamma-scattering in NLO QCD. The virtuality of the photon, radiated by the incoming electron, can be chosen in a continuous range, reaching from photoproduction into deep inelastic scattering. The various contributions to the full jet cross section, including the resolved photon contributions, are implemented. The calculation is based on the phase-space-slicing method.Comment: 31 pages, LaTeX, 3 eps figure

    An Introduction to Slice-Based Cohesion and Coupling Metrics

    Get PDF
    This report provides an overview of slice-based software metrics. It brings together information about the development of the metrics from Weiser’s original idea that program slices may be used in the measurement of program complexity, with alternative slice-based measures proposed by other researchers. In particular, it details two aspects of slice-based metric calculation not covered elsewhere in the literature: output variables and worked examples of the calculations. First, output variables are explained, their use explored and standard reference terms and usage proposed. Calculating slice-based metrics requires a clear understanding of ‘output variables’ because they form the basis for extracting the program slices on which the calculations depend. This report includes a survey of the variation in the definition of output variables used by different research groups and suggests standard terms of reference for these variables. Our study identifies four elements which are combined in the definition of output variables. These are the function return value, modified global variables, modified reference parameters and variables printed or otherwise output by the module. Second, slice-based metric calculations are explained with the aid of worked examples, to assist newcomers to the field. Step-by-step calculations of slice-based cohesion and coupling metrics based on the vertices output by the static analysis tool CodeSurfer (R) are presented and compared with line-based calculations

    RacoonWW1.3: A Monte Carlo program for four-fermion production at e^+ e^- colliders

    Get PDF
    We present the Monte Carlo generator RacoonWW that computes cross sections to all processes e^+ e^- -> 4f and e^+ e^- -> 4f + gamma and calculates the complete O(alpha) electroweak radiative corrections to e^+ e^- -> W W -> 4f in the electroweak Standard Model in double-pole approximation. The calculation of the tree-level processes e^+ e^- -> 4f and e^+ e^- -> 4f + gamma is based on the full matrix elements for massless (polarized) fermions. When calculating radiative corrections to e^+ e^- -> W W -> 4f the complete virtual doubly-resonant electroweak corrections are included, i.e. the factorizable and non-factorizable virtual corrections in double-pole approximation, and the real corrections are based on the full matrix elements for e^+ e^- -> 4f + gamma. The matching of soft and collinear singularities between virtual and real corrections is done alternatively in two different ways, namely by using a subtraction method or by applying phase-space slicing. Higher-order initial-state photon radiation and naive QCD corrections are taken into account. RacoonWW also provides anomalous triple gauge-boson couplings for all processes e^+ e^- -> 4f and anomalous quartic gauge-boson couplings for all processes e^+ e^- -> 4f + gamma.Comment: 62 pages, LaTeX, elsart styl

    Electroweak radiative corrections to e+e- --> WW --> 4fermions in double-pole approximation -- the RACOONWW approach

    Get PDF
    We calculate the complete O(alpha) electroweak radiative corrections to e+e- --> WW --> 4f in the electroweak Standard Model in the double-pole approximation. We give analytical results for the non-factorizable virtual corrections and express the factorizable virtual corrections in terms of the known corrections to on-shell W-pair production and W decay. The calculation of the bremsstrahlung corrections, i.e. the processes e+e- --> 4f+gamma in lowest order, is based on the full matrix elements. The matching of soft and collinear singularities between virtual and real corrections is done alternatively in two different ways, namely by using a subtraction method and by applying phase-space slicing. The O(alpha) corrections as well as higher-order initial-state photon radiation are implemented in the Monte Carlo generator RACOONWW. Numerical results of this program are presented for the W-pair-production cross section, angular and W-invariant-mass distributions at LEP2. We also discuss the intrinsic theoretical uncertainty of our approach.Comment: 51 pages, latex, 28 postscript file

    ConSIT: A conditioned program slicer

    Get PDF
    Conditioned slicing is a powerful generalisation of static and dynamic slicing which has applications to many problems in software maintenance and evolution, including reuse, reengineering and program comprehension. However there has been relatively little work on the implementation of conditioned slicing. Algorithms for implementing conditioned slicing necessarily involve reasoning about the values of program predicates in certain sets of states derived from the conditioned slicing criterion, making implementation particularly demanding. The paper introduces ConSIT, a conditioned slicing system which is based upon conventional static slicing, symbolic execution and theorem proving. ConSIT is the first fully automated implementation of conditioned slicing. An implementation of ConSIT is available for experimentation at &http://www.mcs.gold.ac.uk/tilde/~mas01sd/consit.htm

    Safe Concurrency Introduction through Slicing

    Get PDF
    Traditional refactoring is about modifying the structure of existing code without changing its behaviour, but with the aim of making code easier to understand, modify, or reuse. In this paper, we introduce three novel refactorings for retrofitting concurrency to Erlang applications, and demonstrate how the use of program slicing makes the automation of these refactorings possible
    corecore