Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/2048147.2048223acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
research-article

A framework for analyzing programs written in proprietary languages

Published: 22 October 2011 Publication History

Abstract

There are several commercial products that use proprietary languages, which typically look like a wrapper around (some proprietary extension of) the standard SQL language. Examples of these languages include ABAP, Informix, XBase++, SQR and so on. These application are difficult to analyze not only because it is hard to model the semantics of the underlying database systems but also because of the lack of standard tools for analysis. One naive way to analyse such programs is to collect dynamic trace using proprietary debuggers and run the analyses on the trace. However, this form of dynamic trace collection can be a severe performance bottleneck. In this paper, we present our experience with building a framework to help in efficient program analysis in the context of ticket resolution for ABAP programs.
In our framework, we first translate the given ABAP programs to semantically equivalent annotated Java programs. These Java programs are then executed to generate the required dynamic trace. Our framework allows the plugging of off-the-shelf static analysis tools (applied on the Java programs) and dynamic trace analysis tools (on the generated trace) and maps the results from these analysis tools back to the original ABAP programs. One novel aspect of our framework is that it admits incomplete ABAP grammar, which is an important aspect when dealing with proprietary languages where the grammar may not be publicly available. We have used our framework on several benchmarks to validate the translation, and establish the efficiency and the utility of our instrumented Java code along with the collected trace.

References

[1]
Java compiler compiler (JavaCC): The Java parser generator. http://javacc.java.net/.
[2]
A. Aho, R. Sethi, and J. Ullman. Compilers: Principles, Techniques, and Tools. Addison-Wesley, 1986.
[3]
H. Chen and D. Wagner. Mops: an infrastructure for examining security properties of software. In CCS, pages 235--244, New York, NY, USA, 2002. ACM.
[4]
Julia Dain. Bibliography on syntax error handling in language translation systems.
[5]
D. Evans and D. Larochelle. Improving security using extensible lightweight static analysis. IEEE Softw., 19:42--51, Jan 2002.
[6]
S. I. Feldman. A Fortran to C converter. In ACM SIGPLAN Fortran Forum, volume 9, pages 21--22. ACM, 1990.
[7]
F. Fleurey, E. Breton, B. Baudry, A. Nicolas, and J. M. Jézéquel. Model-driven engineering for software migration in a large industrial context. MDELS, pages 482--497, 2007.
[8]
D. Hovemeyer and W. Pugh. Finding bugs is easy. In OOPSLA Companion, pages 132--136. ACM, 2004.
[9]
S. C. Johnson. YACC - yet another compiler-compiler. Technical Report CS-32, AT & T Bell Laboratories, 1975.
[10]
Horst Keller. The official ABAP reference. SAP Press, 2004.
[11]
R. Lämmel and C. Verhoef. Semi-automatic grammar recovery. Softw. Pract. Exper., 31(15):1395--1448, 2001.
[12]
M. G. Nanda and S. Sinha. Accurate interprocedural null-dereference analysis for java. In ICSE, pages 133--143, Washington, DC, USA, 2009. IEEE Computer Society.
[13]
Terence Parr. The Definitive ANTLR Reference: Building Domain-Specific Languages. Pragmatic Bookshelf, 2007.
[14]
D. Saha, M. G. Nanda, P. Dhoolia, V. K. Nandivada, V. Sinha, and S. Chandra. Fault localization in ABAP Programs. In FSE, 2011.
[15]
D. Saha and V. Narula. Gramin: a system for incremental learning of programming language grammars. In ISEC, pages 185--194. ACM, 2011.
[16]
R. Sekar, V. N. Venkatakrishnan, S. Basu, S. Bhatkar, and D. C. DuVarney. Model-carrying code: a practical approach for safe execution of untrusted applications. In SOSP, pages 15--28, 2003.
[17]
P. N. van den Bosch. A bibliography on syntax error handling in context free languages. ACM SIGPLAN Notices, 27(4):77--86, 1992.
[18]
R. C. Waters. Program translation via abstraction and reimplementation. IEEE Transactions on Software Engineering, pages 1207--1228, 1988.
[19]
David A Wheeler. Flawfinder. http://www.dwheeler.com/flawfinder/.
[20]
K. Yasumatsu. SPiCE: a system for translating Smalltalk programs into a C environment. Software Engineering, IEEE Transactions on, 21(11):902--912, 1995.

Cited By

View all
  • (2021)What Does It Cost to Deploy an XAI System: A Case Study in Legacy SystemsExplainable and Transparent AI and Multi-Agent Systems10.1007/978-3-030-82017-6_11(173-186)Online publication date: 17-Jul-2021

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
OOPSLA '11: Proceedings of the ACM international conference companion on Object oriented programming systems languages and applications companion
October 2011
360 pages
ISBN:9781450309424
DOI:10.1145/2048147
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 22 October 2011

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. error recovery
  2. source to source translation

Qualifiers

  • Research-article

Conference

SPLASH '11
Sponsor:

Upcoming Conference

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)5
  • Downloads (Last 6 weeks)1
Reflects downloads up to 12 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2021)What Does It Cost to Deploy an XAI System: A Case Study in Legacy SystemsExplainable and Transparent AI and Multi-Agent Systems10.1007/978-3-030-82017-6_11(173-186)Online publication date: 17-Jul-2021

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media