27,212 Hits in 5.5 sec

Building Useful Program Analysis Tools Using an Extensible Java Compiler

Edward Aftandilian, Raluca Sauciuc, Siddharth Priya, Sundaresan Krishnan
2012 2012 IEEE 12th International Working Conference on Source Code Analysis and Manipulation  
We report our experiences building source-code analysis tools at Google on top of a third-party, open-source, extensible compiler. We describe three tools in use on our Java codebase.  ...  These tools are often built in an ad-hoc fashion, using brittle technologies such as regular expressions and home-grown parsers. Changes in the language cause the tools to break.  ...  First, adhoc program analysis tools are often brittle and break on uncommon-but-valid code patterns.  ... 
doi:10.1109/scam.2012.28 dblp:conf/scam/AftandilianSPK12 fatcat:jgxq4kt3s5birj5scsu54oocfe

Integrating TAU with Eclipse: A Performance Analysis System in an Integrated Development Environment [chapter]

Wyatt Spear, Allen Malony, Alan Morris, Sameer Shende
2006 Lecture Notes in Computer Science  
By leveraging Eclipse's modularity and extensibility with TAU's robust automated performance analysis mechanisms we produce an integrated, GUI controlled performance analysis system for Java, C/C++ and  ...  There is an increasing call for programming tools to support various development tasks from within Eclipse. This includes tools for testing and analyzing program performance.  ...  Each separate configuration operation produces a stub makefile and a library file that is used to compile an instrumented program for analysis.  ... 
doi:10.1007/11847366_24 fatcat:flkqpgqilrco7ghc4swrj2acdq

The jastadd extensible java compiler

Torbjörn Ekman, Görel Hedin
2007 SIGPLAN notices  
The JastAdd Extensible Java Compiler is a high quality Java compiler that is easy to extend in order to build static analysis tools for Java, and to extend Java with new language constructs.  ...  We describe the compiler architecture, the major design ideas for building and extending the compiler, in particular, for dealing with complex extensions that affect name and type analysis.  ...  These tools serve as examples for how to build source-to-source translating tools and analysis tools such as pluggable type checkers.  ... 
doi:10.1145/1297105.1297029 fatcat:ow5r3sei5zgjbh5kkddkbpcmau

Adding domain-specific and general purpose language features to Java with the Java language extender

Eric Van Wyk, Lijesh Krishnan, Derek Bodin, Eric Johnson
2006 Companion to the 21st ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications - OOPSLA '06  
The Java Language Extender is a compiler-generator tool that allows programmers to create new domain-adapted languages by importing a set of domain-specific language extensions into an extensible specification  ...  Language extensions define the syntax, semantic analysis, and optimizations of new language constructs.  ...  Acknowledgments We thank Phil Russel, Paul Huntington, August Schwerdfeger, and Jimin Gao for their help in developing extensions to Java.  ... 
doi:10.1145/1176617.1176696 dblp:conf/oopsla/WykKBJ06 fatcat:atxqxh4qq5brhkmy34w35xoryu

FeatureIDE: An extensible framework for feature-oriented software development

Thomas Thüm, Christian Kästner, Fabian Benduhn, Jens Meinicke, Gunter Saake, Thomas Leich
2014 Science of Computer Programming  
All phases of FOSD are supported in FeatureIDE, namely domain analysis, requirements analysis, domain implementation, and software generation.  ...  FeatureIDE supports several FOSD implementation techniques such as feature-oriented programming, aspect-oriented programming, delta-oriented programming, and preprocessors.  ...  Acknowledgments We like to thank Marko Rosenmüller for comments on an earlier draft of this paper. FeatureIDE is supported by the METOP GmbH.  ... 
doi:10.1016/j.scico.2012.06.002 fatcat:2wgchpvcf5amnbm724qdzn4rfa

Refactoring is not (yet) about transformation

Torbjörn Ekman, Max Schäfer, Mathieu Verbaere
2008 Proceedings of the 2nd Workshop on Refactoring Tools - WRT '08  
We have implemented two such building blocks that are widely useful: The first one allows to move symbolic names from one place in the program to another while preserving binding structure; it frees the  ...  These preconditions usually involve subtle analyses of the program to be refactored, and as long as there is no good support for implementing them, refactoring is not about transformation, but about analysis  ...  In Section 2, we discuss how to reuse and complement compiler analyses from JastAddJ, an extensible Java compiler.  ... 
doi:10.1145/1636642.1636647 dblp:conf/oopsla/EkmanSV08 fatcat:5m7o6g4worhu7bynxjwv3qvesm

The JastAdd system — modular extensible compiler construction

Torbjörn Ekman, Görel Hedin
2007 Science of Computer Programming  
The JastAdd system enables modular specifications of extensible compiler tools and languages.  ...  The techniques have been verified by implementing a full Java 1.4 compiler with modular extensions for non-null types and Java 5 features.  ...  Acknowledgements We are grateful to Eva Magnusson for her work on circular attributes, to other researchers and students using the system, and to the anonymous reviewers for the valuable feedback and helpful  ... 
doi:10.1016/j.scico.2007.02.003 fatcat:vqmemtpckjhixmtmgfng632zza

An Integrated Development Environment for Pattern Matching Programming

Julien Guyon, Pierre-Etienne Moreau, Antoine Reilles
2004 Electronical Notes in Theoretical Computer Science  
Tom is an extension of Java which adds pattern matching facilities independently of the used data-structure.  ...  By integrating a Tom editor, an automatic build process, and an error management mechanism, we demonstrate the integration of an algebraic programming environment in Eclipse.  ...  management) for an extension of Java: Tom.  ... 
doi:10.1016/j.entcs.2004.02.045 fatcat:5ynr6kvcofgltgtq4qvqztr7ea

Model-driven Java code refactoring

Sohaib Hamioud, Fadila Atil
2015 Computer Science and Information Systems  
The presented approach is applied to the refactoring of Java code using a prototypical implementation based on the Eclipse Modeling Framework, a language workbench, a Java metamodel and a set of OMG standards  ...  Moreover, extensibility and tool development automation are factors that should be taken into consideration when designing and implementing automated refactorings.  ...  Like most IDEs, eclipse uses an AST built by a compiler front end (Eclipse Compiler for Java or ECJ) for analyzing and changing the code.  ... 
doi:10.2298/csis141025015h fatcat:rlcw245n4zbctiswcrtrocwcmu

Static Checking for Multiple Start of Threads in a Type-Safe Multithreaded Java

Zeinab Iranmanesh, Mehran S. Fallah
2017 Journal of Object Technology  
We argue that there is a need for such data sets that are executable and can therefore be used for experiments using static and dynamic analysis.  ...  We present XCorpus, a set of 76 executable, real-world Java programs, including a subset of 70 programs from the Qualitas Corpus.  ...  However, the use of a corpus of real-world programs is useful to assess the performance of static analysis tools on real-world programs.  ... 
doi:10.5381/jot.2017.16.3.a1 fatcat:3m5c5nqsgvfixhrfldmow55q4y

Combining static and dynamic data in code visualization

David Eng
2003 Software engineering notes  
(a) Compilation of Java source code into bytecode; (b) Static optimization and analysis of bytecode; (c) Intermediate representations (IR) used in (b); (d) Runtime profiling of a Java class.  ...  Optimizing compilers often operate directly on Java bytecode, using class files as both input and output; see The life of a Java class do es not end after static optimization and analysis; see [50] ,  ...  Jimple source Once the Java source is compiled into a class file using a Java compiler, we used BOaT in order to generate the Jimple representation of the class.  ... 
doi:10.1145/634636.586105 fatcat:y6pqhwj6qnearggozl7hqjj6xi

An integrated verification environment for JML

Patrice Chalin, Perry R. James, George Karabotsos
2007 Proceedings of the 2007 conference on Specification and verification of component-based systems 6th Joint Meeting of the European Conference on Software Engineering and the ACM SIGSOFT Symposium on the Foundations of Software Engineering - SAVCBS '07  
JML annotated Java source-like ESC/Java2which is routinely verified using first generation JML tools.  ...  This paper presents the architecture of JML4, an Integrated Verification Environment (IVE) for JML that builds upon Eclipse's support for Java, enhancing it with Extended Static Checking (ESC), an early  ...  JML2 was essentially developed as an extension to the MultiJava (MJ) compiler.  ... 
doi:10.1145/1292316.1292322 dblp:conf/sigsoft/ChalinJK07 fatcat:mnoe3cgmqfaitliai6xobeaxvi

Integrating a set of contract checking tools into Visual Studio

Manuel Fahndrich, Michael Barnett, Daan Leijen, Francesco Logozzo
2012 2012 Second International Workshop on Developing Tools as Plug-Ins (TOPI)  
In this paper, we report on our experience of building and integrating the CodeContract tool set into an existing programming environment.  ...  These principles are 1) use source embedding for new language features, 2) use target analysis and rewriting, and 3) use generic plug-ins to isolate tools from the IDE.  ...  ACKNOWLEDGMENT The authors would like to thank Herman Venter for his tireless efforts building the best .NET readers and writers.  ... 
doi:10.1109/topi.2012.6229809 dblp:conf/icse/Fahndrich0LL12 fatcat:pczcccpokvhuhjae2djnpv7qlu

An Extensible Open-Source Compiler Infrastructure for Testing [chapter]

Dan Quinlan, Shmuel Ur, Richard Vuduc
2006 Lecture Notes in Computer Science  
In this paper, we report on an extensible, open-source compiler infrastructure called ROSE, which is currently in development at Lawrence Livermore National Laboratory.  ...  We emphasize the particular aspects of ROSE, such as support for the general analysis of whole programs, that are particularly well-suited to the testing research community and the scale of the problems  ...  Both the analysis to locate input points and the transformation to inject data at such points can best be supported using compiler-based tools that can generate correct code using an analysis of the context  ... 
doi:10.1007/11678779_9 fatcat:z3rj2wecm5g2jktnkr3cmcrvnq

A framework for the static verification of api calls

Diomidis Spinellis, Panagiotis Louridas
2007 Journal of Systems and Software  
Extending the static analysis tools to cover the available APIs is an approach that replicates scarce human effort across different tools and does not scale.  ...  We have designed a framework for providing static verification code together with Java classes, and have extended the FindBugs static analysis tool to check the corresponding method invocations.  ...  to thank the authors of FindBugs for the work they put into the platform, and in particular Dave Brosius for his help in integrating our type-inference patches that made it possible to implement our tool  ... 
doi:10.1016/j.jss.2006.09.040 fatcat:ajyieh67jfa3tet6o62jpmc63e
« Previous Showing results 1 — 15 out of 27,212 results