Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Mario Méndez-Lojo is active.

Publication


Featured researches published by Mario Méndez-Lojo.


logic-based program synthesis and transformation | 2008

A Flexible, (C)LP-Based Approach to the Analysis of Object-Oriented Programs

Mario Méndez-Lojo; Jorge A. Navas; Manuel V. Hermenegildo

Static analyses of object-oriented programs usually rely on intermediate representations that respect the original semantics while having a more uniform and basic syntax. Most of the work involving object-oriented languages and abstract interpretation usually omits the description of that language or just refers to the Control Flow Graph (CFG) it represents. However, this lack of formalization on one hand results in an absence of assurances regarding the correctness of the transformation and on the other it typically strongly couples the analysis to the source language. In this work we present a framework for analysis of object-oriented languages in which in a first phase we transform the input program into a representation based on Horn clauses. This facilitates on one hand proving the correctness of the transformation attending to a simple condition and on the other allows applying existing analyzers for (constraint) logic programming to automatically derive a safe approximation of the semantics of the original program. The approach is flexible in the sense that the first phase decouples the analyzer from most language-dependent features, and correct because the set of Horn clauses returned by the transformation phase safely approximates the standard semantics of the input program. The resulting analysis is also reasonably scalable due to the use of mature, modular (C)LP-based analyzers. This allows us to report good results for medium-sized programs.


workshop on program analysis for software tools and engineering | 2008

Sharing analysis of arrays, collections, and recursive structures

Mark Marron; Mario Méndez-Lojo; Manuel V. Hermenegildo; Darko Stefanovic; Deepak Kapur

Precise modeling of the program heap is fundamental for understanding the behavior of a program, and is thus of significant interest for many optimization applications. One of the fundamental properties of the heap that can be used in a range of optimization techniques is the sharing relationships between the elements in an array or collection. If an analysis can determine that the memory locations pointed to by different entries of an array (or collection) are disjoint, then in many cases loops that traverse the array can be vectorized or transformed into a thread-parallel version. This paper introduces several novel sharing properties over the concrete heap and corresponding abstractions to represent them. In conjunction with an existing shape analysis technique, these abstractions allow us to precisely resolve the sharing relations in a wide range of heap structures (arrays, collections, recursive data structures, composite heap structures) in a computationally efficient manner. The effectiveness of the approach is evaluated on a set of challenge problems from the JOlden and SPECjvm98 suites. Sharing information obtained from the analysis is used to achieve substantial thread-level parallel speedups.


verification model checking and abstract interpretation | 2008

Precise set sharing analysis for Java-style programs

Mario Méndez-Lojo; Manuel V. Hermenegildo

Finding useful sharing information between instances in object- oriented programs has recently been the focus of much research. The applications of such static analysis are multiple: by knowing which variables definitely do not share in memory we can apply conventional compiler optimizations, find coarse-grained parallelism opportunities, or, more importantly, verify certain correctness aspects of programs even in the absence of annotations. In this paper we introduce a framework for deriving precise sharing information based on abstract interpretation for a Java-like language. Our analysis achieves precision in various ways, including supporting multivariance, which allows separating different contexts. We propose a combined Set Sharing + Nullity + Classes domain which captures which instances do not share and which ones are definitively null, and which uses the classes to refine the static information when inheritance is present. The use of a set sharing abstraction allows a more precise representation of the existing sharings and is crucial in achieving precision during interprocedural analysis. Carrying the domains in a combined way facilitates the interaction among them in the presence of multivariance in the analysis. We show through examples and experimentally that both the set sharing part of the domain as well as the combined domain provide more accurate information than previous work based on pair sharing domains, at reasonable cost.


languages and compilers for parallel computing | 2008

Efficient Set Sharing Using ZBDDs

Mario Méndez-Lojo; Ondřej Lhoták; Manuel V. Hermenegildo

Set sharing is an abstract domain in which each concrete object is represented by the set of local variables from which it might be reachable. It is a useful abstraction to detect parallelism opportunities, since it contains definite information about which variables do not share in memory, i.e., about when the memory regions reachable from those variables are disjoint. Set sharing is a more precise alternative to pair sharing, in which each domain element is a set of all pairs of local variables from which a common object may be reachable. However, the exponential complexity of some set sharing operations has limited its wider application. This work introduces an efficient implementation of the set sharing domain using Zero-supressed Binary Decision Diagrams (ZBDDs). Because ZBDDs were designed to represent sets of combinations (i.e., sets of sets), they naturally represent elements of the set sharing domain. We show how to synthesize the operations needed in the set sharing transfer functions from basic ZBDD operations. For some of the operations, we devise custom ZBDD algorithms that perform better in practice. We also compare our implementation of the abstract domain with an efficient, compact, bitset-based alternative, and show that the ZBDD version scales better in terms of both memory usage and running time.


formal methods | 2008

Safe upper-bounds inference of energy consumption for java bytecode applications

Jorge A. Navas; Mario Méndez-Lojo; Manuel V. Hermenegildo


Archive | 2008

Customizable resource usage analysis for java bytecode

Jorge A. Navas; Mario Méndez-Lojo; Manuel V. Hermenegildo


formal techniques for java like programs | 2007

A generic, context sensitive analysis framework for object oriented programs

Jorge A. Navas; Mario Méndez-Lojo; Manuel V. Hermenegildo


Archive | 2006

An efficient, parametric fixpoint algorithm forincremental analysis of java bytecode

Mario Méndez-Lojo; Jorge A. Navas; Manuel V. Hermenegildo


Proceedings of the Tools for Automatic Program AnalysiS (TAPAS 2010) | Tools for Automatic Program AnalysiS (TAPAS 2010). A SAS 2010 satellite workshop | 17/09/2010 - 17/09/2010 | Perpignan, France | 2010

Static Analysis-based Debugging, Certification, Testing, and Optimization with CiaoPP

Manuel V. Hermenegildo; Francisco Bueno Carrillo; Alvaro Germán Puebla Sánchez; Manuel Carro Liñares; Pedro López García; Julia Morales; E. Mera; Jorge A. Navas; R. Haemmerlé; Mario Méndez-Lojo; Amadeo Casas; Jesús Fernández; Elvira Albert Albiol; Purificación Arenas Sánchez


Archive | 2008

A generic approach to bytecode analysis

George F. Luger; Mario Méndez-Lojo

Collaboration


Dive into the Mario Méndez-Lojo's collaboration.

Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Amadeo Casas

University of New Mexico

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Deepak Kapur

University of New Mexico

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Researchain Logo
Decentralizing Knowledge