radio uned: analizador de coste y terminación para bytecode de Java

Esta semana las emisiones de la radio de la UNED en radio 3 de Radio Nacional de Estaña (RNE) han vuelto a la parrilla. Los dos primeros días (29 y 30 de septiembre) han sido de presentaciones. Hoy han empezado las emisiones interesantes. En concreto de la Revista de Informática ha tenido una primera emisión dedicada a la presentación de una herramienta de análisis de código bytecode java muy útil llamada COSTA.


01/10/2008, de 06:30 a 07:00

Título: Departamento Lenguajes y Sistemas Informáticos


Serie: Nuevas tendencias en las tecnologías de la Información.

Costa: un analizador de coste y terminación de código byte y de Java


Elvira Albert Albiol, Dpto de Sistemas y Computación de la U.C.M.
Lourdes Araujo Serna (Profesora UNED)
Purificación Arenas Sánchez, Dpto de sistemas y Computación de la U.C.M

He estado buscando información sobre la herramienta de análisis de código que comentan en el programa, COSTA y he encontrado un par de publicaciones científicas que hablan directamente de la misma, en las que participa una de las participantes en el programa, Purificación Arenas Sánchez. En su lista de publicaciones tiene las dos siguientes:

E. Albert, P. Arenas, S. Genaim, G. Puebla and D. Zanardini. COSTA: Design and Implementation of a Cost and Termination Analyzer for Java Bytecode. Software Technologies Concertation on Formal Methods for Components and Objects (FMCO 2007)

Available: © Springer LNCS, To appear 2008

Elvira Albert, Puri Arenas, Samir Gernaim, Germán Puebla, Damiano Zanardini.
COSTA: A Cost and Termination Analyzer for Java Bytecode.
ETAPS Workshop on Bytecode Semantics, Verification, Analysis and Transformation (BYTECODE 2008)

Available: (PDF) © ENTCS Elsevier

Y además en el resto de las publicaciones hay temas muy relacionados con la herramienta. La herramienta en sí no parece que esté disponible para su descarga (al menos yo no la he encontrado)


2 comentarios sobre “radio uned: analizador de coste y terminación para bytecode de Java

  1. Abundando en el mismo tema, hoy en el trabajo me he topado con un artículo en el portal donde se expone un trabajo relacionado con el análisis estático del código utilizando técnicas matemáticas novedosas (SAT Solver) sobre el código fuente:

    Improve static code analysis with Software DNA maps

    By Ben Chelf, Coverity Inc. (09/25/08, 11:48:00 AM EDT)

    An experienced programmer knows that software defects are inevitable. They are a natural part of the evolutionary process that most applications experience. Whether you’re working on the initial version of an application or expanding an existing application ” defects happen.

    As defects progress through the development cycle, they become exponentially more expensive to fix. And according to a Forrester Report produced in 2007, it is at least 30 times more costly to fix software in the field versus during development.


    Source code analysis has had a mixed reputation in software development because analyses often took too much time or produced excessive noise and a large percentage of bogus results (false positives). With low signal-to-noise ratios, most source code analysis technologies and products quickly became shelf-ware after a few uses.

    The promise of new static analysis solutions is tantalising for developers because it offers the ability to find bugs before software is run, improving code quality and dramatically accelerating the availability of new applications. Though static analysis has historically struggled to deliver on this promise, a groundbreaking technique applied in the static analysis field may help fulfil its potential.


    The concept of Boolean satisfiability is not new but recently, efficient SAT Solvers have been developed to solve very complicated formulas with millions of variables. While used heavily in the electronic design automation industry to aid in chip design verification technologies, the application of SAT solving to software analysis has remained untouched.

    A SAT Solver is a computer program that takes in a formula of variables under the operations of AND, OR, and NOT and determines if there is a mapping of each individual variable to TRUE and FALSE such that the entire formula evaluates to TRUE (satisfiable).


  2. He encontrado una referencia al framework o aplicación COSTA en un workshop desarrollado este verano en el marco de la ECOOP 2008 (22nd European Conference on Object-Oriented Programming July 7th – 11th 2008, Paphos, Cyprus)

    D1 Wednesday July, 9th. 16:15 – 17:00, Thursday July, 10th. 10:45 – 11:30

    The COSTA Cost and Termination Analyzer for Java Bytecode and its Web Interface

    E. Albert, P. Arenas (Complutense University of Madrid, Spain)
    S. Genaim, G. Puebla, D. Ramírez, and D. Zanardini (Technical University of Madrid, Spain)

    COSTA is a research prototype which performs automatic program analysis and which is able to infer cost and termination information about Java bytecode programs. The system receives as input a bytecode program and a cost model chosen from a selection of resource descriptions, and tries to bound the resource consumption of the program with respect to the given cost model. COSTA provides several non-trivial notions of resource, such as the amount of memory allocated on the heap, the number of bytecode instructions executed, the number of billable events (such as sending a text message on a mobile phone) executed by the program. When performing cost analysis, COSTA produces a cost equation system, which is an extended form of recurrence relations. In order to obtain a closed (i.e., non-recursive) form for such recurrence relations which represents an upper bound, COSTA includes a dedicated solver. An interesting feature of COSTA is that it uses pretty much the same machinery for inferring upper bounds on cost as for proving termination (which also implies the boundedness of any resource consumption).

    The COSTA web interface allows users to try out the system on a set of representative examples, and also to upload their own bytecode programs. As the behaviour of COSTA can be customized using a relatively large set of options, the web interface offers two different alternatives for choosing the values for such options. The first alternative, which we call automatic, allows the user to choose from a range of possibilities which differ in the analysis accuracy and overhead. All this, without requiring the user to understand the different options implemented in the system and their implications in analysis accuracy and overhead. The second alternative is called manual and it is meant for the expert user. There, the user has access to all of the analysis options available, allowing a fine-grained control over the behaviour of the analyzer. Some of these options include whether to analyze the Java standard libraries, to take exceptions into account, to perform a number of pre-analyses, to write/read analysis results to file in order to reuse them in later analyses, etc. In the demo, we will show analyses using different cost models and also analyze applications for both Standard Edition Java and Micro Edition Java (in particular, for the MIDP profile for mobile phones).


Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de

Estás comentando usando tu cuenta de Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.