35 research outputs found
Language and tool support for multilingual programs
textProgrammers compose programs in multiple languages to combine the
advantages of innovations in new high-level programming languages with
decades of engineering effort in legacy libraries and systems. For
language inter-operation, language designers provide two classes of
multilingual programming interfaces: (1) foreign function interfaces
and (2) code generation interfaces. These interfaces embody the
semantic mismatch for developers and multilingual systems
builders. Their programming rules are difficult or impossible to
verify. As a direct consequence, multilingual programs are full of
bugs at interface boundaries, and debuggers cannot assist developers
across these lines.
This dissertation shows how to use composition of single language
systems and interposition to improve the safety of multilingual
programs. Our compositional approach is scalable by construction
because it does not require any changes to single-language systems,
and it leverages their engineering efforts. We show it is effective by
composing a variety of multilingual tools that help programmers
eliminate bugs. We present the first concise taxonomy and formal
description of multilingual programming interfaces and their
programming rules. We next compose three classes of multilingual
tools: (1) Dynamic bug checkers for foreign function interfaces. We
demonstrate a new approach for automatically generating a dynamic bug
checker by interposing on foreign function interfaces, and we show
that it finds bugs in real-world applications including Eclipse,
Subversion, and Java Gnome. (2) Multilingual debuggers for foreign
function interfaces. We introduce an intermediate agent that wraps all
the methods and functions at language boundaries. This intermediate
agent is sufficient to build all the essential debugging features used
in single-language debuggers. (3) Safe macros for code generation
interfaces. We design a safe macro language, called Marco, that
generates programs in any language and demonstrate it by implementing
checkers for SQL and C++ generators. To check the correctness of the
generated programs, Marco queries single-language compilers and
interpreters through code generation interfaces. Using their error
messages, Marco points out the errors in program generators.
In summary, this dissertation presents the first concise taxonomy and
formal specification of multilingual interfaces and, based on this
taxonomy, shows how to compose multilingual tools to improve safety
in multilingual programs. Our results show that our compositional
approach is scalable and effective for improving safety in real-world
multilingual programs.Computer Science
Recommended from our members
Call graph correction using control flow constraints
Dynamic optimizers for object-oriented languages collect a variety of profile data to drive optimization decisions. In particular, the dynamic call graph (DCG) informs key structural optimizations such as which methods to optimize and how to optimize them. Unfortunately, current low-overhead call-stack hardware and software sampling methods are subject to sampling bias, which loses accuracy of 40 to 50% when compared with a perfect call graph. This paper introduces DCG correction, a novel approach that uses static and dynamic control-flow graphs (CFGs) to improve DCG accuracy. We introduce the static frequency dominator (FDOM) relation, which extends the dominator relation on the CFG to capture relative execution frequencies and expose static constraints on DCG edges, which we use to correct DCG edge frequencies. Using conservation of flow principles, we further show how to use dynamic CFG basic block profiles to correct DCG edge frequencies intraprocedurally and interprocedurally. We implement and evaluate DCG correction in Jikes RVM on the SPEC JVM98 and DaCapo benchmarks. Default DCG sampling attains an average accuracy of 52-59% compared with perfect, whereas FDOM correction improves average accuracy to 64-68%, while adding 0.2% average overhead. The dynamic correction raises accuracy to 85% on average, while adding 1.2% average overhead. We then provide dynamically corrected DCGs to the inliner with mixed results -1% average degradations and improvements across a variety of configurations. However, prior work shows that increased DCG accuracy in production VMs has benefits. We believe that high-accuracy DCGs will become more important in the future as the complexity and modularity of object-oriented programs increases.Computer Science
Managing Uncertainty in Geological Scenarios Using Machine Learning-Based Classification Model on Production Data
Training image (TI) has a great influence on reservoir modeling as a spatial correlation in the multipoint geostatistics. Unlike the variogram of the two-point geostatistics that is mathematically defined, there is a high degree of geological uncertainty to determine a proper TI. The goal of this study is to develop a classification model for determining the proper geological scenario among plausible TIs by using machine learning methods: (a) support vector machine (SVM), (b) artificial neural network (ANN), and (c) convolutional neural network (CNN). After simulated production data are used to train the classification model, the most possible TI can be selected when the observed production responses are put into the trained model. This study, as far as we know, is the first application of CNN in which production history data are composed as a matrix form for use as an input image. The training data are set to cover various production trends to make the machine learning models more reliable. Therefore, a total of 800 channelized reservoirs were generated from four TIs, which have different channel directions to consider geological uncertainty. We divided them into training, validation, and test sets of 576, 144, and 80, respectively. The input layer comprised 800 production data, i.e., oil production rates and water cuts for eight production wells over 50 time steps, and the output layer consisted of a probability vector for each TI. The SVM and CNN models reasonably reduced the uncertainty in modeling the facies distribution based on the reliable probability for each TI. Even though the ANN and CNN had roughly the same number of parameters, the CNN outperformed the ANN in terms of both validation and test sets. The CNN successfully classified the reference model’s TI with about 95% probability. This is because the CNN can grasp the overall trend of production history. The probabilities of TI from the SVM and CNN were applied to regenerate more reliable reservoir models using the concept of TI rejection and reduced the uncertainty in the geological scenario successfully
An Abstract
Source-level debuggers improve productivity by helping developers control and inspect program execution. Although many programs use multiple languages, building mixed-language debuggers remains a challenge and debugging mixed-language programs is at best painful. This paper introduces Lamp, a software architecture for building mixed-language debuggers. Lamp defines a debugger agent and a uniform interface to singlelanguage component debuggers with standard features. The Lamp agent orchestrates execution and singlelanguage component debuggers. To demonstrate the architecture, we implement Blink, a debugger for Java and C programs. Blink is portable: it supports multiple operating systems (Windows and Linux), multiple JVMs (Sun and IBM), and multiple C compilers (GNU and Microsoft). Blink is scalable: its new implementation effort scales proportionally to its new features, adding 7 thousand lines of code to 80 thousand for jdb and a million for gdb. Blink is efficient: debugging is as fast as with jdb. These results demonstrate that Lamp is a practical architecture for developing mixedlanguage debuggers that can greatly ease developing correct mixed-language software.
A Comparative Study on Evaluating the Service Quality Attributes based on Kano Model: A Case of Low-cost Carrier and Full-service Carrier
The emergence and development of low-cost carriers(LCC) with competitive price is heating up the competition in the aviation market more, especially between low-cost carriers(LCC) and full-service carriers(FSC). Therefore, it became more important than ever to implement service differentiation strategies of each airline for securing customers and competitiveness. In this sense, the purpose of this study is to compare and assess the different expectations of the customers for airline service attributes pursued by FSCs and LCCs. Three main dimensions of airline service quality attributes (physical, human, and system service), were selected and this study clarified the service quality attributes of each airline carrier using Kano Model. Data were collected from Korean passengers who experienced both LCCs and FSCs for international or domestic flights. As results, this study demonstrated several differences in airline service quality attributes between FSCs and LCCs, which imply that each airline needs to adopt differential strategies to be more competitive. In particular, most physical-related attributes for FSCs were a ‘must-be’ dimension while the majority of attributes for LCCs was clarified ‘one-dimensional’ attribute. The current study also presented implications to be helpful in developing the quality of service and establishing marketing strategies for improvement in customer satisfaction
Evaluating the potential of burn severity mapping and transferability of Copernicus EMS data using Sentinel-2 imagery and machine learning approaches
The abiotic and biotic conditions in forest ecosystems can be significantly influenced by forest fires. However, difficulties in policy decisions for restoration inevitably occur in the absence of information on the damaged forests, such as location, area, and burn severity. In this study, eight spectral indices calculated from Sentinel 2 MSI imagery and machine learning algorithms (Random Forest (RF) and Support Vector Machine (SVM)) were used for mapping burned areas and severity. Two study sites with similar meteorological environment (dry season) and species (coniferous vegetation) were tested, and dataset (EMSR448) from Copernicus Emergency Management Service (CEMS) was used as the reference truth. RF showed better performance for classifying pixels from classes with similar properties than SVM. Normalized Burn Ratio (NBR) and Green Normalized Difference Vegetation Index (GNDVI) showed high importance in assessing fire severity suggesting that it may be effective for identifying senescent plants. The results also confirmed that the CEMS dataset has transferability as a reference truth for fire damage classification in other regions. Implementation of this method enables fast and accurate mapping of the area and severity of destructive damage by forest fires, and also has applicability for other disasters
Repetitive Controller With Phase-Lead Compensation for Cuk CCM Inverter
This paper proposes a repetitive controller with phase-lead compensation for an unfolding-type Cuk continuous conduction mode (CCM) inverter operating in the CCM. The Cuk CCM inverter features medium power capacity, step up/down ability, and low input/output current ripples, so it is well suited to distributed power generation systems. To achieve accurate tracking of the reference output current, we make the use of the repetitive controller coupled with a conventional proportional-integral controller and a nominal duty ratio. In developing the proposed controller, we use the average model of the Cuk CCM inverter in the grid-connected case. The two right-half plane (RHP) zeros in the transfer function of the Cuk CCM inverter cause phase lag of the closed-loop system; to compensate for the phase lag, we implement a phase-lead compensation algorithm in the repetitive control scheme. We also provide detailed and practical design guidelines of the control parameters to develop a stable Cuk CCM inverter. Experimental tests using a 500-W Cuk CCM inverter demonstrate the desirable performance of the proposed control approach.1110sciescopu