Source author record

Satish Chandra

Satish Chandra appears in the imported research catalog. Authorship, coauthor and topic links are available while profile ownership is still unclaimed.

ResearcherUnclaimed source record

Catalog footprint

What is connected

9works
4topics
4close collaborators

Actions

Connect this record

Log in to claim

Research graph

See the researcher in context

Open full explorer

Inspect adjacent papers, topics, institutions and collaborators without losing the researcher page.

Building this map preview

BZPEER is loading the nearby papers, people, topics and institutions for this page.

Published work

9 published item(s)

preprint2022arXiv

Predictive Synthesis of API-Centric Code

Today's programmers, especially data science practitioners, make heavy use of data-processing libraries (APIs) such as PyTorch, Tensorflow, NumPy, Pandas, and the like. Program synthesizers can provide significant coding assistance to this community of users; however program synthesis also can be slow due to enormous search spaces. In this work, we examine ways in which machine learning can be used to accelerate enumerative program synthesis. We present a deep-learning-based model to predict the sequence of API functions that would be needed to go from a given input to a desired output, both being numeric vectors. Our work is based on two insights. First, it is possible to learn, based on a large number of input-output examples, to predict the likely API function needed in a given situation. Second, and crucially, it is also possible to learn to compose API functions into a sequence, given an input and the desired final output, without explicitly knowing the intermediate values. We show that we can speed up an enumerative program synthesizer by using predictions from our model variants. These speedups significantly outperform previous ways (e.g. DeepCoder) in which researchers have used ML models in enumerative synthesis.

preprint2021arXiv

What It Would Take to Use Mutation Testing in Industry--A Study at Facebook

Traditionally, mutation testing generates an abundance of small deviations of a program, called mutants. At industrial systems the scale and size of Facebook's, doing this is infeasible. We should not create mutants that the test suite would likely fail on or that give no actionable signal to developers. To tackle this problem, in this paper, we semi-automatically learn error-inducing patterns from a corpus of common Java coding errors and from changes that caused operational anomalies at Facebook specifically. We combine the mutations with instrumentation that measures which tests exactly visited the mutated piece of code. Results on more than 15,000 generated mutants show that more than half of the generated mutants survive Facebook's rigorous test suite of unit, integration, and system tests. Moreover, in a case study with 26 developers, all but two found information of automatically detected test holes interesting in principle. As such, almost half of the 26 would actually act on the mutant presented to them by adapting an existing or creating a new test. The others did not for a variety of reasons often outside the scope of mutation testing. It remains a practical challenge how we can include such external information to increase the true actionability rate on mutants.

preprint2020arXiv

TypeWriter: Neural Type Prediction with Search-based Validation

Maintaining large code bases written in dynamically typed languages, such as JavaScript or Python, can be challenging due to the absence of type annotations: simple data compatibility errors proliferate, IDE support is limited, and APIs are hard to comprehend. Recent work attempts to address those issues through either static type inference or probabilistic type prediction. Unfortunately, static type inference for dynamic languages is inherently limited, while probabilistic approaches suffer from imprecision. This paper presents TypeWriter, the first combination of probabilistic type prediction with search-based refinement of predicted types. TypeWriter's predictor learns to infer the return and argument types for functions from partially annotated code bases by combining the natural language properties of code with programming language-level information. To validate predicted types, TypeWriter invokes a gradual type checker with different combinations of the predicted types, while navigating the space of possible type combinations in a feedback-directed manner. We implement the TypeWriter approach for Python and evaluate it on two code corpora: a multi-million line code base at Facebook and a collection of 1,137 popular open-source projects. We show that TypeWriter's type predictor achieves an F1 score of 0.64 (0.79) in the top-1 (top-5) predictions for return types, and 0.57 (0.80) for argument types, which clearly outperforms prior type prediction models. By combining predictions with search-based validation, TypeWriter can fully annotate between 14% to 44% of the files in a randomly selected corpus, while ensuring type correctness. A comparison with a static type inference tool shows that TypeWriter adds many more non-trivial types. TypeWriter currently suggests types to developers at Facebook and several thousands of types have already been accepted with minimal changes.

preprint2016arXiv

Trace Typing: An Approach for Evaluating Retrofitted Type Systems (Extended Version)

Recent years have seen growing interest in the retrofitting of type systems onto dynamically-typed programming languages, in order to improve type safety, programmer productivity, or performance. In such cases, type system developers must strike a delicate balance between disallowing certain coding patterns to keep the type system simple, or including them at the expense of additional complexity and effort. Thus far, the process for designing retrofitted type systems has been largely ad hoc, because evaluating multiple variations of a type system on large bodies of existing code is a significant undertaking. We present trace typing: a framework for automatically and quantitatively evaluating variations of a retrofitted type system on large code bases. The trace typing approach involves gathering traces of program executions, inferring types for instances of variables and expressions occurring in a trace, and merging types according to merge strategies that reflect specific (combinations of) choices in the source-level type system design space. We evaluated trace typing through several experiments. We compared several variations of type systems retrofitted onto JavaScript, measuring the number of program locations with type errors in each case on a suite of over fifty thousand lines of JavaScript code. We also used trace typing to validate and guide the design of a new retrofitted type system that enforces fixed object layout for JavaScript objects. Finally, we leveraged the types computed by trace typing to automatically identify tag tests --- dynamic checks that refine a type --- and examined the variety of tests identified.

preprint2016arXiv

Type Inference for Static Compilation of JavaScript (Extended Version)

We present a type system and inference algorithm for a rich subset of JavaScript equipped with objects, structural subtyping, prototype inheritance, and first-class methods. The type system supports abstract and recursive objects, and is expressive enough to accommodate several standard benchmarks with only minor workarounds. The invariants enforced by the types enable an ahead-of-time compiler to carry out optimizations typically beyond the reach of static compilers for dynamic languages. Unlike previous inference techniques for prototype inheritance, our algorithm uses a combination of lower and upper bound propagation to infer types and discover type errors in all code, including uninvoked functions. The inference is expressed in a simple constraint language, designed to leverage off-the-shelf fixed point solvers. We prove soundness for both the type system and inference algorithm. An experimental evaluation showed that the inference is powerful, handling the aforementioned benchmarks with no manual type annotation, and that the inferred types enable effective static compilation.

preprint2011arXiv

North-South Asymmetry in the Solar Coronal Rotation

The solar images at 17 GHz by Nobeyama Radio Heliograph and in X-ray by soft X-ray telescope (SXT) on board Yohkoh satellite have been of particular interest for the estimation of solar coronal rotation using flux modulation approach. These studies established that the solar corona rotates differentially. The radio images estimate equatorial rotation period lower than those estimated by the X-ray images. The latitude profiles of the coronal rotation have temporal variability. The space-time plots of sidereal rotation period, interestingly, display clear North-South asymmetry. The asymmetry appears to change its sign in odd and even activity cycles of the Sun.

preprint2011arXiv

Periodicities in the coronal rotation and sunspot numbers

The present study is an attempt to investigate the long term variations in coronal rotation by analyzing the time series of the solar radio emission data at 2.8 GHz frequency for the period 1947 - 2009. Here, daily adjusted radio flux (known as Penticton flux) data are used. The autocorrelation analysis shows that the rotation period varies between 19.0 to 29.5 sidereal days (mean sidereal rotation period is 24.3 days). This variation in the coronal rotation period shows evidence of two components in the variation; (1) 22-years component which may be related to the solar magnetic field reversal cycle or Hale's cycle, and (3) a component which is irregular in nature, but dominates over the other components. The crosscorrelation analysis between the annual average sunspots number and the coronal rotation period also shows evidence of its correlation with the 22-years Hale's cycle. The 22-years component is found to be almost in phase with the corresponding periodicities in the variation of the sunspots number.

preprint2010arXiv

Differential rotation measurement of soft X-Ray corona

The aim of this paper is to study the latitudinal variation in the solar rotation in soft X-ray corona. The time series bins are formed on different latitude regions of the solar full disk (SFD) images that extend from 80 degree South to 80 degree North. These SFD images are obtained with the soft X-ray telescope (SXT) on board the Yohkoh solar observatory. The autocorrelation analyses are performed with the time series that track the SXR flux modulations in the solar corona. Then for each year, extending from 1992 to 2001, we obtain the coronal sidereal rotation rate as a function of the latitude. The present analysis from SXR radiation reveals that; (i) the equatorial rotation rate of the corona is comparable to the rotation rate of the photosphere and the chromosphere, (ii) the differential profile with respect to the latitude varies throughout the period of the study; it is more in the year 1999 and least in 1994 and (iii) the equatorial rotation period varies systematically with sunspot numbers and indicates its dependence on the phases of the solar activity cycle.

preprint2009arXiv

Differential coronal rotation using radio images at 17 GHz

In the present work, we perform time-series analysis on the latitude bins of the solar full disk (SFD) images of Nobeyama Radioheliograph (NoRH) at 17 GHz. The flux modulation method traces the passage of radio features over the solar disc and the autocorrelation analysis of the time-series data of SFD images (one per day) for the period 1999-2001 gives the rotation period as a function of latitude extending from 60 degree S to 60 degree N. The results show that the solar corona rotates less differentially than the photosphere and chromosphere, i.e., it has smaller gradient in the rotation rate.