Building JavaScript statistical linting service on cloud based integrated development environment

People tend to make mistakes. For software developers, they build wonderful tools to correct themselves from making mistakes. An Integrated Development Environment provides linting service to analyse source codes programmed by users. Traditionally, source codes will be analysed, information regardin...

Full description

Saved in:
Bibliographic Details
Main Author: Ding, Haohang
Other Authors: Xing Zhenchang
Format: Final Year Project
Language:English
Published: 2015
Subjects:
Online Access:http://hdl.handle.net/10356/62695
Tags: Add Tag
No Tags, Be the first to tag this record!
Institution: Nanyang Technological University
Language: English
Description
Summary:People tend to make mistakes. For software developers, they build wonderful tools to correct themselves from making mistakes. An Integrated Development Environment provides linting service to analyse source codes programmed by users. Traditionally, source codes will be analysed, information regarding syntax error, compilation error and simple runtime issue could be drawn. Notification will be presented to user and errors are corrected. However, there are norms and common practices that are neither documented nor discussed in the field of software programming. Violating these norms and common practices are usually syntactically correct but pose huge problems on readability and maintenance of source code project. In this report, we have discussed the implementation of statistical linting approach proposed by Ethan Fast, Daniel Steffee, Lucy Wang, Joel Brandt, and Michael S. Bernstein in their paper “Emergent, Crowd-scale Programming Practice in the IDE”. [1] This approach provides a lot more flexibility and dynamics on providing notification to programmers. By tuning linting service with data mining technique, we are able to provide a more customized linting service for different developers. The implementation is developed for JavaScript linting and it is based on Cloud9 Cloud IDE platform. Technically, it could be extend to any programming language as long as tools for abstract syntax tree conversion are available. By running through designed test cases, the system are able to solve linting issues that are not solvable by traditional linting service. However, the implementation is rather preliminary, we still face a lot of limitation. The database does not support huge set of data at this point. The data mining technique we have implemented does not support complex association. Future works could be done on improvement of database efficiency and data mining technique.