Complutense University Library

Desarrollo de un compilador de una representación basada en reglas a código de bytes de Java

Celada Trigo, Luis and Gil Jiménez, Carlos (2009) Desarrollo de un compilador de una representación basada en reglas a código de bytes de Java. [Coursework] (Unpublished)

[img]
Preview
PDF
503kB
View download statistics for this eprint

==>>> Export to other formats

Abstract

El objetivo de este proyecto es la realización de un compilador cuyo lenguaje fuente es una representación intermedia basada en reglas, y su lenguaje objeto es un lenguaje próximo al bytecode de Java, sin llegar a serlo, es el lenguaje de entrada de la aplicación Jasmin, que genera como salida un fichero .class. Nuestro proyecto consta de tres pasos. El primero, es la decompilación de
programas en bytecode a esa representación intermedia. La motivación de hacer esa traducción es hacer análisis de consumo de recursos y terminación de programas en código de byte de Java (que posiblemente utilizan las librerías de Java. Es de lo que se encarga el sistema COSTA.
El segundo paso es, con la esperanza en un futuro de haber hecho optimizaciones de código de esos programas, trabajando con las reglas, volver a compilar ese programa al bytecode de Java, en el que podemos distinguir otros dos pasos. El primero es la generación de un archivo .j, el que acepta la aplicación Jasmin, cuya función es ensamblar ese archivo generando un .class, añadiendo las referencias simbólicas, que es el lo que consiste el tercer paso.
[ABSTRACT]
The aim of this project is the development of a compiler Whose source language is an intermediate rule-based representation, and its object code is a language close to Java bytecode, homely it is the language of the Jasmin application.
Our project consists of three steps. The first step is the decompilation of Java bytecode to that intermediate representation. The motivation to make that translation is to perform resource bound and termination analyses for programs that possibly use Java libraries. This is the function of the COSTA system.
The second step is, with the idea of making code Optimizations to those algorithms in the future working with the rules, to translate that program again, from the rules to Java bytecode, distinguishing two other steps:
The first one is the J File generation, which is the input of the Jasmin application, whose goal is to assemble that file making a CLASS File, adding the symbolic references, being this the third step.

Item Type:Coursework
Additional Information:Trabajo de clase de la asignatura Sistemas Informáticos (Facultad de Informática, Curso 2008-2009)
Uncontrolled Keywords:Compilador, Prolog, COSTA, Jasmin, Bytecode, Java, Análisis, Optimización, Regla, Excepción
Subjects:Sciences > Computer science > Expert systems (Computer science)
ID Code:9460
Deposited On:21 Sep 2009 17:00
Last Modified:06 Feb 2014 08:25

Repository Staff Only: item control page