Marcelo Sant'Anna’s research while affiliated with Pontifical Catholic University of Rio de Janeiro and other places

What is this page?


This page lists works of an author who doesn't have a ResearchGate profile or hasn't added the works to their profile yet. It is automatically generated from public (personal) data to further our legitimate goal of comprehensive and accurate scientific recordkeeping. If you are this author and want this page removed, please let us know.

Publications (10)


Fig. 5. Part of the Draco Domain Network. In figure some possible transformations are shown. The full lines represent transformation libraries under development or already built. The dashed lines represent transformation libraries to be built. 
Figure 2 of 2
Automatic Implementation of Distributed Systems Formal Specifications
  • Conference Paper
  • Full-text available

May 2000

·

37 Reads

Lecture Notes in Computer Science

·

·

·

Marcelo Sant'Anna

The increasing demand for Distributed Systems(DS's) raised the need of a quality-assured development process, which could not only address the issue of requirement compliance, but also could help the construction of tools able to derive implementations automatically. In order to attend such a need, some Formal Description Techniques (FDT's) have been proposed. This paper defends the transformational approach as a good strategy to carry out the automatic implementation of DS's expressed in FDTs, focusing Mondel as FDT, and the DRACO-PUC environment as transformational system.

Download

International Workshop on Software Transformation Systems (STS'99).

May 1999

·

9 Reads

·

1 Citation

Proceedings - International Conference on Software Engineering

Marcelo Sant'Anna

·

·

·

[...]

·

Elizabeth Burd

The international workshop on software transformation systems aims to bring together the most active researchers in the area of transformation systems so that a substantive evaluation and comparison of software transformation techniques can be made. Its purpose is to foster collaborations among researchers, opening up stronger communications channels between people interested in the topic and thereby, accelerating the maturation of the field. A retrospective analysis of the field and the common goals that the community should be addressing during the coming years, with emphasis on transferring the technology to the industrial mainstream, are discussed.


Uma Arquitetura Transformacional de Apoio a Manutenção de Software

October 1998

Este artigo é uma seqüência a trabalhos anteriores na área de engenharia reversa baseada na maquina transformacional Draco-PUC [1]. Em particular estamos apresentando uma arquitetura voltada para o domínio de problemas cuja solução segue o mesmo padrão do problema do ano 2000 (Problema do A2K). Para isso, apresentamos a caracterização do domínio, identificando os seus cenários de execução, as fases a serem seguidas na construção da solução e listamos alguns dos problemas específicos ao qual essa solução se aplica. A maior ênfase do artigo é a apresentação da arquitetura montada com base na maquina Draco-PUC, através do reuso do domínio EXL (extração de informações) e da construção de heurísticas de análise. Utilizamos o problema do A2K em código COBOL para demonstrarmos a validade de nossa proposta.


Automatic Refinement of Distributed Systems Specifications Using Program Transformations.

January 1998

·

11 Reads

·

1 Citation

Formal specification techniques and automatic refinement tools for distributed systems have become key issues in current computing technology. The paper reports the development of a refinement tool based on the Extended State Transition Language (Estelle). Estelle is a format description technique (FDT) for distributed systems and communication protocols standardized by ISO. The refinement approach addresses an OO execution metamodel which is instantiated using C++. Transformations are used as the main technology behind the construction of this tool



Figure 3-List structure example
Clone Detection Using Abstract Syntax Trees.

January 1998

·

3,342 Reads

·

1,165 Citations

Existing research suggests that a considerable fraction (5-10%) of the source code of large scale computer programs is duplicate code (“clones”). Detection and removal of such clones promises decreased software maintenance costs of possibly the same magnitude. Previous work was limited to detection of either near misses differing only in single lexems, or near misses only between complete functions. The paper presents simple and practical methods for detecting exact and near miss clones over arbitrary program fragments in program source code by using abstract syntax trees. Previous work also did not suggest practical means for removing detected clones. Since our methods operate in terms of the program structure, clones could be removed by mechanical methods producing in-lined procedures or standard preprocessor macros. A tool using these techniques is applied to a C production software system of some 400 K source lines, and the results confirm detected levels of duplication found by previous work. The tool produces macro bodies needed for clone removal, and macro invocations to replace the clones. The tool uses a variation of the well known compiler method for detecting common sub expressions. This method determines exact tree matches; a number of adjustments are needed to detect equivalent statement sequences, commutative operands, and nearly exact matches. We additionally suggest that clone detection could also be useful in producing more structured code, and in reverse engineering to discover domain concepts and their implementations


Porting COBOL Programs Using a Transformational Approach

January 1997

·

23 Reads

·

16 Citations

Journal of Software Maintenance Research and Practice

Transformation systems have been applied in several areas of software engineering. This paper describes the use of the transformational engine Draco-PUC in porting COBOL programs. We describe the porting strategy for going from COBOL to C/C++ and give examples of such a strategy applied to a radar application and also to a payroll system. Although targeting an object-orientated language, we do not claim to generate code that strictly follows the OO guidelines. This paper gives special attention to the knowledge structure we have been using to help guide the transformation process as well as to help in the process of design recovery. © 1997 by John Wiley & Sons, Ltd. J. Software Maintenance 9: 3–31, 1997


O Uso do Paradigma Transformacional no Porte de Programas Cobol

October 1995

·

2 Citations

Sistemas transformacionais são sistemas de manipulação de programas que vêm sendo aplicados em diversas áreas da Engenharia de Software. Neste artigo é descrito o uso da máquina transformacional Draco-PUC no porte de programas Cobol. A estratégia de porte dos programas Cobol para a linguagem C/C++ é descrita e é apresentado um exemplo de conversão sobre um programa para catálogo e busca de radares. A estratégia utilizada apesar de possuir a linguagem C/C++ como alvo não tem por objetivo gerar código segundo os preceitos de programação OO.


Draco-PUC: a technology assembly for domain oriented software development

December 1994

·

74 Reads

·

49 Citations

Draco-PUC is a partial implementation of the Draco Paradigm for software development. The Draco paradigm states that it is possible to develop software based on the reuse of high level abstractions which are described as special purpose languages. These languages are called Domain languages. Draco-PUC is a meta program generator that makes it possible the construction and usage of domain languages. In this paper, we review the basic aspects of the Draco paradigm and point out our experience in building and using Draco-PUC. We stress the problems faced with the supporting technologies and provide some reusability data for the User Interface Domain


Draco-PUC, Experiências e Resultados de Re-Engenharia de Software

November 1992

·

1 Read

·

4 Citations

A re-engenharia de software é um processo distinto da engenharia tradicional porque parte de um desenho já existente. Tendo como ponto de partida um desenho, a re-engenharia pode explorar oportunidades de reutilização. Como normalmente não se dispõe de um desenho que reflita o artefato que se quer refazer, a recuperação de desenho ou engenharia de reversa passa a ser peça fundamental na re-engenharia. Este artigo relata nossa experiência na re-engenharia da máquina Draco, e concentra sua atenção na re-engenharia do componente analisador sintático da máquina Draco. A máquina Draco é uma instanciação da paradigma Draco, um dos novos paradigmas para desenvolvimento de software. O paradigma Draco distingue-se pelo uso de técnicas de transformação aliadas a tecnologias de compilação, procurando focar o desenvolvimento de software na reutilização de componentes.

Citations (5)


... An AST is a tree-like representation of source code, defining its abstract syntactic structure [17]. Unlike conventional textual source code, ASTs offer an abstraction that omits finer details such as punctuation and delimiters. ...

Reference:

A novel code representation for detecting Java code clones using high-level and abstract compiled code representations
Clone detection using abstract syntax trees
  • Citing Article
  • January 1998

... In the re-engineering process, we consider it crucial to perform abstraction such that program understanding is raised to the architectural level. Thus, it is not sufficient to operate on the source code level alone, as it is done, e.g., in [22]. Source-to-source transformations are useful for some purpose, e.g., for getting rid of a legacy programming language which is no longer supported. ...

Porting COBOL Programs Using a Transformational Approach
  • Citing Article
  • January 1997

Journal of Software Maintenance Research and Practice

... A survey of early transformation systems is [87] . The 1999 Workshop on Software Transformation Systems [100] contains a series of articles reflecting on past experience with transformation systems. The Program Transformation Wiki [116] gives an overview of many types of program transformations, a list of transformation systems, and has elaborate special sections on decompilation and reverse engineering [34] . ...

International Workshop on Software Transformation Systems (STS'99).
  • Citing Conference Paper
  • May 1999

Proceedings - International Conference on Software Engineering

... Lots of source code modeling techniques have been developed in recent years. White et al. (2016) modeled source code by considering it as a sequence of lexicallevel words and a sequence of syntactic-level Abstract Syntax Tree (AST) (Baxter et al. 1998) nodes, and used RNNs to encode them separately for code clone detection. Mou et al. (2016) used a Tree-structured Convolutional Neural Network (Tree-CNN) to learn distributed vector representations of source code, representing the AST of the source code for program classification task. ...

Clone Detection Using Abstract Syntax Trees.

... Se podría pensar que desde la oferta de modelos y técnicas para identificar, obtener y representar conocimiento para productos software [45][46][47][48][49][50][51][52][53][54][55][56][57] esta es una situación bien resuelta, sin embargo, al considerar la cuestión de la adquisición de conocimiento, estos enfoques reconocen la importancia de la actividad, pero no proporcionan un proceso sistemático para la realización de la misma, como sí lo hace la Etapa Temprana de MoDeMaRE. En la propuesta se realizó un estudio a los enfoques actuales para el análisis del dominio y se estructuró una perspectiva simplificada para aplicarla en esta fase, como se muestra en la Figura 2. Primero se identifica las fuentes de conocimiento del dominio y el contexto del problema, la empresa y las partes interesadas, que se seleccionan en términos de relevancia, adecuación y coherencia. ...

Draco-PUC: a technology assembly for domain oriented software development