paper-with-me

홈 › Papers

ast2vec: Utilizing Recursive Neural Encodings of Python Programs

2021-03-22 · Benjamin Paaßen, Jessica McBroom, Bryn Jeffries, Irena Koprinska, Kalina Yacef

Educational datamining involves the application of datamining techniques to student activity. However, in the context of computer programming, many datamining techniques can not be applied because they expect vector-shaped input whereas computer programs have the form of syntax trees. In this paper, we present ast2vec, a neural network that maps Python syntax trees to vectors and back, thereby facilitating datamining on computer programs as well as the interpretation of datamining results. Ast2vec has been trained on almost half a million programs of novice programmers and is designed to be applied across learning tasks without re-training, meaning that users can apply it without any need for (additional) deep learning. We demonstrate the generality of ast2vec in three settings: First, we provide example analyses using ast2vec on a classroom-sized dataset, involving visualization, student motion analysis, clustering, and outlier detection, including two novel analyses, namely a progress-variance-projection and a dynamical systems analysis. Second, we consider the ability of ast2vec to recover the original syntax tree from its vector representation on the training data and two further large-scale programming datasets. Finally, we evaluate the predictive capability of a simple linear regression on top of ast2vec, obtaining similar results to techniques that work directly on syntax trees. We hope ast2vec can augment the educational datamining toolbelt by making analyses of computer programs easier, richer, and more efficient.

📄 PDF Abstract BibTeX arXiv:2103.11614

Code (1)

https://gitlab.com/bpaassen/ast2vec 공식 구현 pytorch

Tasks

ClusteringOutlier Detection

Methods 이 논문이 사용한 방법론

Linear Regression Linear Regression is a method for modelling a relationship between a dependent variable and independent variables. These models can be fit with numerous approaches. The most…

Similar Papers 제목 키워드 기반

Automatic Generation of Python Programs Using Context-Free Grammars

2024-03-11 · Kamel Yamani, Marwa Naïr, Riyadh Baghdadi

In recent years, data has emerged as the new gold, serving as a powerful tool for creating intelligent systems. However, procuring high-quality data remains challenging, especially for code. To address this, we developed…

Code Generation

The test set for the TransCoder system

2020-08-01 · Ernest Davis

The TransCoder system translates source code between Java, C++, and Python 3. The test set that was used to evaluate its quality is missing important features of Java, including the ability to define and use classes and …

Stable-Unstable Semantics: Beyond NP with Normal Logic Programs

2016-08-05 · Bart Bogaerts, Tomi Janhunen, Shahab Tasharrofi

Standard answer set programming (ASP) targets at solving search problems from the first level of the polynomial time hierarchy (PH). Tackling search problems beyond NP using ASP is less straightforward. The class of disj…

Transalg: a Tool for Translating Procedural Descriptions of Discrete Functions to SAT

2014-05-07 · Ilya Otpuschennikov, Alexander Semenov, Stepan Kochemazov

In this paper we present the Transalg system, designed to produce SAT encodings for discrete functions, written as programs in a specific language. Translation of such programs to SAT is based on propositional encoding m…

Translation

IR2Vec: LLVM IR based Scalable Program Embeddings

2019-09-13 · S. VenkataKeerthy, Rohit Aggarwal, Shalini Jain, Maunendra Sankar Desarkar 외

We propose IR2Vec, a Concise and Scalable encoding infrastructure to represent programs as a distributed embedding in continuous space. This distributed embedding is obtained by combining representation learning methods …

Representation Learning