Abstract

During their lifetimes, programs are subject to modifications, not only to implement new features or to correct bugs, but also to adapt them to new hardware architectures. Parallel environments as multi/many-cores CPUs or GPUs require source code transformations to extract parallelisable regions of code and to allocate workloads on devices. This process requires not only skilled developers, but mainly a deep comprehension of the semantics of the code. In this work is presented a technique and its prototype implementation for component based and language neutral static program analysis that can assist developers in the analysis, comprehension and transformation of code. Source code is statically analysed and modelled with a language neutral representation conceived to permit interoperability between tool components and plugins. This model is designed as a class hierarchy, and implemented in a library to be used by user-developed add-ons. Parsers for two languages, control flow, data flow, data dependence analysis modules have been implemented or integrated. An algorithmic recogniser has also been integrated: basic algorithmic concepts are extracted in order to feed a knowledge base, upon which an external reasoner can do queries to find instances of known algorithms.

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.