Optimizing header file include directives

نویسنده

  • Diomidis Spinellis
چکیده

A number of widely used programming languages use lexically included files as a way to share and encapsulate declarations, definitions, code, and data. As the code evolves files included in a compilation unit are often no longer required, yet locating and removing them is a haphazard operation, which is therefore neglected. The difficulty of reasoning about included files stems primarily from the fact that the definition and use of macros complicates the notions of scope and of identifier boundaries. By defining four successively refined identifier equivalence classes we can accurately derive dependencies between identifiers. A mapping of those dependencies on a relationship graph between included files can then be used to determine included files that are not required in a given compilation unit and can be safely removed. We validate our approach through a number of experiments on numerous large production-systems.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Comparative Performance Analysis of Fast Fourier Transform on ARM and DSP Core Using Standard Benchmarks

This paper focuses on a sort of benchmarking and is intended to compare the performance of ARM core and DSP core using some Standard Benchmark or program. First a Standard Benchmark “Dhrystone” was used, which is an open source benchmark. It was tailored to be run on these cores. Later it was optimized using hardware and compiler options. As this benchmark was targeted for non-floating point sy...

متن کامل

An Investigation into the Connectivity Properties of Source-Header Dependency Graphs

A modularization is a partitioning of a software system into components based on a variety of criteria, each depending on the clustering approach and desired level of abstraction. Source-header dependency graphs are bipartite graphs that are formed by flattening include file dependencies and enumerating source file to header file dependencies. In this paper, we describe an approach for identify...

متن کامل

RFC 3841 Caller Preferences for SIP

This document describes a set of extensions to the Session Initiation Protocol (SIP) which allow a caller to express preferences about request handling in servers. These preferences include the ability to select which Uniform Resource Identifiers (URI) a request gets routed to, and to specify certain request handling directives in proxies and redirect servers. It does so by defining three new r...

متن کامل

Binary Compatibility of Shared Libraries Implemented in C++ on GNU/Linux Systems

A shared library is a file that contains library code and data in binary form. Application built against the library references the data via symbols and the contents of what’s being referenced get known only during the application startup. Library is shipped with header file(s) the program

متن کامل

Internet Draft SIP Caller Prefs

Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet-Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as refer...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:
  • Journal of Software Maintenance

دوره 21  شماره 

صفحات  -

تاریخ انتشار 2009