Abstract syntax tree reorganization.
Zhining Zhang (10583870), Liang Wan (119472), Kun Chu (11727827) et al. · Figshare · 2022
Cited by 0Open access
Read the abstract, see who wrote it and who cites it, and get the citation in APA, MLA, Chicago or Harvard.
About 1,651 papers for “Abstract syntax tree”
Zhining Zhang (10583870), Liang Wan (119472), Kun Chu (11727827) et al. · Figshare · 2022
Cited by 0Open access
Asts Cup, Michael Ringenburg, Dan Grossman et al. · 2011
• Parser acQons: Lecture what the1 parser Lecture does1 when it reduces another step Course in theMechanics derivaQon. Course Mechanics
Cited by 0
Erik G. Nilsson · KTH Publication Database DiVA (KTH Royal Institute of Technology) · 2012
Today, universities rely heavily on systems for detecting plagiarism in students’essays and reports. Code submissions however require specific tools. A numberof approaches to finding plagiarisms in code have already been tried, includingtechniques based on comparing textual transformations of code, token strings,parse trees and graph representations. In this master’s thesis, a new system, cojac,is presented which combines textual, tree and graph techniques to detect a broadspectrum of plagiarism attempts. The system finds plagiarisms in C, C++ and Adasource files. This thesis discusses the method used for obtaining parse trees fromthe source code and the abstract syntax tree analysis. For comparison of syntaxtrees, we generate sets of fingerprints, digest forms of trees, which makes thecomparison algorithm more scalable. To evaluate the method, a set of benchmarkfiles have been constructed containing plagiarism scenarios which was analyzedboth by our system and Moss, another available system for plagiarism detection incode. The results show that our abstract syntax tree analysis can effectively detectplagiarisms such as changing the format of the code and renaming of identifiersand is at least as effective as Moss for detecting plagiarisms of these kinds
Cited by 5Open access
Fáber, Jakub · Brno University of Technology Digital Library (Brno University of Technology) · 2017
Cieľom tejto práce je vytvorenie analyzátora za účelom kontroly programových riešení v jazyku Pythonu a navrhovanie ich zlepšení z hľadiska kvality a čistoty kódu. Pre najlepšie výsledky sa využíva kombinácia statickej a dynamickej analýzy. Tento systém je implementovaný vo forme tutor systému a využíva Docker kontajnery na bezpečné testovanie a analýzu v izolovanom prostredí. Na komunikáciu s úžívateľom je navrhnuté interaktívne prostredie s použitím moderných technólogii ako je Material Design.
Cited by 0
Jokubauskas, Justas, · KTUePubl (Repository of Kaunas University of Technology) · 2010
Over the past years, agile development methodologies have attracted a lot of attention. Refactoring has become one of the most heavily used practices, especially in Extreme Programming. Therefore the need to have powerful refactoring tools has grown to such an extent, that there is a required feature for modern-day IDEs to have implemented refactoring tools. The aim of this work is to build a refactoring library for the generic abstract syntax tree and test the algorithms for speed. Generic abstract syntax tree (GAST) is a tree structure that can store elements of several programming language. Achieving this goal required doing certain tasks that you find in this document: analysis of technologies and existing software; several algorithms for refactoring; user need and specification of requirements; library model, expressed in UML diagrams; test plan and test procedure. Experiments have shown that it is necessary to improve the refactoring algorithms. But the library and the AST structure is worth further development.
Cited by 0Open access
Patrick Adolf Telnoni, Muhammad Barja Sanjaya · International Journal of Engineering & Technology · 2026
Rapid increase of malware attacks cause many malware propagation techniques to arise. One most common techniques is using web browser. Drive by download attacks is the highest attack in web browser used by malware to propagate itself. Drive by download attack download malicious program by executing script -commonly javascript- without user's consent. Drive by script varies from simple one to the hard one. The code become harder to detect when the malware developer craft the code using obfuscation technique. Obfuscated code often slip away from detection and requires high computing process to recognize its original form. This paper will present design of tools to intercept drive by download attack without using excessive computation resource when it comes to obfuscated code by using Abstract Syntax Tree to detect code duplication and de-obfustication technique using DeFusinator plugin. As far this research went, we able to extract AST from a benign javascript, but we also find obstacle to find active malicious page to be extracted. This research will provide tools to prevent user from visiting malicious web pages infected with drive by script.
Cited by 0Open access
Ken Nakayama, Sakai Eko · 2014
For a software engineer, well-organized source code conveys the intention of the authors, as if it were an informal specification. An experienced engineer often grasps the “pseudo” meaning of source code first by identifying semantic chunks of various granularities in it, then by weaving them into a hypothetically consistent semantics. We call the specific part in source code that realizes a semantic chunk a code pattern. Tool support for locating already defined code pattern would help engineer's understanding, but it has been practically difficult. One reason is that a code pattern may appear as a lot of slightly different variations. This becomes an obstacle to define a code pattern. In this paper, a framework for an implicit representation of a code pattern is presented. In the framework, a code pattern is defined by an enumeration of instances which is tagged either “positive” of “negative” by a human. From these sets, the system incrementally infers a hypothetical explicit (syntactic) definition of the code pattern. Each instance is represented as an anchored AST (abstract syntax tree. An anchored AST is an AST with a tuple of AST nodes of interest.
Cited by 1
Misbah Mehboob Awan (22783925), Muhammad Waseem Anwar (9316557), Wasi Haider Butt (2852081) et al. · Figshare · 2025
Abstract Syntax Tree (AST) representation for Example 2.
Cited by 0Open access
Misbah Mehboob Awan (22783925), Muhammad Waseem Anwar (9316557), Wasi Haider Butt (2852081) et al. · Figshare · 2025
Abstract Syntax Tree (AST) representation for Example 1.
Cited by 0Open access
Kanika Bhardwaj · 2018
Cited by 0
Zev Youra · 2017
Cited by 0
Han Wan, Hongzhen Luo, Zihao Zhong et al. · 2022 IEEE Frontiers in Education Conference (FIE) · 2022
This paper presents research that Works in Progress (WIP). Small private online courses (SPOCs) have recently received extensive attention in computing education. In SPOCs, programming exercises are frequently included to train students’ programming skills. Abstract Syntax Tree Retrieval (ASTR) is a system that can help students solve Python problems by inferring the coding goals. However, the coding goal retrieved by ASTR gives students little information about what to do next. In response to this limitation, this work focuses on generating modification hints for students based on the coding goal. In addition, this paper reports on an effort to translate this idea over to Verilog-HDL programming problems. Without any programmed expert knowledge, the final results demonstrate that our system is generally accurate for 1 out of 2 submissions to give hints at a minimum. And for some favorable problems, it potentially performs much better. Furthermore, the results indicate that in the process of retrieval, weighted tree edit distance calculations resulted in improved accuracy over metric tree edit distance calculations.
Cited by 0
Anil Kumar, Hardeep Singh · Advances in intelligent systems and computing · 2019
Cited by 1
Iulian Neamtiu, Jeffrey S. Foster, Michael Hicks · ACM SIGSOFT Software Engineering Notes · 2005
Mining software repositories at the source code level can provide a greater understanding of how software evolves. We present a tool for quickly comparing the source code of different versions of a C program. The approach is based on partial abstract syntax tree matching, and can track simple changes to global variables, types and functions. These changes can characterize aspects of software evolution useful for answering higher level questions. In particular, we consider how they could be used to inform the design of a dynamic software updating system. We report results based on measurements of various versions of popular open source programs. including BIND, OpenSSH, Apache, Vsftpd and the Linux kernel.
Cited by 196
Tahira Khatoon · IOSR Journal of Engineering · 2012
A large amount of unavoidable money is spent on the maintenance of any existing software systems. Software maintenance cost is generally higher than the development cost therefore reducing maintenance cost is a necessary task of today's software industries. Software system includes similar bugs at different places which makes system inefficient n takes extra time and effort to deal with them. As a result the cost of software maintenance activities is increased. By detecting duplicate code fragments we can reduce the time and effort as well as maintenance cost. By analyzing the source code of a given software system, code clones can be detected. By this paper an abstract syntax tree based clone detector for java system is designed and implemented easily. There are various technique which can be used to find the clones This paper examines a software engineering process to create an abstract syntax tree based clone detector for java projects.
Cited by 4Open access
Andrei Arusoaie, Daniel Ionut Vicol · 2012
In most of the compilers or programming languages tools, parsers are used for transforming human readable code into Parse Trees or Abstract Syntax Trees (AST). A popular method to create parsers is to use a parser generator. Advanced parser generators (e.g. ANTLR, SDF) are able to generate directly ASTs if the grammar is annotated with AST generation rules. These annotations are typically done manually, by adding to each grammar rule a constructor and associating an AST component to each constructor. This might be inconvenient for people with little experience in writing grammars or for those who already have a grammar for their language. In this paper, we present a generic method for inferring such AST generation rules and a tool which automatically generates the annotated grammar. Assuming you have a grammar for a language, some input programs and their corresponding ASTs, the tool will infer the rules for constructing the AST. If the input programs cover the whole range of the language syntax constructs then the parser corresponding to the generated annotated grammar is able to parse and transform into an AST any program of the given language.
Cited by 5
Bowen Lv, Jiahao Li, Linbo Zhu et al. · 2023
Code completion refers to automatically generating the missing parts of code based on existing code snippets. Code completion can help programmers improve their coding efficiency and reduce errors. Providing accurate suggestions at the desired following token location in the completion recommendation list can significantly assist users. We have advanced the research on the next token prediction in code completion. Our work utilizes GPT-2 as the underlying architecture, and research has shown the effectiveness of incorporating the structural information of abstract syntax trees (ASTs) in code prediction. Particularly, predicting the type information of the next token has shown significant improvements. Our work proposes an algorithm to segment abstract syntax trees while preserving their structural characteristics. We use Tree-LSTM to extract the structural information of ASTs. We conducted experiments on a standard dataset and compared the effects of removing different components from the approach to validate its effectiveness.
Cited by 0
Jiaqi Liu, Fengming Zhang, Zhiwen Yu et al. · SSRN Electronic Journal · 2025
Cited by 0Open access
Daoyang Ming, Weicheng Xiong · Frontiers in Computing and Intelligent Systems · 2023
Code summarization provides the main aim described in natural language of the given function; it can benefit many tasks in software engineering. Due to the special grammar and syntax structure of programming languages and various shortcomings of different deep neural networks, the accuracy of existing code summarization approaches is not good enough. We proposes to use abstract syntax trees for source code summarization .Our solution is inspired by recent advances in neural machine translation, as well as an approach called SBT by Hu et al. We evaluate our approach using the automated metric BLEU and compare it to other relevant models.
Cited by 0Open access
Peacock, Samuel, Deng, Lin, Dehlinger, Josh et al. · Figshare · 2021
Abstract—Mutation testing is a testing technique that is effective at designing tests and evaluating an existing test suite. Even though mutation testing has been developed to be applicable and effective towards different types of software systems and programing languages for many years, wide industrial use of mutation testing has not yet been seen. One primary reason that prevents developers and testers from using mutation testing is the expensive computational cost.Specifically, the need to manually identify equivalent mutants is a major obstacle and makes mutation testing very time consuming and labor intensive. This paper addresses this limitation and proposes a machine learning-based approach that designs and trains an abstract syntax tree recurrent neural network model to automatically classify equivalent mutants during the process of mutation testing. A pilot study with 582 mutants shows that the proposed machine learning-based approach can automatically classify equivalent mutants with an accuracy higher than 90%. The approach can significantly save the manual effort and time spent on identifying equivalent mutants during the process of mutation testing.
Cited by 0Open access