Ishan Tarunesh, Syamantak Kumar, Preethi Jyothi · arXiv (Cornell University) · 2021
Generating code-switched text is a problem of growing interest, especially\ngiven the scarcity of corpora containing large volumes of real code-switched\ntext. In this work, we adapt a state-of-the-art neural machine translation\nmodel to generate Hindi-English code-switched sentences starting from\nmonolingual Hindi sentences. We outline a carefully designed curriculum of\npretraining steps, including the use of synthetic code-switched text, that\nenable the model to generate high-quality code-switched text. Using text\ngenerated from our model as data augmentation, we show significant reductions\nin perplexity on a language modeling task, compared to using text from other\ngenerative models of CS text. We also show improvements using our text for a\ndownstream code-switched natural language inference task. Our generated text is\nfurther subjected to a rigorous evaluation using a human evaluation study and a\nrange of objective metrics, where we show performance comparable (and sometimes\neven superior) to code-switched text obtained via crowd workers who are native\nHindi speakers.\n
Cited by 1Open access
Wenting Zhao, Ibrahim Abdelaziz, Julian Dolby et al. · arXiv (Cornell University) · 2023
Dynamically typed languages such as Python have become very popular. Among other strengths, Python's dynamic nature and its straightforward linking to native code have made it the de-facto language for many research areas such as Artificial Intelligence. This flexibility, however, makes static analysis very hard. While creating a sound, or a soundy, analysis for Python remains an open problem, we present in this work Serenity, a framework for static analysis of Python that turns out to be sufficient for some tasks. The Serenity framework exploits two basic mechanisms: (a) reliance on dynamic dispatch at the core of language translation, and (b) extreme abstraction of libraries, to generate an abstraction of the code. We demonstrate the efficiency and usefulness of Serenity's analysis in two applications: code completion and automated machine learning. In these two applications, we demonstrate that such analysis has a strong signal, and can be leveraged to establish state-of-the-art performance, comparable to neural models and dynamic analysis respectively.
Cited by 0Open access
Carter C. Price, Leonardo Bueno, Kara Jia et al. · RAND Corporation eBooks · 2026
The authors describe a tool to analyze the U.S. tax code by building a graph database of legal text. The Tax Code Analysis Tool (CAT) consists of a comprehensive graph database mapping Title 26 of the U.S. Code on internal revenue. CAT connects various entities (e.g., individuals, married couples, partnerships, corporations) and tax concepts (e.g., wages, deductions, credits) and links them to specific sections in the U.S. federal tax code.
Cited by 0
Miltiadis Allamanis · arXiv (Cornell University) · 2018
The field of big code relies on mining large corpora of code to perform some\nlearning task. A significant threat to this approach has been recently\nidentified by Lopes et al. (2017) who found a large amount of near-duplicate\ncode on GitHub. However, the impact of code duplication has not been noticed by\nresearchers devising machine learning models for source code. In this work, we\nexplore the effects of code duplication on machine learning models showing that\nreported performance metrics are sometimes inflated by up to 100% when testing\non duplicated code corpora compared to the performance on de-duplicated corpora\nwhich more accurately represent how machine learning models of code are used by\nsoftware engineers. We present a duplication index for widely used datasets,\nlist best practices for collecting code corpora and evaluating machine learning\nmodels on them. Finally, we release tools to help the community avoid this\nproblem in future research.\n
Cited by 1Open access
Chentao Guo, Haipeng Qu · 2025
Cited by 0
Samir Ribić, Adnan Salihbegović · ITI ... · 2007
High level programming languages are usually implemented as compilers, interpreters, pseudo compilers, just in time compilers and compact form interpreters. All of the mentioned approaches have their advantages and disadvantages. The approach proposed in this paper eliminates need for source code as physical entity, making the native machine code the only file that exists and is archived, while the special viewer/editor shows and edits it in a form understandable as a high level language. The viewer/editor acts as integrated all-in-one editor, decompiler and incremental compiler.
Cited by 2
Luis G. Sánchez Giraldo, Sergio Laso · Machine Learning and Knowledge Extraction · 2025
The growing use of machine learning (ML) and artificial intelligence across sectors has shown strong potential to improve decision-making processes. However, the adoption of ML by non-technical professionals remains limited due to the complexity of traditional development workflows, which often require software engineering and data science expertise. In recent years, low-code and no-code platforms have emerged as promising solutions to democratize ML by abstracting many of the technical tasks typically involved in software engineering pipelines. This paper investigates whether these platforms can offer a viable alternative for making ML accessible to non-expert users. Beyond predictive performance, this study also evaluates usability, setup complexity, the transparency of automated workflows, and cost management under realistic “out-of-the-box” conditions. This multidimensional perspective provides insights into the practical viability of LC/NC tools in real-world contexts. The comparative evaluation was conducted using three leading cloud-based tools: Amazon SageMaker Canvas, Google Cloud Vertex AI, and Azure Machine Learning Studio. These tools employ ensemble-based learning algorithms such as Gradient Boosted Trees, XGBoost, and Random Forests. Unlike traditional ML workflows that require extensive software engineering knowledge and manual optimization, these platforms enable domain experts to build predictive models through visual interfaces. The findings show that all platforms achieved high accuracy, with consistent identification of key features. Google Cloud Vertex AI was the most user-friendly, SageMaker Canvas offered a highly visual interface with some setup complexity, and Azure Machine Learning delivered the best model performance with a steeper learning curve. Cost transparency also varied considerably, with Google Cloud and Azure providing clearer safeguards against unexpected charges compared to Sagemaker Canvas.
Cited by 1Open access
David Wakeling · 1997
Cited by 1
Kevin Lano, Qiaomu Xue · SN Computer Science · 2023
Abstract Code generation is a key technique for model-driven engineering (MDE) approaches of software construction. Code generation enables the synthesis of applications in executable programming languages from high-level specifications in UML or in a domain-specific language. Specialised code generation languages and tools have been defined; however, the task of manually constructing a code generator remains a substantial undertaking, requiring a high degree of expertise in both the source and target languages, and in the code generation language. In this paper, we apply novel symbolic machine learning techniques for learning tree-to-tree mappings of software syntax trees, to automate the development of code generators from source–target example pairs. We evaluate the approach on several code generation tasks, and compare the approach to other code generator construction approaches. The results show that the approach can effectively automate the synthesis of code generators from examples, with relatively small manual effort required compared to existing code generation construction approaches. We also identified that it can be adapted to learn software abstraction and translation algorithms. The paper demonstrates that a symbolic machine learning approach can be applied to assist in the development of code generators and other tools manipulating software syntax trees.
Cited by 12Open access
CLEMENTE, GIORGIO, CONGIU, SERGIO, MORO, MICHELE · Research Padua Archive (University of Padua) · 1987
Cited by 0
KC Santosh, Rodrigue Rizk, Siddhi K. Bajracharya · Studies in computational intelligence · 2024
Cited by 1Open access
Peter Hamfelt, Ricardo Britto, Lincoln S. Rocha et al. · 2025
Machine learning (ML) has rapidly grown in popularity, becoming vital to many industries. Currently, the research on code smells in ML applications lacks tools and studies that address the identification and validity of ML-specific code smells. This work investigates suitable methods and tools to design and develop a static code analysis tool (MLpylint) based on code smell criteria. This research employed the Design Science Methodology. In the problem identification phase, a literature review was conducted to identify ML-specific code smells. In solution design, a secondary literature review and consultations with experts were performed to select methods and tools for implementing the tool.We evaluated the tool on data from 160 open-source ML applications sourced from GitHub. We also conducted a static validation through an expert survey involving 15 ML professionals. The results indicate the effectiveness and usefulness of the MLpylint. We aim to extend our current approach by investigating ways to introduce MLpylint seamlessly into development workflows, fostering a more productive and innovative developer environment.
Cited by 0Open access
Vrtanoski, Jordan · Zenodo (CERN European Organization for Nuclear Research) · 2021
A brief idea
Cited by 0Open access
The MIT Press eBooks · 2024
s Smalltalk system, which I introduced in the last chapter, was a huge project that pushed the bounds of commercial viability in pursuit of a distinctive vision.Kay's vision combined the world-building goals of computer modeling, as in SIMULA, with Sutherland's ambition for Sketchpad: "understanding of processes . . .which can be described with pictures."Combining these two things results in structured descriptions of the world, represented through a system of visual notation, as a space of creative language and code.These attributes were already valuable before the machine learning era, and Smalltalk is one of the most successful examples of the agenda I describe as moral codes.Smalltalk was explicitly designed to provide More Open Representations, Access to Learning, and Control Over Digital Expression.The most important aspect was the way Smalltalk encouraged freedom of expression and exploration, rather than imposing rules of what the user ought to do.In contrast, many software applications today are designed to make the user follow a specific sequence of steps or follow a user journey toward a predefined goal.Even programmers find it easier to code an existing algorithm than to specify something new that is poorly defined.Setting out in a different direction, if software needs to be modified along the way, can be like wading through molasses.Making complicated software work differently is hard for a programmer, and almost impossible for regular users.My PhD supervisor Thomas Green, developing the field of cognitive ergonomics, called this molasses-like experience viscosity, which he identified as "a sticky problem for [human-computer interaction]." 1 Sadly, much of the progress made in computer science research and software product development in the 40 years since Smalltalk has failed to properly understand its lessons.For example, poor understanding of
Cited by 0Open access
Peter Hamfelt, Ricardo Britto, Lincoln S. Rocha et al. · ArXiv.org · 2025
Machine learning (ML) has rapidly grown in popularity, becoming vital to many industries. Currently, the research on code smells in ML applications lacks tools and studies that address the identification and validity of ML-specific code smells. This work investigates suitable methods and tools to design and develop a static code analysis tool (MLpylint) based on code smell criteria. This research employed the Design Science Methodology. In the problem identification phase, a literature review was conducted to identify ML-specific code smells. In solution design, a secondary literature review and consultations with experts were performed to select methods and tools for implementing the tool. We evaluated the tool on data from 160 open-source ML applications sourced from GitHub. We also conducted a static validation through an expert survey involving 15 ML professionals. The results indicate the effectiveness and usefulness of the MLpylint. We aim to extend our current approach by investigating ways to introduce MLpylint seamlessly into development workflows, fostering a more productive and innovative developer environment.
Cited by 0Open access
Jonas Maebe, Michiel Ronsse, Koen De Bosschere · 2003
Abstract — Adding small code snippets at key points to existing code fragments is called instrumentation. It is an established technique to debug certain otherwise hard to solve faults, such as memory management issues and data races. Dynamic instru-mentation can already be used to analyse code which is loaded or even generated at run time. With the advent of environments such as the Java Virtual Machine with optimizing Just-In-Time compilers, a new obstacle arises: self-modifying code. In order to instrument this kind of code correctly, one must be able to detect modifications and adapt the instrumentation code accordingly. In this paper we propose an innovative technique that uses the hardware page protection mechanism of modern processors to detect such modifications. We also show how an instrumentor can adapt the instrumented version depending on the kind of modificiations as well as an experimental evaluation of said techniques. I.
Cited by 2
Srikant Srikant · 2016
Cited by 1
Nishrith Saini, Ricardo Britto · arXiv (Cornell University) · 2021
Modern Code Review (MCR) is the process of reviewing new code changes that need to be merged with an existing codebase. As a developer, one may receive many code review requests every day, i.e., the review requests need to be prioritised. Manually prioritising review requests is a challenging and time-consuming process. To address the above problem, we conducted an industrial case study at Ericsson aiming at developing a tool called Pineapple, which uses a Bayesian Network to prioritise code review requests. To validate our approach/tool, we deployed it in a live software development project at Ericsson, wherein more than 150 developers develop a telecommunication product. We focused on evaluating the predictive performance, feasibility, and usefulness of our approach. The results indicate that Pineapple has competent predictive performance (RMSE = 0.21 and MAE = 0.15). Furthermore, around 82.6% of Pineapple's users believe the tool can support code review request prioritisation by providing reliable results, and around 56.5% of the users believeit helps reducing code review lead time. As future work, we planto evaluate Pineapple's predictive performance, usefulness, and feasibility through a longitudinal investigation.
Cited by 0Open access
G.E. Veldhuijzen van Zanten · 1991
Cited by 0
Francesca Arcelli Fontana, Marco Zanoni · Knowledge-Based Systems · 2017
Cited by 177