Static analyses provide the semantic foundation for tools ranging from optimizing compilers to refactoring browsers and advanced debuggers. Unfortunately, developing new analysis specifications and implementations is often difficult and error-prone. Since analysis specifications are generally written in a declarative style, logic programming presents an attractive model for producing executable specifications of analyses. However, prior work on using logic programming for program analysis has focused exclusively on solving constraints derived from program texts by an external preprocessor. In this paper, we present DIMPLE, an analysis framework for Java bytecodes implemented in the Yap Prolog system [8]. DIM-PLE provides both a representation of Java bytecodes in a database of relations and a declarative domain-specific language for specifying new analyses as queries over this database. DIMPLE thus enables researchers to use logic programming for every step of the analysis development process, from specification to prototype to implementation. We demonstrate that our approach facilitates rapid prototyping of new program analyses and produces executable analysis implementations that are speed-competitive with specialized analysis toolkits.
Abstract. We present a lightweight type-and-effect system for Java programs that features two major innovations over extant object-oriented effects systems: initialization effects, which are writes to an object's state while it is being constructed, and quiescing fields, which are fields that are never written after an object is constructed. We also present a novel taxonomy of degrees of method purity in object-oriented programs, which characterizes methods whose effects are confined to their receiver object. Finally, we find significant amounts of mostly-functional behavior in realistic Java programs: in the benchmarks we analyzed, between 48-53% of declared fields were identifiable as quiescing and between 24-78% of dynamic field reads were from quiescing fields.
A method is described for making estimates of the total emissivity of hydrogen in the temperature and pressure ranges where hydrogen atoms predominate under equilibrium conditions. For a typical geometrical depth of 50 cm, and temperatures of the order of 12 500 0 K and higher, with pressures of the order of 100 atmos and higher, the emissivity approaches unity «:;0.95), while for temperatures of the order of 9500 0 K and lower, with pressures of the order of 10 atmos and lower, the emissivity approaches zero «<0.05). The variations of the emissivity between these approximate limits are shown graphically as functions of temperature and pressure with the geometrical depth set at 50 cm. The variation of the emissivity with geometrical depth is also shown graphically at 12 600 0 K and 20 at mos.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.