refactorings
RefactorIT 2.5.4
Refactorit is a Java refactoring browser for Netbeans, JBuilder, Jdev, and standalone. more>>
In addition, it provides a comprehensive set of smart query functions, a graphical dependency analyzer, and over 100 quality metrics and audits that make it possible to analyze and track large volumes of code.
It may be used as a stand-alone tool or installed as an add-in to NetBeans, Sun ONE Studio, JDeveloper, and JBuilder.
Speed and flexibility, innovativeness and aesthetics, power and appeal - todays developers and software architects expect a lot from their software development tools.
Spontaneity is especially important: we all want to be able to put our plans into action quickly.
RefactorIT is the ideal development tool for people who enjoy their freedom - it is the first comprehensive refactoring and code analyses tool that goes everywhere you want to take it - no matter...
- what IDE your team is working with - by choice or force,
- what kind of Java technologies you are developing with,
- how daring your refactoring project may seem.
RefactorIT provides
- Automatic Refactoring Operations,
- Code Searches and Analysis,
- Audits and Corrective Actions,
- Metrics,
- IDE integrations,
- Full JSP support.
Xrefactory 1.6.9 (For C and Java)
Xrefactory is a professional development tool for C and C++ providing code completion, source browsing and refactoring. more>>
Main features:
- Full integration with Emacs and XEmacs.
- Available on Unix (Linux, SunOs-Solaris, HP-UX, Mac OSX, etc.) as well as Windows.
- Support for both C and Java languages (including JNI).
- Source browsing based on our own tag implementation supporting multiple preprocessing passes and resolving scopes, accessibilities, overloading and polymorphism.
- Designed to work with the largest projects. Xrefactory indexes all JDK 1.4 classes (1 million lines of code) in 2 minutes and the Linux kernel 2.4.7 sources (3 millions lines) in 15 minutes. Xrefactory is capable of updating its index by reparsing only modified files.
- Refactorings for method (function) extraction; renaming of packages, classes, parameters, variables, fields (structure records) and methods (functions); insertion, deletion and moving of parameters, field and method moving; pushing down and pulling up fields and methods; encapsulate field; and more. Refactorings are safe with detection of possible conflicts.
- Very solid implementation of code completion. Recognizing approximately 15 different contexts with completions auto-updated after each modification of source code without need for recompilation.
- Functions for finding forgotten symbols.
- Detection of unused variables, methods and functions.
- Javadoc documentation available at your finger tips via hot keys.
- Multiple projects support with project auto-detection.
- Interfacing Emacs IDE functions from the compile.el and comint.el packages.
- Capable of generating HTML documentation.
- Full undo under Emacs and XEmacs.
Rats! 1.12.0
Rats! is an easily extensible parser generator for C-like languages. more>>
- organizes grammars into modules,
- builds on parsing expression grammars instead of context-free grammars and vintegrates lexing with parsing, i.e., is scannerless,
- supports the automatic generation of abstract syntax trees,
- and provides a well-defined interface for extending parsers to recognize context-sensitive languages and formats.
Parsers generated by Rats! memoize intermediate results, which ensures linear time performance in the presence of unlimited lookahead and backtracking. As a result, they are essentially functional (even though they are implemented in an imperative language) and also called "packrat parsers."
Main features:
- Rats! relies on a module system to structure grammars and their extensions. In particular, it relies on modules to group related productions into separate units. Next, module modifications concisely express extensions to other modules and can add, change, or remove individual alternatives in productions. Finally, module parameters are used to compose modules and their extensions with each other.
- Rats! grammars build on parsing expression grammars (PEGs). While PEGs share many constructs with the familiar EBNF notation, a key difference is that they utilize ordered choices instead of the unordered choices used by context-free grammars (CFGs) and other parser generators, such as Yacc or ANTLR. As a result, Rats! grammars avoid ambiguities and support localized changes. Additional flexibility is offered through syntactic predicates, which match expressions but do not consume the input, thus providing unlimited lookahead, and through the integration of lexing with parsing, which greatly simplifies the addition of new tokens to a grammar. PEGs have the additional benefit that they are not only closed under composition (unlike the LR or LL grammars used by Yacc and ANTLR), but also intersection and complement (unlike CFGs in general).
- To eliminate the need for explicit semantic actions, Rats! can automatically generate abstract syntax trees. In particular, it supports productions that return no semantic values (such as those recognizing spaces or comments), string values (such as those recognizing literals or identifiers), and generic tree nodes (potentially all other productions).
- Since some computer-readable formats are inherently context-sensitive and cannot be expressed as PEGs (or CFGs), Rats! supports two techniques for managing parser context or state, thus providing a well-defined interface for extending parsers. First, Rats! provides parser actions to recognize expressions that depend on local context, i.e., expressions that depend on immediately preceding expressions within the same production. An example for such local context is an explicit length preceding as many instances of some expression. Second, Rats! supports a global state object to recognize expressions that depend on possibly global context. State modifications are performed within lightweight transactions, which preserve the basically functional nature of Rats!-generated parsers. An example for a global context is the symbol table used for disambiguating variable and typedef names when parsing C.
Enhancements:
- Release highlights are support for formatting-preserving source refactorings through parse trees, support for parsing and pretty printing Java 5, (an improved abstract syntax tree for Java, and improved support for type checking C and Java ASTs.
Valentina Database 3.2
Valentina is cross-platform DBMS that makes it easy to switch between a local embedded database and server using the same source more>>
Valentina supports Relational, Extended Navigational, and Object-Relational data models. It introduces a revolutionary model abstraction "Link". It works natively in UTF-16, can accept 270 encodings, and features advanced features such as regular expressions, XML, full-text search, pictures, functions, and calculated fields. It offers triggers, views, and stored procedures.
Enhancements:
- Valentina Studio now has a Diagrams panel for database schema.
- There are new examples on the usage of Link refactorings API and SQL commands.
- There are about 40 bugfixes over the entire product line (kernel, PHP, REALbasic, Director, VCOM, and VStudio).
Interactive Decompiler 0.2
Interactive Decompiler decompiles by the successive application of low-level refactorings, ultimately leading to high-level code more>>
Main features:
- Import Intel IA32 Assembly code, in the AT&T syntax -- the syntax normally generated by the gcc compiler for the Intel IA32 architecture.
- Visualize and export quasi-C language code.
- Provides a context-sensitive refactoring browser to a set of low-level refactorings.
- Visualize and manipulate the Control Flow Graph (CFG) and the Abstract Syntax Tree (AST).
- For developers:
- It has an extensible data type for program representation.
- It has an easily extensible architecture (new program metadata, new processors, new refactorings, or new visualizations can easily be added).
- It has an embedded language for describing refactorings and other transformation.
- It is possible to modify the refactorings while running the program.
Version restrictions:
- The IA32 instruction set is not yet fully supported, namely the floating-point and SIMD instructions are not yet translated.
- Not all refactoring are implemented, and some are only have a partial implementation.
- The data flow analysis performed in the refactorings focus only on register variables.
- The implementation of several of many necessary the refactorings is still missing due to lack of time.
jnettop 0.13
Jnettop allows administrators of routers to watch online traffic coming across the network. more>>
jnettop is useful for quickly evaluating the state of the network.
Enhancements:
- added support for JNET protocol (used by jnettop-gui)
- minor refactorings
Python rope 0.6.1
Python rope is a Python IDE. more>>
Refactoring: In recent years refactoring has become a basic task of everyday programing, specially in java community. In the agile programing methodologies, like Extreme Programing, Refactoring is one of the core practices.
Some IDEs support some basic refactorings like PyDev (which uses bicycle repair man). These IDEs have a limited set of refactorings and fail when doing refactorings that need to know the type of objects in the source code (specially for relatively large projects). rope tries to provide a rich set of refactorings. Some of the refactorings require type inferencing which is described later.
Auto Completion: One of the basic features of modern IDEs is the availability of auto-completion. Some Python IDEs have auto-completion support but in a limited form. Since the type of many variables cannot be deduced from simple analysis of the source code. Auto-completing modules names, class names, static methods, class methods, function names and variable names are easy. But auto-completing the methods and attributes of an object is hard. Because the IDE needs to know the type of the object that cannot be achieved easily most of the time in dynamic languages. rope uses Type Inferencing algorithms to solve this problem.
Type Inferencing: One disadvantage of dynamic languages like python is that you cannot know the type of variables by a simple analysis of program source code most of the time. Knowing the type of variables is very essential for providing many of the refactorings and auto-completions. rope will use type inferencing to overcome this problem.
Static type inferencing uses program source code to guess the type of objects. But type inferencing python programs is very hard. There have been some attempts though not very successful (examples: psycho: only str and int types, StarKiller: wasnt released and ShedSkin: good but limited). They where mostly directed at speeding up python programs by transforming its code to other typed languages rather than building IDEs. Such algorithms might be helpful.
There is another approach toward type inferencing. That is the analysis of running programs. This dynamic approach records the types variables are assigned to during the program execution. Although this approach is a lot easier to implement than the alternative, it is limited. Only the parts of the program that are executed are analyzed. If developers write unit tests and use test driven development this approach works very well.
PCRE 7.2
PCRE is a library that implements Perl 5-style regular expressions. more>>
The current implementation corresponds to Perl 5.005. PCRE is used by many programs, including Exim, Postfix, and PHP.
Enhancements:
- Some more features from Perl 5.10 have been added.
- A few bugs were fixed.
- A couple of performance enhancing refactorings were done.

kupfer c5
Kupfer c5 brings users the convenience of a summoner/launcher created in the style of Qu?c?s?l??? or Gnome Do. more>>
Kupfer c5 brings users the convenience of a summoner/launcher created in the style of Qu?c?s?l??? or Gnome Do. You do not use it to search your files, you use it to summon the object you are thinking about right now.
Kupfer is written using Python and has a flexible architecture. Objects that it can access are implemented in plugins, and new plugins can be written quickly. (Tracker desktop search engine integration is only 130 lines.)
The philosophy of Kupfer is simplicity. The implementation is simple, makes the easy things work first, and does not overimplement unnecessary parts of the program. Kupfer is not as slick in its appearance compared to its inspiration Quicksilver.
When you run kupfer, it launches, then anytime you type Kupfer's keybinding - immediately its window is presented.
Enhancements:
- Big refactorings of the whole data model
- Move all of the data model to kupfer.data
- Allow actions with indirect objects "threepane kupfer" (with means to configure which objects to use for an action etc)
- Uses unicode internally, instead of UTF-8-encoded strings
- Some new actions using new possibilities (Open with any, Move file to new location, Add/Remove tracker tags) but more is possible.
- Basic manual page included
- Fileactions plugin includes unpack archive/create archive
- Ship extra and demonstration plugins in contrib/ and interals documentation in Documentation/
- Change learning algorithm to recognize an item's type as well (so that two objects named "project" can be ranked differently)
- Small fixes (alphabethic sorting for applications, sources, check if objects still exist after an action, rank-adjust default actions slightly)
Requirements
Kupfer requires Python 2.5 or later, and Python modules gtk, gio, dbus, xdg and wnck. Intltool is required to build the package from source. The module python-keybinder is strongly recommended.
<<lessTRex 0.5.3
TRex is a tool to help maintain test suites written in the standardized Testing and Test Control Notation (TTCN-3). more>>
TRex project provides IDE functionality for the TTCN-3 core notation and supports the assessment and automatic restructuring of TTCN-3 test suites by providing suitable metrics and refactorings.
Main features:
Editing TTCN-3 v3.1.1 (2005-06)
- Syntax highlighting
- Content Assist
- Outline view
- Code Formatter
- Text Hover
- Open Declaration
- Find References
Compiler Integration
- Telelogic Tau G2/Tester
Refactoring
- Rename
- Inline Template
- Inline Template Parameter
- Merge Template
- more to come in future ...
Metrics
- Calculation of some TTCN-3 metrics
- Metrics-based refactoring suggestions
X101.044 (IBM)
X10 is an experimental new language currently under development at IBM in collaboration with academic partners. more>>
X10 aims to contribute to this productivity improvement by developing a new programming model, combined with a new set of tools integrated into Eclipse and new implementation techniques for delivering optimized scalable parallelism in a managed runtime environment. X10 is a type-safe, modern, parallel, distributed object-oriented language intended to be very easily accessible to Java programmers.
It is targeted to future low-end and high-end systems with nodes that are built out of multi-core SMP chips with non-uniform memory hierarchies, and interconnected in scalable cluster configurations. A member of the Partitioned Global Address Space (PGAS) family of languages, X10 highlights the explicit reification of locality in the form of places; lightweight activities embodied in async, future, foreach, and ateach constructs; constructs for termination detection (finish) and phased computation (clocks); the use of lock-free synchronization (atomic blocks); and the manipulation of global arrays and data structures.
An Eclipse-based Integrated Development Environment (IDE) has been developed at IBM for X10 to help further increase programmer productivity by providing state-of-the-art functionality for viewing, editing, navigating, executing, and manipulating X10 programs. The X10 Development Toolkit (X10DT) is intended to be a full-featured IDE for X10 offering the features Java programmers have come to love and depend upon in Eclipse: a source editor with various coding assists, lightweight information pop-ups, high-level and low-level navigation views, powerful search capabilities, application launch configuration management, refactoring, and debugging support. In addition, the X10DT will include tools, views and refactorings that specifically address the development of highly concurrent software in X10.
- Page: 1 of 1
- 1