An inherently abstract nature of source code makes programs difficult to understand. In our research, we designed three techniques utilizing concrete values of variables and other expressions during program execution....
详细信息
Source code written in textual programminglanguages is typically edited in integrated development environments or specialized code editors. These tools often display various visual items, such as icons, color highlig...
详细信息
Traditionally, we have two possibilities to design tools for program comprehension and analysis. The first option is to create a standalone program, independent of any source code editor. This way, the act of source c...
详细信息
The practice of code reviews is fundamental for producing and maintaining high-quality source code. However, because it is not the most favourite and enjoyable task of a developer, it is still not acknowledged as the ...
详细信息
ISBN:
(纸本)9783319624044;9783319624037
The practice of code reviews is fundamental for producing and maintaining high-quality source code. However, because it is not the most favourite and enjoyable task of a developer, it is still not acknowledged as the industry worldwide standard. The idea behind this research is to encourage developers by providing them with an accessible way to perform reviews by using mobile devices. This paper presents the results from the experiment-driven investigation aimed at comparative analysis of code reviews performed on a dedicated mobile tool and a desktop application. After comparing results from 79 mobile and 102 desktop reviews and analysing almost 2500 comments we claim that mobile devices can be used to effectively read, understand and review source code of any size.
We show that a measure-based denotational semantics for probabilistic programming is commutative. The idea underlying probabilistic programminglanguages (Anglican, Church, Hakaru, etc.) is that programs express stati...
详细信息
ISBN:
(纸本)9783662544341;9783662544334
We show that a measure-based denotational semantics for probabilistic programming is commutative. The idea underlying probabilistic programminglanguages (Anglican, Church, Hakaru, etc.) is that programs express statistical models as a combination of prior distributions and likelihood of observations. The product of prior and likelihood is an unnormalized posterior distribution, and the inference problem is to find the normalizing constant. One common semantic perspective is thus that a probabilistic program is understood as an unnormalized posterior measure, in the sense of measure theory, and the normalizing constant is the measure of the entire semantic domain. A programming language is said to be commutative if only data flow is meaningful;control flow is irrelevant, and expressions can be re-ordered. It has been unclear whether probabilistic programs are commutative because it is well-known that Fubini-Tonelli theorems for reordering integration fail in general. We show that probabilistic programs are in fact commutative, by characterizing the measures/kernels that arise from programs as 's-finite', i.e. sums of finite measures/kernels. The result is of theoretical interest, but also of practical interest, because program transformations based on commutativity help with symbolic inference and can improve the efficiency of simulation.
作者:
Huo, XuanLi, MingNanjing Univ
Natl Key Lab Novel Software Technol Collaborat Innovat Ctr Novel Software Technol & I Nanjing 210023 Peoples R China
Bug reports provide an effective way for end-users to disclose potential bugs hidden in a software system, while automatically locating the potential buggy source files according to a bug report remains a great challe...
详细信息
ISBN:
(纸本)9780999241103
Bug reports provide an effective way for end-users to disclose potential bugs hidden in a software system, while automatically locating the potential buggy source files according to a bug report remains a great challenge in software maintenance. Many previous approaches represent bug reports and source code from lexical and structural information correlated their relevance by measuring their similarity, and recently a CNN-based model is proposed to learn the unified features for bug localization, which overcomes the difficulty in modeling natural and programminglanguages with different structural semantics. However, previous studies fail to capture the sequential nature of source code, which carries additional semantics beyond the lexical and structural terms and such information is vital in modeling program functionalities and behaviors. In this paper, we propose a novel model LS-CNN, which enhances the unified features by exploiting the sequential nature of source code. LS-CNN combines CNN and LSTM to extract semantic features for automatically identifying potential buggy source code according to a bug report. Experimental results on widely-used software projects indicate that LS-CNN significantly outperforms the state-of-the-art methods in locating buggy files.
Malware has become sophisticated and organizations don't have a Plan B when standard lines of defense fail. These failures have devastating consequences for organizations, such as sensitive information being exfil...
详细信息
ISBN:
(纸本)9781509055692
Malware has become sophisticated and organizations don't have a Plan B when standard lines of defense fail. These failures have devastating consequences for organizations, such as sensitive information being exfiltrated. A promising avenue for improving the effectiveness of behavioral-based malware detectors is to combine fast (usually not highly accurate) traditional machine learning (ML) detectors with high-accuracy, but time-consuming, deep learning (DL) models. The main idea is to place software receiving borderline classifications by traditional ML methods in an environment where uncertainty is added, while software is analyzed by time-consuming DL models. The goal of uncertainty is to rate-limit actions of potential malware during deep analysis. In this paper, we describe CHAMELEON, a Linux-based framework that implements this uncertain environment. CHAMELEON offers two environments for its OS processes: standard-for software identified as benign by traditional ML detectors-and uncertain-for software that received borderline classifications analyzed by ML methods. The uncertain environment will bring obstacles to software execution through random perturbations applied probabilistically on selected system calls. We evaluated CHAMELEON with 113 applications from common benchmarks and 100 malware samples for Linux. Our results show that at threshold 10%, intrusive and non-intrusive strategies caused approximately 65% of malware to fail accomplishing their tasks, while approximately 30% of the analyzed benign software to meet with various levels of disruption (crashed or hampered). We also found that I/O-bound software was three times more affected by uncertainty than CPU-bound software.
The spatial QRS-T angle (SA) is a vectorcardiographic (VCG) parameter that has been identified as a marker for changes in the ventricular depolarization and repolarization sequence. Recent research has developed a num...
详细信息
ISBN:
(纸本)9781538645550;9781538666302
The spatial QRS-T angle (SA) is a vectorcardiographic (VCG) parameter that has been identified as a marker for changes in the ventricular depolarization and repolarization sequence. Recent research has developed a number of different linear electrocardiographic lead transformation matrices that have removed the lead system related barriers for the utilization of the SA in monitoring applications. However, monitoring applications utilize upon high-pass filters with cutoff frequencies as high as 0.67 Hz. Such high-pass filters are known to influence the ST-segment of the electrocardiogram (ECG). The aim of this research was to quantify the influence of different 0.67 Hz high-pass monitoring filters on the SA. We assessed the differences between the SA values computed from 0.05 Hz high-pass filtered Frank VCGs and SA value obtained from different 0.67 Hz high-pass filtered VCGs (0.67 Hz zero-phase high-pass filtered Frank VCGs, 0.67 Hz nonlinear-phase high-pass filtered Frank VCGs and 0.67 Hz zero-phase high-pass filtered VCGs derived from the Mason-Likar (ML) 12-lead ECG). The differences between the SA values were determined using a study population of 181 subjects and quantified as random error (span of BlandAltman 95% limits of agreement). The random error magnitude due to the derivation of the VCG from ML 12-lead ECG data was not found to be substantially increased by the utilization of the zero-phase 0.67 Hz high-pass filter (random error magnitude based upon ML derived 0.67 Hz filtered VCG data: 45.40 degrees vs. random error magnitude based upon ML derived 0.05 Hz filtered VCG data 39.57 degrees). This finding suggests that it is possible to utilize zero-phase (or alternatively linear-phase) high-pass filters in SA monitoring applications that utilize VCG data derived from the ML 12-lead ECG.
We present a CLP(FD)-based constraint solver able to deal with unbounded domains. It is based on constraint propagation, resorting to enumeration if all other methods fail. An important aspect is detecting when enumer...
详细信息
We present a CLP(FD)-based constraint solver able to deal with unbounded domains. It is based on constraint propagation, resorting to enumeration if all other methods fail. An important aspect is detecting when enumeration was complete and if this has an impact on the soundness of the result. We present a technique which guarantees soundness in the following way: if the constraint solver finds a solution it is guaranteed to be correct;if the constraint solver fails to find a solution it can either return the result "definitely false" in case it knows enumeration was exhaustive, or "unknown" in case it was aborted. The technique can deal with nested universal and existential quantifiers. It can easily be extended to set comprehensions and other operators introducing new quantified variables. We show applications in data validation and proof.
Software languages have always been an essential component of model-driven engineering. Their importance and popularity has been on the rise thanks to language workbenches, language-oriented development and other meth...
详细信息
ISBN:
(纸本)9781538634929
Software languages have always been an essential component of model-driven engineering. Their importance and popularity has been on the rise thanks to language workbenches, language-oriented development and other methodologies that enable us to quickly and easily create new languages specific for each domain. Unfortunately, language design is largely a form of art and has resisted most attempts to turn it into a form of science or engineering. In this paper we borrow concepts, techniques and principles from the domain of persuasive technology, or wider yet, design with intent - which was developed as a way to influence users behaviour for social and environmental benefit. Similarly, we claim, software language designers can make conscious choices in order to influence the behaviour of language users. The paper describes a process of extracting design components from 24 books of eight categories (dragon books, parsing techniques, compiler construction, compiler design, language implementation, language documentation, programminglanguages, software languages), as well as from the original set of Design with Intent cards and papers on DSL design. The resulting language design card toolkit can be used by DSL designers to cover important design decisions and make them with more confidence.
暂无评论