About: assert.h is a research topic. Over the lifetime, 5 publications have been published within this topic receiving 99 citations. The topic is also known as: cassert & .
TL;DR: The experiences of studying conditional compilation based on the symbolic execution of preprocessing directives are presented and two concrete goals are found: for any given preprocessor directive or C/C++ source code line, finding the simplest sufficient condition to reach/compile it, and finding the full condition for that code line.
Abstract: Conditional compilation is one of the most powerful parts of a C/C++ environment available for building software for different platforms with different feature sets. Although conditional compilation is powerful, it can be difficult to understand and is error-prone. In large software systems, file inclusion, conditional compilation and macro substitution are closely related and are often largely interleaved. Without adequate tools, understanding complex header files is a tedious task. This practice may even be complicated as the hierarchies of header files grow with projects. This paper presents our experiences of studying conditional compilation based on the symbolic execution of preprocessing directives. Our two concrete goals are: for any given preprocessor directive or C/C++ source code line, finding the simplest sufficient condition to reach/compile it, and finding the full condition to reach/compile that code line. Two different strategies were used to achieve these two goals. A series of experiments conducted on the Linux kernel are presented.
TL;DR: In this paper, a macro for use by an application program is described, embedded in a macro file including at least two versions of executable configuration code corresponding to two different operating systems to interface the macro file to an application.
Abstract: A macro for use by an application program is described. The macro is embedded in a macro file including at least two versions of executable configuration code corresponding to two different operating systems to interface the macro file to an application program. Attached to the macro file is a sequence of actions to apply to an application file produced by the application program. Also attached is application identification information that identifies an original host application corresponding to the macro. The sequence of actions in the macro file can be produced by storing commands, applied to a data file opened in the application program, into a log file and transferring at least one stored command from the log file to the macro file.
TL;DR: Factored assert chains as mentioned in this paper allow for improved tracking of implicit information in a computer program, allowing the compiler to generate assert statements at various points in the program where there is implicit information.
Abstract: Factored assert chains allow for improved tracking of implicit information in a computer program. The compiler may generate assert statements at various points in the program where there is implicit information. The dominator tree for the program or section of program may then be constructed. Then φ-nodes may be inserted throughout a control flow graph. Following that, for each statement in the program or section of program, an assert chain may be constructed from each use to the most recent available assert statement for the variable. Then, if the statement is an assert statement, each use may be kept track of as a mapping to an assertion, otherwise a mapping of any reference to an assert statement for each definition may be deleted. This may then iterate through the dominator tree. At the end, a series of factored assert chains remains, which may be utilized by the compiler to improve the efficiency of generated code.
TL;DR: In this article, a computer implemented method and apparatus for generating a destination header file based on a source header file is described; the method aspect comprises reading an entry from the header file in a first programming language and converting the entry to a second programming language.
Abstract: A computer implemented method and apparatus for generating a destination header file based on a source header file is described. The method aspect comprises reading an entry from the source header file in a first programming language and converting the entry to a second programming language. The converted entry is then output to the destination header file.
TL;DR: This paper presents a simple SAS® macro, %Assert, which allows the user to state a Boolean expression that is expected to be true, e.g.: %assert(Age>0) .
Abstract: Data are messy, and should never be trusted. This paper presents a simple SAS® macro, %Assert, which allows the user to state a Boolean expression that is expected to be true, e.g.: %assert(Age>0) . If the expression is false, an error message is printed to the log. The macro may be used to verify expectations about data at any point in a DATA step. Use of the %Assert macro provides two important benefits: it provides a method for automated error detection, enhancing confidence that results are correct; and it allows the programmer to explicitly state expectations regarding the data being processed, enhancing the readability of code. Assertions are a critical tool for both defensive coding and test-driven development (Wright, 2006). Principles of macro design encountered during the development of the macro are addressed.