Download Shareware and Freeware Software for Windows, Linux, Macintosh, PDA

line Home  |  About Us  |  Link To Us  |  FAQ  |  Contact

Serving Software Downloads in 956 Categories, Downloaded 50.133.970 Times

Indus 0.8

  Date Added: January 27, 2010  |  Visits: 887

Indus

Report Broken Link
Printer Friendly Version


Product Homepage
Download (101 downloads)



Indus is an effort to provide a collection of program analyses and transformations implemented in Java to customize and adapt Java programs. Indus is intended to serve as an umbrella for: * static analyses such as points-to analysis, escape analysis, and dependence analyses, * transformations such as program slicing and program specialization via partial evaluation, and * any software module that delivers the analyses/transformations into a particular application such as Bandera or platform such as Eclipse. At present, there are 3 modules that are part of Indus. More modules are expected to be added over the course of time. We provide an overview of the intent of each module that are available at present. Indus is a module that houses the implementation pertaining to algorithms and data structures common to analyses and transformations that are part of or are planned to be part of Indus. This module contains interface definition common to most analyses and transformations to provide a framework in which various implementations of analyses/transformations can be combined to form systems with ease. Hence, this module is updated when a new sort of analysis/transformation is implemented as a module in Indus. However, a new implementation of an analysis/transformation will not affect this module as it will implement an existing interface. StaticAnalyses module is intended to be the collection of static analyses such as object-flow analysis, escape analysis, and dependence analyses. The analyses in this module use common interfaces and implementations from Indus and may define/provide new interfaces/implementations specific to new analyses. Existing analyses are mentioned below. * Object-flow Analysis (OFA) is a points-to analysis for Java. Each allocation site in the analyzed system is treated as an abstract object and its flow through the system is tracked to infer the possible types an receiver at a call-site to enable the construction of a precise call-graph. The precision of the analysis can be varied in terms of flow-sensitiveness for method local variables and object-sensitiveness for instance fields. * Escape Analysis is an extended implementation of the escape analysis proposed by Ruf for the purpose of pruning interference and ready dependence edges. The extensions are in the form of seamless addition of value equivalence to the analysis to improve the detection of conflicting field reads/writes occurring in different threads beyond just using type equality of the primaries of the access expressions. The analysis also uses object-flow information orthogonally to further improve precision. * Dependence Analyses is a collection of dependence analyses: entry-based control, exit-based control, identifier-based data, reference-based data, interference, ready, synchronization, and divergence, required by analyses/transformations such program slicing and partial evaluation. Interference and Ready dependence analyses depend on the previous escape analysis while reference-based data and synchronization dependence analyses depend on object-flow information and the calculated call-graph information. Some analyses have varying levels of precision which can be varied via a well defined interface. * Side-Effect Analysis provides method-level side-effect information. The user can query if any of the arguments/parameters to a call-site/method will be affected either directly (immediate members) or indirectly (recursively reachable members). Similarly, the user can provide a data access path rooted at arguments/parameters to a call-site/method and query if end point of the data access path is affected by the call/method. * Monitor Anlaysis is a simple analysis that provides monitor/lock graph information for the given system. * Safe Lock Analysis is an analysis that conservatively discovers if a lock (monitors) will not be held indefinitely. This information is used in conjunction with temporal dependences steming for Object.wait() and Object.notify()/ Object.notifyAll() as it is done in ready dependence. * Atomicity Analysis provides information about atomicity in the given system. Current implementation relies on escape analysis to predict if a statement can be executed atomically. This information is used to detect atomic region of codes. This information is useful in applications such as model checking to reduce the the size of the state space, hence, improve performance. Some analyses may be large enough to constitute module on their own and such analyses will be hosted as different modules in Indus rather than being consumed by this module. Java Program Slicer module contains the core implementation of Java program slicer along with adapters that deliver the slicer in other applications such as Bandera and Eclipse. The implementation is architected as a library rather than as an application to facilitate the reuse of its subparts. The core is independent of the application; Each applications requirement of the slice can be satisfied by coding up implementations of post-processing interfaces and hooking in these implementations to form a customized slicer. This module relies heavily on the information provided by dependence analyses and also the call-graph provided by OFA via well-defined interfaces that enables external implementations to be used for slicing. This implementation of slicer is delivered to Eclipse with an intuitive UI via Kaveri plugin. Features:o Backward and Forward slice generation. Complete slices (union of backward and forward slices starting from the same slice criteria) can be generated. * Support to residualize (appropriate) slices into executable class files. * Support for context-sensitive slicing via context rich slice criteria specification. * Support to restrict the slice to a particular part of the system by scope specifications. * Support to serialize slice criteria, slicer configurations, and slices. All modules in Indus project work on Jimple, an intermediate representation of Java, provided by Soot toolkit from Sable group in McGill University. Each module in the project will be exposed as one or more Eclipse plugins if the provided information is useful to the user and amenable for user consumption via a graphical user interface. Software Engineering Philosophy Each module in this project will provide just the required functionality via well-defined interfaces that can be implemented to assemble a customized system with suitable extensions that fulfill specific requirement. As the interface is clearly separated from the implementation, any external implementation that provides the required interface can be seamlessly used with modules from this project. Background The implementation of most of the analyses was driven by the requirements of Java program slicer required by Bandera. However, as the program slicer could be used outside Bandera and the analyses could be used to enable other transformations such as program specialization via partial evaluation, we moved the analyses and transformations into a new project called Indus..

Requirements: No special requirements
Platforms: Linux
Keyword: Analyses Analysis Code Generators Escape Analysis Indus Information Module Program Programming Such As
Users rating: 0/10

License: Shareware Size: 245.76 KB
USER REVIEWS
More Reviews or Write Review


INDUS RELATED
Science  -  Abykus 1.01
Abykus is an object-oriented spreadsheet for Windows that adds an exciting new dimension to the classic 'what-if' analysis by allowing complex data types such as matrixes, coordinates, polygons, etc. to be stored in individual cells. Ideally...
573 KB  
Inventory Systems  -  Healthcare Industry Barcode Label Maker 7.3.0.1
Professional barcode tag designer application facilitates users to easily extract all information regarding healthcare products such as item code, expiry details etc. Healthcare industry barcode label maker enhanced with highly developed print...
4.88 MB  
Networking  -  RankingBadge 0.5
RankingBadge displays ranking information from major sources such as Google (PageRank), Alexa (Alexa traffic Rank) and Technorati in the sidebar of your blog.
10 KB  
Time & Clock Tools  -  Organize365 5.0
Organize365 is a Personal Information Manager, intended for use in everyday information and communication tasks, such as managing your calendar and contact list. It also includes several other features, such as secure instant messaging, desktop...
4.3 MB  
File Synchronizers  -  MetaFS 0.1.5
MetaFS is a daemon for Linux (and Linux only) that allows you to access information about your files (such as MP3 tags or JPEGs EXIF tags) easily and consistently using extended attributes. MetaFS project also allows you to perform fast searches...
624.64 KB  
Desktop Utilities  -  GtkSysinfo 2.0 Beta1
GtkSysinfo project is a perl-Gtk2 software for Linux which makes it possible to obtain a maximum of information about the system such as temperature(with lm_sensors) , CPU frequency, hardware(with PciUtils) , network , ACPI ....
184.32 KB  
Multimedia & Graphics  -  Jaikoz Music Tagger for Mac OS 3.8.2
Are you frustrated by missing and incorrect information in your songs such as 'Track 1' Jaikoz Tagger allows you to automatically correct this information using a combination of acoustic fingerprinting and metadata matching from Musicbrainz and...
27.9 MB  
Graphic Animators  -  Flip_Themes_Package_float_simple 1.0
Sometimes, simple words, simple images would transfer more information than complex ones, such as Black and White are always classical and uneasy to go wrong. Float Simple theme package provides some simple mode templates for you. The templates...
4.82 MB  
Java Based Databases  -  Porizm HTML Protector with Optimizer 1
Protect, optimize and edit your webpages easily, and other features such as renamer to rename multiple files at once with advanced customization, and replacer to replace files or texts in files, and also reporter to get information from multiple...
3.36 MB  
Development Editors  -  AllWebMenus WordPress Menu Addin 1.0.8
The AllWebMenus WordPress Menu Addin add-in is designed to retrieve information from your blog (such as posts, pages, etc.) & import it into the AllWebMenus application to create stylish, feature-rich navigation menus based on its structure! Along...
355 KB  
NEW DOWNLOADS IN PROGRAMMING, CODE MANAGEMENT TOOLS
Programming  -  AlarmClockEvent 2024
Alarm and event management software. Events can be sound, message, opening an application or running a script, shutting down the computer. Discreet, this application is present on the desktop as an icon placed in the taskbar. International...
3.24 MB  
Programming  -  Cedalion for Linux 0.2.6
Cedalion is a programming language that allows its users to add new abstractions and define (and use) internal DSLs. Its innovation is in the fact that it uses projectional editing to allow the new abstractions to have no syntactic limitations.
471.04 KB  
Programming  -  Math::GMPf 0.29
Math::GMPf - perl interface to the GMP library's floating point (mpf) functions.
30.72 KB  
Programming  -  Net::Wire10 1.08
Net::Wire10 is a Pure Perl connector that talks to Sphinx, MySQL and Drizzle servers. Net::Wire10 implements the low-level network protocol, alias the MySQL wire protocol version 10, necessary for talking to one of the aforementioned...
30.72 KB  
Programming  -  flufl.bounce 2.1.1
The ``flufl.bounce`` library provides a set of heuristics and an API for detecting the original bouncing email addresses from a bounce message. Many formats found in the wild are supported, as are VERP_ and RFC 3464 (DSN_).
143.36 KB  
Code Management Tools  -  BitNami Review Board Stack 1.6.9-1 (linux)
Review Board is a powerful web-based code review tool that offers developers an easy way to handle code reviews. It scales well from small projects to large companies and offers a variety of tools to take much of the stress and time out of the...
75.97 MB  
Code Management Tools  -  Common Text Transformation Library 2.08
Common Text Transformation Library, CTTL for short, is a set of C++ classes and functions to understand and modify text data. Common Text Transformation Library implementation is based on STL classes and algorithms. Concept of a substring plays...
163.84 KB  
Code Management Tools  -  GMP compiler 1.0.0
GMP compiler tool simplifies the use of GMP, the GNU multiple precision library. It scans a C source file for specially marked GMPS arithmetic expressions and replaces them with plain C. The abbreviation gmpc stands for GMP compiler, or...
276.48 KB  
Code Management Tools  -  phpCodeGenie 3.0.2
phpCodeGenie (PCG) is a code generator for database driven applications. PCG can generate entire working basic database driven applications for you. PCG can generate code from different databases. The database servers it can talk to via ADODB...
1.4 MB  
Code Management Tools  -  idioskopos 0.4.1
idioskopos (Greek: idio- inward, within, private; -skopos look, aim, target) is a C++ library that simplifies (hopefully) the addition of object reflection and introspection. There are numerous libraries that provide object introspection, but...
604.16 KB