目 录
Enabling PHP software engineering research in Rascal 3
3. PHP AiR: PHP analysis in Rascal 6
3.3 Installing and using PHP AiR 9
5. Lessons learned and future directions 12
Enabling PHP software engineering research in Rascal
Highlights
bull;We describe a framework in Rascal for PHP software engineering research, PHP AiR.
bull;We report results of using PHP AiR for empirical studies and program analysis.
bull;We examine the design decisions and tradeoffs encountered building PHP AiR.
Abstract
Today, PHP is one of the most popular programming languages, and is commonly used in the open source community and in industry to build large application frameworks and web applications. In this paper, we discuss our ongoing work on PHP AiR, a framework for PHP Analysis in Rascal. PHP AiR is focused especially on program analysis and empirical software engineering, and is being used actively and effectively in work on evaluating PHP feature usage and system evolution, on program analysis for refactoring and security validation, and on source code metrics. We describe the requirements and design decisions for PHP AiR, summarize current research using PHP AiR, discuss lessons learned, and briefly sketch future work.
Keywords: Meta-programming; Program analysis; Empirical software engineering; Dynamic languages; PHP
1. Introduction
PHP [1], originally designed as a simple scripting language for building home pages, is now a full-featured object-oriented language focused on server-side application development. As of January 2016 it is the 6th most popular language as ranked by the TIOBE programming community index and is used on 81.7 percent of all websites where the server-side language can be determined. The popularity of PHP has also resulted in a large number of open-source applications and frameworks, such as WordPress [2] for blogging, MediaWiki (the software behind Wikipedia) for Wiki creation, Magento for building and deploying eCommerce sites, and web development frameworks like Symfony , CodeIgniter , and Laravel .
Many of these systems manage their codebases on open sites such as GitHub, and many also have long version histories covering a number of years and different versions of the PHP language. This provides an ideal testbed for work on empirical software engineering, which uses empirical techniques to study software systems and software engineering practices. In our case, this includes studying existing software systems to determine how PHP is used in practice and how such use evolves over time as the language itself changes. It also enables work on program analysis, which involves modeling all possible runtime behaviors of programs without actually running the program (static analysis) or using tracing techniques to determine what programs actually do at runtime while potentially extrapolating from this to also derive other possible runtime behaviors (dynamic analysis). To be useful in practice, an analysis must scale to real systems and must support the types of programming language features and scenarios that developers actually use.
To enable research in program analysis, automated refactoring, tool support, and empirical software engineering in PHP, we are developing PHP AiR, an environment for PHP Analysis in Rascal. Built using the Rascal meta-programming language , a successor to Asf Sdf[3] and RScript[4], PHP AiR has been, and is currently being, used in multiple research projects, including: empirical surveys of PHP language feature usage and of the evolution of language feature usage over time ; a program analysis for resolving dynamic file includes ; a program analysis for resolving names used in reflective contexts in PHP code ; a refactoring from hand-coded SQL calls to uses of database libraries ; and multiple student projects to extract various metrics from PHP source code.
The rest of this paper is organized as follows. In Section 2, we provide a brief introduction to Rascal. Sectio
剩余内容已隐藏,支付完成后下载完整资料
英语原文共 11 页,剩余内容已隐藏,支付完成后下载完整资料
武汉理工大学毕业设计(论文)
英文文献翻译
学院(系):计算机科学与技术学院
专业班级: 计算机zy1301
学生姓名: 尚婷
指导教师: 耿枫
目 录
Enabling PHP software engineering research in Rascal 3
3. PHP AiR: PHP analysis in Rascal 6
3.3 Installing and using PHP AiR 9
5. Lessons learned and future directions 12
Enabling PHP software engineering research in Rascal
Highlights
bull;We describe a framework in Rascal for PHP software engineering research, PHP AiR.
bull;We report results of using PHP AiR for empirical studies and program analysis.
bull;We examine the design decisions and tradeoffs encountered building PHP AiR.
Abstract
Today, PHP is one of the most popular programming languages, and is commonly used in the open source community and in industry to build large application frameworks and web applications. In this paper, we discuss our ongoing work on PHP AiR, a framework for PHP Analysis in Rascal. PHP AiR is focused especially on program analysis and empirical software engineering, and is being used actively and effectively in work on evaluating PHP feature usage and system evolution, on program analysis for refactoring and security validation, and on source code metrics. We describe the requirements and design decisions for PHP AiR, summarize current research using PHP AiR, discuss lessons learned, and briefly sketch future work.
Keywords: Meta-programming; Program analysis; Empirical software engineering; Dynamic languages; PHP
1. Introduction
PHP [1], originally designed as a simple scripting language for building home pages, is now a full-featured object-oriented language focused on server-side application development. As of January 2016 it is the 6th most popular language as ranked by the TIOBE programming community index and is used on 81.7 percent of all websites where the server-side language can be determined. The popularity of PHP has also resulted in a large number of open-source applications and frameworks, such as WordPress [2] for blogging, MediaWiki (the software behind Wikipedia) for Wiki creation, Magento for building and deploying eCommerce sites, and web development frameworks like Symfony , CodeIgniter , and Laravel .
Many of these systems manage their codebases on open sites such as GitHub, and many also have long version histories covering a number of years and different versions of the PHP language. This provides an ideal testbed for work on empirical software engineering, which uses empirical techniques to study software systems and software engineering practices. In our case, this includes studying existing software systems to determine how PHP is used in practice and how such use evolves over time as the language itself changes. It also enables work on program analysis, which involves modeling all possible runtime behaviors of programs without actually running the program (static analysis) or using tracing techniques to determine what programs actually do at runtime while potentially extrapolating from this to also derive other possible runtime behaviors (dynamic analysis). To be useful in practice, an analysis must scale to real systems and must support the types of programming language features and scenarios that developers actually use.
To enable research in program analysis, automated refactoring, tool support, and empirical software engineering in PHP, we are developing PHP AiR, an environment for PHP Analysis in Rascal. Built using the Rascal meta-programming language , a successor to Asf Sdf[3] and RScript[4], PHP AiR has been, and is currently being, used in multiple research projects, including: empirical surveys of PHP language feature usage and of the evolution of language feature usage over time ; a program analysis for resolving dynamic file includes ; a program analysis for resolving names used in reflective contexts in PHP code ; a refactoring from hand-coded SQL calls to uses of database libraries ; and multiple student projects to extract various metrics from PHP source code.
The rest of this paper is organized as follows. In Section 2, we provide a brief introduction to Rascal. Sectio
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[141444],资料为PDF文档或Word文档,PDF文档可免费转换为Word
课题毕业论文、外文翻译、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。