Enabling PHP software engineering research in Rascal

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...

Full description

Saved in:
Bibliographic Details
Published in:Science of computer programming Vol. 134; pp. 37 - 46
Main Authors: Hills, Mark, Klint, Paul, Vinju, Jurgen J.
Format: Journal Article
Language:English
Published: Elsevier B.V 01.02.2017
Subjects:
ISSN:0167-6423, 1872-7964
Online Access:Get full text
Tags: Add Tag
No Tags, Be the first to tag this record!
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. •We describe a framework in Rascal for PHP software engineering research, PHP AiR.•We report results of using PHP AiR for empirical studies and program analysis.•We examine the design decisions and tradeoffs encountered building PHP AiR.
AbstractList 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. •We describe a framework in Rascal for PHP software engineering research, PHP AiR.•We report results of using PHP AiR for empirical studies and program analysis.•We examine the design decisions and tradeoffs encountered building PHP AiR.
Author Klint, Paul
Vinju, Jurgen J.
Hills, Mark
Author_xml – sequence: 1
  givenname: Mark
  orcidid: 0000-0003-0996-9275
  surname: Hills
  fullname: Hills, Mark
  email: mhills@cs.ecu.edu
  organization: East Carolina University, Greenville, NC, USA
– sequence: 2
  givenname: Paul
  surname: Klint
  fullname: Klint, Paul
  email: Paul.Klint@cwi.nl
  organization: Centrum Wiskunde & Informatica, Amsterdam, The Netherlands
– sequence: 3
  givenname: Jurgen J.
  surname: Vinju
  fullname: Vinju, Jurgen J.
  email: Jurgen.Vinju@cwi.nl
  organization: Centrum Wiskunde & Informatica, Amsterdam, The Netherlands
BookMark eNqFj81Kw0AUhQepYFt9Ajd5gcQ7P5l0Fi6kVCsULKLr4WZyU6fUicwExbc3sa5c6OpwOfc78M3YJHSBGLvkUHDg-mpfJOddV4jhKKAsAOQJm_JFJfLKaDVh06Gocq2EPGOzlPYAoFXFp0ytAtYHH3bZdr3NUtf2Hxgpo7DzgSiORaREGN1L5kP2iMnh4ZydtnhIdPGTc_Z8u3parvPNw9398maTOwmyzwnMYuGwLtEILXXV6lJQbSqJYFBiaxzwVirTKEFa8BKFVlA3qlYAWKGRcyaPuy52KUVq7Vv0rxg_LQc7itu9_Ra3o7iF0g7iA2V-Uc732Psu9BH94R_2-sjSoPXuKY4_FBw1PpLrbdP5P_kvlFh2YA
CitedBy_id crossref_primary_10_17163_ings_n27_2022_01
crossref_primary_10_1016_j_scico_2018_04_006
crossref_primary_10_1016_j_jss_2024_111973
crossref_primary_10_1007_s40815_017_0370_6
crossref_primary_10_1002_spe_2665
Cites_doi 10.1016/j.scico.2006.04.002
10.1016/j.infsof.2006.08.009
10.1002/(SICI)1097-024X(200003)30:3<259::AID-SPE298>3.0.CO;2-Y
10.1145/71605.71607
10.1145/367177.367199
10.1016/j.scico.2007.11.003
ContentType Journal Article
Copyright 2016 Elsevier B.V.
Copyright_xml – notice: 2016 Elsevier B.V.
DBID AAYXX
CITATION
DOI 10.1016/j.scico.2016.05.003
DatabaseName CrossRef
DatabaseTitle CrossRef
DatabaseTitleList
DeliveryMethod fulltext_linktorsrc
Discipline Computer Science
EISSN 1872-7964
EndPage 46
ExternalDocumentID 10_1016_j_scico_2016_05_003
S0167642316300296
GroupedDBID --K
--M
.DC
.~1
0R~
123
1B1
1RT
1~.
1~5
4.4
457
4G.
5VS
7-5
71M
8P~
9JN
AACTN
AAEDW
AAFTH
AAIAV
AAIKJ
AAKOC
AALRI
AAOAW
AAQFI
AAXUO
AAYFN
ABBOA
ABJNI
ABMAC
ABVKL
ABYKQ
ACDAQ
ACGFS
ACRLP
ACZNC
ADBBV
ADEZE
ADHUB
AEBSH
AEKER
AENEX
AEXQZ
AFKWA
AFTJW
AGUBO
AGYEJ
AHHHB
AHZHX
AIALX
AIEXJ
AIKHN
AITUG
AJBFU
AJOXV
ALMA_UNASSIGNED_HOLDINGS
AMFUW
AMRAJ
AOUOD
AXJTR
BKOJK
BLXMC
CS3
DU5
E.L
EBS
EFJIC
EFLBG
EJD
EO8
EO9
EP2
EP3
FDB
FEDTE
FIRID
FNPLU
FYGXN
G-Q
GBLVA
GBOLZ
HVGLF
IHE
IXB
J1W
KOM
LG9
M26
M41
MO0
N9A
O-L
O9-
OAUVE
OK1
OZT
P-8
P-9
P2P
PC.
Q38
RIG
ROL
RPZ
SDF
SDG
SDP
SES
SPC
SPCBC
SSV
SSZ
T5K
TN5
XPP
ZMT
~G-
9DU
AAEDT
AAQXK
AATTM
AAXKI
AAYWO
AAYXX
ABFNM
ABWVN
ABXDB
ACLOT
ACNNM
ACRPL
ACVFH
ADCNI
ADMUD
ADNMO
ADVLN
AEIPS
AEUPX
AFFNX
AFJKZ
AFPUW
AGHFR
AGQPQ
AIGII
AIIUN
AKBMS
AKRWK
AKYEP
ANKPU
APXCP
ASPBG
AVWKF
AZFZN
CITATION
EFKBS
FGOYB
G-2
HZ~
R2-
SEW
WUQ
ZY4
~HD
ID FETCH-LOGICAL-c303t-e0988cab5a926367f652eb973a09a3af9c01f349d42e6215a2640bd4b400a7a93
ISICitedReferencesCount 7
ISICitedReferencesURI http://www.webofscience.com/api/gateway?GWVersion=2&SrcApp=Summon&SrcAuth=ProQuest&DestLinkType=CitingArticles&DestApp=WOS_CPL&KeyUT=000390072500004&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D
ISSN 0167-6423
IngestDate Sat Nov 29 03:37:17 EST 2025
Tue Nov 18 22:01:38 EST 2025
Fri Feb 23 02:37:18 EST 2024
IsPeerReviewed true
IsScholarly true
Keywords PHP
Empirical software engineering
Program analysis
Dynamic languages
Meta-programming
Language English
LinkModel OpenURL
MergedId FETCHMERGED-LOGICAL-c303t-e0988cab5a926367f652eb973a09a3af9c01f349d42e6215a2640bd4b400a7a93
ORCID 0000-0003-0996-9275
PageCount 10
ParticipantIDs crossref_primary_10_1016_j_scico_2016_05_003
crossref_citationtrail_10_1016_j_scico_2016_05_003
elsevier_sciencedirect_doi_10_1016_j_scico_2016_05_003
PublicationCentury 2000
PublicationDate 2017-02-01
2017-02-00
PublicationDateYYYYMMDD 2017-02-01
PublicationDate_xml – month: 02
  year: 2017
  text: 2017-02-01
  day: 01
PublicationDecade 2010
PublicationTitle Science of computer programming
PublicationYear 2017
Publisher Elsevier B.V
Publisher_xml – name: Elsevier B.V
References Hills, Klint, Vinju (br0150) 2014
Hills, Klint, Vinju (br0130) 2013
br0220
McCarthy (br0660) 1960; 3
van den Brand, van Deursen, Heering, de Jong, de Jonge, Kuipers, Klint, Moonen, Olivier, Scheerder, Vinju, Visser, Visser (br0390) 2001; vol. 2027
Parr (br0440) 2007
br0500
Bravenboer, Kalleberg, Vermaas, Visser (br0400) 2008; 72
Heering, Hendriks, Klint, Rekers (br0110) 1989; 24
Tamang (br0300) 2015
Cordy (br0420) 2006; 61
Charles, Fuhrer, Sutton, Duesterwald, Vinju (br0450) 2009
br0460
br0020
br0060
Moreau (br0370) 1998
Samimi, Schäfer, Artzi, Millstein, Tip, Hendren (br0600) 2012
Klint, van der Storm, Vinju (br0100) 2009
Minamide (br0580) 2005
Beyer (br0340) 2006
Hills (br0140) 2015
van den Brand, de Jong, Klint, Olivier (br0430) 2000; 30
br0510
Hills (br0670) 2014; vol. 8706
Biggar (br0530) April 2010
br0470
Hills, Klint, Vinju (br0190) 2012; vol. 7745
Anderson, Zarins (br0360) 2005
br0230
Hills, Klint, van der Storm, Vinju (br0260) 2011; vol. 6705
br0030
br0070
Zhao, Proctor, Yang, Qi, Williams, Gao, Ottoni, Paroski, MacVicar, Evans, Tu (br0540) 2012
Müller, Klashinsky (br0630) 1988
br0200
Wohlin, Runeson, Höst, Ohlsson, Regnell (br0280) 2012
Steindorfer, Vinju (br0320) 2015
van den Bos, Hills, Klint, van der Storm, Vinju (br0330) 2011; vol. 56
Steindorfer, Vinju (br0310) 2014
br0520
Basten, Hills, Klint, Landman, Shahi, Steindorfer, Vinju (br0610) 2015
Hills, Klint (br0180) 2014
Hills, Klint, Vinju (br0270) 2012
Hills (br0160) 2015
br0480
Huang, Yu, Hang, Tsai, Lee, Kuo (br0550) 2004
br0240
Demeyer, Tichelaar, Ducasse (br0620) 2001
br0040
Jovanovic, Kruegel, Kirda (br0570) 2006
Rucareanu (br0170) 2013
Klint (br0120) 2008
br0080
Holt, Winter, Schürr (br0640) 2000
Balland, Brauner, Kopetz, Moreau, Reilles (br0410) 2007; vol. 4533
br0210
Jovanovic, Krügel, Kirda (br0560) 2006
br0090
Holt (br0350) 2008
br0490
van den Brand, Klint (br0650) 2007; 49
br0010
Ceri, Gottlob, Tanca (br0380) 1990
br0250
Wassermann, Su (br0590) 2008
br0050
br0290
van den Brand (10.1016/j.scico.2016.05.003_br0650) 2007; 49
Anderson (10.1016/j.scico.2016.05.003_br0360) 2005
Basten (10.1016/j.scico.2016.05.003_br0610) 2015
Moreau (10.1016/j.scico.2016.05.003_br0370) 1998
Balland (10.1016/j.scico.2016.05.003_br0410) 2007; vol. 4533
Beyer (10.1016/j.scico.2016.05.003_br0340) 2006
Rucareanu (10.1016/j.scico.2016.05.003_br0170) 2013
Cordy (10.1016/j.scico.2016.05.003_br0420) 2006; 61
Tamang (10.1016/j.scico.2016.05.003_br0300) 2015
Parr (10.1016/j.scico.2016.05.003_br0440) 2007
Steindorfer (10.1016/j.scico.2016.05.003_br0310) 2014
Steindorfer (10.1016/j.scico.2016.05.003_br0320) 2015
Müller (10.1016/j.scico.2016.05.003_br0630) 1988
Ceri (10.1016/j.scico.2016.05.003_br0380) 1990
Wassermann (10.1016/j.scico.2016.05.003_br0590) 2008
Wohlin (10.1016/j.scico.2016.05.003_br0280) 2012
Charles (10.1016/j.scico.2016.05.003_br0450) 2009
van den Brand (10.1016/j.scico.2016.05.003_br0390) 2001; vol. 2027
Hills (10.1016/j.scico.2016.05.003_br0260) 2011; vol. 6705
Huang (10.1016/j.scico.2016.05.003_br0550) 2004
Samimi (10.1016/j.scico.2016.05.003_br0600) 2012
Demeyer (10.1016/j.scico.2016.05.003_br0620) 2001
Hills (10.1016/j.scico.2016.05.003_br0270) 2012
Hills (10.1016/j.scico.2016.05.003_br0180) 2014
van den Brand (10.1016/j.scico.2016.05.003_br0430) 2000; 30
Holt (10.1016/j.scico.2016.05.003_br0640) 2000
van den Bos (10.1016/j.scico.2016.05.003_br0330) 2011; vol. 56
Biggar (10.1016/j.scico.2016.05.003_br0530) 2010
Heering (10.1016/j.scico.2016.05.003_br0110) 1989; 24
Jovanovic (10.1016/j.scico.2016.05.003_br0570) 2006
Bravenboer (10.1016/j.scico.2016.05.003_br0400) 2008; 72
Jovanovic (10.1016/j.scico.2016.05.003_br0560) 2006
Hills (10.1016/j.scico.2016.05.003_br0130) 2013
Hills (10.1016/j.scico.2016.05.003_br0140) 2015
Hills (10.1016/j.scico.2016.05.003_br0670) 2014; vol. 8706
Klint (10.1016/j.scico.2016.05.003_br0100) 2009
Hills (10.1016/j.scico.2016.05.003_br0160) 2015
Hills (10.1016/j.scico.2016.05.003_br0150) 2014
McCarthy (10.1016/j.scico.2016.05.003_br0660) 1960; 3
Holt (10.1016/j.scico.2016.05.003_br0350) 2008
Zhao (10.1016/j.scico.2016.05.003_br0540) 2012
Minamide (10.1016/j.scico.2016.05.003_br0580) 2005
Klint (10.1016/j.scico.2016.05.003_br0120) 2008
Hills (10.1016/j.scico.2016.05.003_br0190) 2012; vol. 7745
References_xml – ident: br0490
  article-title: PHP copy/paste detector
– ident: br0050
  article-title: MediaWiki homepage
– start-page: 191
  year: 2009
  end-page: 206
  ident: br0450
  article-title: Accelerating the creation of customized, language-specific IDEs in Eclipse
  publication-title: Proceedings of the 24th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications
– start-page: 432
  year: 2005
  end-page: 441
  ident: br0580
  article-title: Static approximation of dynamically generated Web pages
  publication-title: Proceedings of the 14th International Conference on World Wide Web
– start-page: 277
  year: 2012
  end-page: 287
  ident: br0600
  article-title: Automated repair of HTML generation errors in PHP applications using string constraint solving
  publication-title: Proceedings of the 34th International Conference on Software Engineering
– start-page: 503
  year: 2014
  end-page: 514
  ident: br0150
  article-title: Static, lightweight includes resolution for PHP
  publication-title: Proceedings of the 29th IEEE/ACM International Conference on Automated Software Engineering
– ident: br0200
  article-title: Count lines of code tool
– ident: br0040
  article-title: WordPress homepage
– ident: br0230
  article-title: PHP parser
– year: 1998
  ident: br0370
  article-title: A choice-point library for backtrack programming
  publication-title: Post-Conference Workshop on Implementation Technologies for Programming Languages Based on Logic
– year: 1990
  ident: br0380
  article-title: Logic Programming and Databases
– ident: br0060
  article-title: Magento homepage
– start-page: 5
  year: 2008
  end-page: 14
  ident: br0350
  article-title: Grokking software architecture
  publication-title: Proceedings of the 15th Working Conference on Reverse Engineering
– volume: vol. 8706
  start-page: 322
  year: 2014
  end-page: 341
  ident: br0670
  article-title: Streamlining control flow graph construction with DCFlow
  publication-title: Proceedings of the 7th International Conference on Software Language Engineering
– year: April 2010
  ident: br0530
  article-title: Design and implementation of an ahead-of-time compiler for PHP
– ident: br0240
  article-title: Eclipse PHP development tools
– volume: 49
  start-page: 55
  year: 2007
  end-page: 64
  ident: br0650
  article-title: ATerms for manipulation and exchange of structured data: it's all about sharing
  publication-title: Inf. Softw. Technol.
– start-page: 27
  year: 2006
  end-page: 36
  ident: br0570
  article-title: Precise alias analysis for static detection of Web application vulnerabilities
  publication-title: Proceedings of the 2006 Workshop on Programming Languages and Analysis for Security
– start-page: 40
  year: 2012
  end-page: 49
  ident: br0270
  article-title: Scripting a refactoring with Rascal and Eclipse
  publication-title: Proceedings of the 5th Workshop on Refactoring Tools
– ident: br0480
  article-title: PHP CodeSniffer
– ident: br0010
  article-title: PHP language homepage
– volume: vol. 7745
  start-page: 372
  year: 2012
  end-page: 391
  ident: br0190
  article-title: Meta-language support for type-safe access to external resources
  publication-title: Proceedings of the 5th International Conference on Software Language Engineering
– volume: vol. 4533
  start-page: 36
  year: 2007
  end-page: 47
  ident: br0410
  article-title: Tom: piggybacking rewriting on Java
  publication-title: Proceedings of the 18th International Conference on Term Rewriting and Applications
– volume: 30
  start-page: 259
  year: 2000
  end-page: 291
  ident: br0430
  article-title: Efficient annotated terms
  publication-title: Softw. Pract. Exp.
– year: 2001
  ident: br0620
  article-title: FAMIX 2.1—the FAMOOS information exchange model
– year: 2008
  ident: br0120
  article-title: Using RSCRIPT for software analysis
  publication-title: Working Session on Query Technologies and Applications for Program Comprehension
– start-page: 807
  year: 2006
  end-page: 810
  ident: br0340
  article-title: Relational programming with CrocoPat
  publication-title: Proceedings of the 28th International Conference on Software Engineering
– start-page: 11
  year: 2014
  end-page: 14
  ident: br0310
  article-title: Code specialization for memory efficient hash tries (short paper)
  publication-title: Proceedings of the 2014 International Conference on Generative Programming
– start-page: 168
  year: 2009
  end-page: 177
  ident: br0100
  article-title: RASCAL: a domain specific language for source code analysis and manipulation
  publication-title: Proceedings of the Ninth IEEE Working Conference on Source Code Analysis and Manipulation
– ident: br0250
  article-title: Eclipse Java development tools
– volume: vol. 2027
  start-page: 365
  year: 2001
  end-page: 370
  ident: br0390
  article-title: The ASF+SDF meta-environment: a component-based language development environment
  publication-title: Proceedings of the 10th International Conference on Compiler Construction
– volume: 72
  start-page: 52
  year: 2008
  end-page: 70
  ident: br0400
  article-title: Stratego/XT 0.17. A language and toolset for program transformation
  publication-title: Sci. Comput. Program.
– start-page: 80
  year: 1988
  end-page: 86
  ident: br0630
  article-title: Rigi – a system for programming-in-the-large
  publication-title: Proceedings of the 10th International Conference on Software Engineering
– start-page: 575
  year: 2012
  end-page: 586
  ident: br0540
  article-title: The HipHop compiler for PHP
  publication-title: Proceedings of the 27th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications
– volume: vol. 6705
  start-page: 228
  year: 2011
  end-page: 243
  ident: br0260
  article-title: A case of visitor versus interpreter pattern
  publication-title: Proceedings of the 49th International Conference on Objects, Models, Components, and Patterns
– start-page: 147
  year: 2005
  end-page: 148
  ident: br0360
  article-title: The CodeSurfer software understanding platform
  publication-title: Proceedings of the 13th International Workshop on Program Comprehension
– start-page: 258
  year: 2006
  end-page: 263
  ident: br0560
  article-title: Pixy: a static analysis tool for detecting Web application vulnerabilities (short paper)
  publication-title: IEEE Symposium on Security and Privacy
– start-page: 525
  year: 2015
  end-page: 529
  ident: br0140
  article-title: Evolution of dynamic feature usage in PHP
  publication-title: Proceedings of the 22nd IEEE International Conference on Software Analysis, Evolution, and Reengineering
– volume: vol. 56
  start-page: 15
  year: 2011
  end-page: 32
  ident: br0330
  article-title: Rascal: from algebraic specification to meta-programming
  publication-title: Proceedings of the Second International Workshop on Algebraic Methods in Model-Based Software Engineering
– year: 2012
  ident: br0280
  article-title: Experimentation in Software Engineering
– year: 2015
  ident: br0300
  article-title: A constraint-based method for flow-sensitive static type analysis Of PHP using the Rascal meta-programming platform
– start-page: 325
  year: 2013
  end-page: 335
  ident: br0130
  article-title: An empirical study of PHP feature usage: a static analysis perspective
  publication-title: Proceedings of the 2013 International Symposium on Software Testing and Analysis
– ident: br0470
– start-page: 171
  year: 2008
  end-page: 180
  ident: br0590
  article-title: Static detection of cross-site scripting vulnerabilities
  publication-title: Proceedings of the 30th International Conference on Software Engineering
– year: 2013
  ident: br0170
  article-title: PHP: securing against SQL injection
– ident: br0030
  article-title: PHP usage statistics
– ident: br0090
  article-title: Laravel homepage
– volume: 3
  start-page: 184
  year: 1960
  end-page: 195
  ident: br0660
  article-title: Recursive functions of symbolic expressions and their computation by machine, Part I
  publication-title: Commun. ACM
– volume: 24
  start-page: 43
  year: 1989
  end-page: 75
  ident: br0110
  article-title: The syntax definition formalism SDF—reference manual
  publication-title: SIGPLAN Not.
– ident: br0510
  article-title: PHPLoc
– start-page: 783
  year: 2015
  end-page: 800
  ident: br0320
  article-title: Optimizing Hash-array mapped tries for fast and lean immutable JVM collections
  publication-title: Proceedings of the 2015 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications
– volume: 61
  start-page: 190
  year: 2006
  end-page: 210
  ident: br0420
  article-title: The TXL source transformation language
  publication-title: Sci. Comput. Program.
– ident: br0500
  article-title: PHPDepend
– ident: br0220
  article-title: PHP AiR PHP parser
– start-page: 25
  year: 2015
  end-page: 28
  ident: br0610
  article-title: M3: a general model for code analytics in Rascal
  publication-title: Proceedings of the 1st IEEE International Workshop on Software Analytics
– ident: br0290
  article-title: BlackDuck OpenHub PHP language statistics
– start-page: 162
  year: 2000
  end-page: 171
  ident: br0640
  article-title: GXL: toward a standard exchange format
  publication-title: Proceedings of the Seventh Working Conference on Reverse Engineering
– ident: br0210
– ident: br0070
  article-title: Symfony homepage
– ident: br0080
  article-title: CodeIgniter homepage
– ident: br0520
  article-title: PHPMD
– ident: br0020
  article-title: TIOBE Programming Community index
– start-page: 454
  year: 2014
  end-page: 457
  ident: br0180
  article-title: PHP AiR: analyzing PHP systems with RASCAL
  publication-title: Proceedings of the 2014 Software Evolution Week—IEEE Conference on Software Maintenance, Reengineering and Reverse Engineering
– year: 2007
  ident: br0440
  article-title: The Definitive ANTLR Reference: Building Domain-Specific Languages
– start-page: 40
  year: 2004
  end-page: 52
  ident: br0550
  article-title: Securing Web application code by static analysis and runtime protection
  publication-title: Proceedings of the 13th International Conference on World Wide Web
– ident: br0460
– start-page: 563
  year: 2015
  end-page: 573
  ident: br0160
  article-title: Variable feature usage patterns in PHP
  publication-title: Proceedings of the 30th IEEE/ACM International Conference on Automated Software Engineering
– start-page: 503
  year: 2014
  ident: 10.1016/j.scico.2016.05.003_br0150
  article-title: Static, lightweight includes resolution for PHP
– year: 2001
  ident: 10.1016/j.scico.2016.05.003_br0620
– volume: 61
  start-page: 190
  issue: 3
  year: 2006
  ident: 10.1016/j.scico.2016.05.003_br0420
  article-title: The TXL source transformation language
  publication-title: Sci. Comput. Program.
  doi: 10.1016/j.scico.2006.04.002
– start-page: 432
  year: 2005
  ident: 10.1016/j.scico.2016.05.003_br0580
  article-title: Static approximation of dynamically generated Web pages
– start-page: 168
  year: 2009
  ident: 10.1016/j.scico.2016.05.003_br0100
  article-title: RASCAL: a domain specific language for source code analysis and manipulation
– volume: vol. 2027
  start-page: 365
  year: 2001
  ident: 10.1016/j.scico.2016.05.003_br0390
  article-title: The ASF+SDF meta-environment: a component-based language development environment
– year: 1998
  ident: 10.1016/j.scico.2016.05.003_br0370
  article-title: A choice-point library for backtrack programming
– start-page: 277
  year: 2012
  ident: 10.1016/j.scico.2016.05.003_br0600
  article-title: Automated repair of HTML generation errors in PHP applications using string constraint solving
– start-page: 258
  year: 2006
  ident: 10.1016/j.scico.2016.05.003_br0560
  article-title: Pixy: a static analysis tool for detecting Web application vulnerabilities (short paper)
– volume: 49
  start-page: 55
  issue: 1
  year: 2007
  ident: 10.1016/j.scico.2016.05.003_br0650
  article-title: ATerms for manipulation and exchange of structured data: it's all about sharing
  publication-title: Inf. Softw. Technol.
  doi: 10.1016/j.infsof.2006.08.009
– year: 2010
  ident: 10.1016/j.scico.2016.05.003_br0530
– start-page: 325
  year: 2013
  ident: 10.1016/j.scico.2016.05.003_br0130
  article-title: An empirical study of PHP feature usage: a static analysis perspective
– volume: 30
  start-page: 259
  year: 2000
  ident: 10.1016/j.scico.2016.05.003_br0430
  article-title: Efficient annotated terms
  publication-title: Softw. Pract. Exp.
  doi: 10.1002/(SICI)1097-024X(200003)30:3<259::AID-SPE298>3.0.CO;2-Y
– volume: vol. 6705
  start-page: 228
  year: 2011
  ident: 10.1016/j.scico.2016.05.003_br0260
  article-title: A case of visitor versus interpreter pattern
– start-page: 454
  year: 2014
  ident: 10.1016/j.scico.2016.05.003_br0180
  article-title: PHP AiR: analyzing PHP systems with RASCAL
– start-page: 80
  year: 1988
  ident: 10.1016/j.scico.2016.05.003_br0630
  article-title: Rigi – a system for programming-in-the-large
– start-page: 525
  year: 2015
  ident: 10.1016/j.scico.2016.05.003_br0140
  article-title: Evolution of dynamic feature usage in PHP
– start-page: 5
  year: 2008
  ident: 10.1016/j.scico.2016.05.003_br0350
  article-title: Grokking software architecture
– start-page: 162
  year: 2000
  ident: 10.1016/j.scico.2016.05.003_br0640
  article-title: GXL: toward a standard exchange format
– start-page: 575
  year: 2012
  ident: 10.1016/j.scico.2016.05.003_br0540
  article-title: The HipHop compiler for PHP
– volume: 24
  start-page: 43
  issue: 11
  year: 1989
  ident: 10.1016/j.scico.2016.05.003_br0110
  article-title: The syntax definition formalism SDF—reference manual
  publication-title: SIGPLAN Not.
  doi: 10.1145/71605.71607
– volume: 3
  start-page: 184
  issue: 4
  year: 1960
  ident: 10.1016/j.scico.2016.05.003_br0660
  article-title: Recursive functions of symbolic expressions and their computation by machine, Part I
  publication-title: Commun. ACM
  doi: 10.1145/367177.367199
– volume: 72
  start-page: 52
  issue: 1–2
  year: 2008
  ident: 10.1016/j.scico.2016.05.003_br0400
  article-title: Stratego/XT 0.17. A language and toolset for program transformation
  publication-title: Sci. Comput. Program.
  doi: 10.1016/j.scico.2007.11.003
– year: 2008
  ident: 10.1016/j.scico.2016.05.003_br0120
  article-title: Using RSCRIPT for software analysis
– volume: vol. 7745
  start-page: 372
  year: 2012
  ident: 10.1016/j.scico.2016.05.003_br0190
  article-title: Meta-language support for type-safe access to external resources
– start-page: 27
  year: 2006
  ident: 10.1016/j.scico.2016.05.003_br0570
  article-title: Precise alias analysis for static detection of Web application vulnerabilities
– start-page: 191
  year: 2009
  ident: 10.1016/j.scico.2016.05.003_br0450
  article-title: Accelerating the creation of customized, language-specific IDEs in Eclipse
– start-page: 40
  year: 2004
  ident: 10.1016/j.scico.2016.05.003_br0550
  article-title: Securing Web application code by static analysis and runtime protection
– start-page: 563
  year: 2015
  ident: 10.1016/j.scico.2016.05.003_br0160
  article-title: Variable feature usage patterns in PHP
– year: 2013
  ident: 10.1016/j.scico.2016.05.003_br0170
– volume: vol. 56
  start-page: 15
  year: 2011
  ident: 10.1016/j.scico.2016.05.003_br0330
  article-title: Rascal: from algebraic specification to meta-programming
– start-page: 807
  year: 2006
  ident: 10.1016/j.scico.2016.05.003_br0340
  article-title: Relational programming with CrocoPat
– start-page: 783
  year: 2015
  ident: 10.1016/j.scico.2016.05.003_br0320
  article-title: Optimizing Hash-array mapped tries for fast and lean immutable JVM collections
– year: 2015
  ident: 10.1016/j.scico.2016.05.003_br0300
– start-page: 11
  year: 2014
  ident: 10.1016/j.scico.2016.05.003_br0310
  article-title: Code specialization for memory efficient hash tries (short paper)
– year: 2007
  ident: 10.1016/j.scico.2016.05.003_br0440
– start-page: 25
  year: 2015
  ident: 10.1016/j.scico.2016.05.003_br0610
  article-title: M3: a general model for code analytics in Rascal
– start-page: 40
  year: 2012
  ident: 10.1016/j.scico.2016.05.003_br0270
  article-title: Scripting a refactoring with Rascal and Eclipse
– year: 2012
  ident: 10.1016/j.scico.2016.05.003_br0280
– year: 1990
  ident: 10.1016/j.scico.2016.05.003_br0380
– volume: vol. 4533
  start-page: 36
  year: 2007
  ident: 10.1016/j.scico.2016.05.003_br0410
  article-title: Tom: piggybacking rewriting on Java
– start-page: 171
  year: 2008
  ident: 10.1016/j.scico.2016.05.003_br0590
  article-title: Static detection of cross-site scripting vulnerabilities
– start-page: 147
  year: 2005
  ident: 10.1016/j.scico.2016.05.003_br0360
  article-title: The CodeSurfer software understanding platform
– volume: vol. 8706
  start-page: 322
  year: 2014
  ident: 10.1016/j.scico.2016.05.003_br0670
  article-title: Streamlining control flow graph construction with DCFlow
SSID ssj0006471
Score 2.186317
Snippet 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...
SourceID crossref
elsevier
SourceType Enrichment Source
Index Database
Publisher
StartPage 37
SubjectTerms Dynamic languages
Empirical software engineering
Meta-programming
PHP
Program analysis
Title Enabling PHP software engineering research in Rascal
URI https://dx.doi.org/10.1016/j.scico.2016.05.003
Volume 134
WOSCitedRecordID wos000390072500004&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D
hasFullText 1
inHoldings 1
isFullTextHit
isPrint
journalDatabaseRights – providerCode: PRVESC
  databaseName: Elsevier SD Freedom Collection Journals 2021
  customDbUrl:
  eissn: 1872-7964
  dateEnd: 20180131
  omitProxy: false
  ssIdentifier: ssj0006471
  issn: 0167-6423
  databaseCode: AIEXJ
  dateStart: 19950201
  isFulltext: true
  titleUrlDefault: https://www.sciencedirect.com
  providerName: Elsevier
link http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwtV3da9swEBdbuoe9rN0X69fQQ99SD1mSZeuxlJSugxK6ruTNyLIECZlX6nTrn9-TJTlpM8o22IsJJrKF7nz3u-PudwgdpNoUnHKVgDeAAKWmKilSpRNTAbYQllBbq27YRH5-XkwmchzGpbbdOIG8aYq7O3n9X0UN90DYrnX2L8TdPxRuwG8QOlxB7HD9I8GPXDeUSwCMT8fDFqzsL1fcZZa8g8NA8NPlOi5Uq8MTA0SNX3uoN3cjH2IV1_fo57pc9XzePu72-QIvXjwuOLyaNrNb3wHiOj2HZ59WUw3gvsiDso31HhifkgRTC1GMN1PGm9EiB9wuPT95b2dD1tJbSk_1Enyuz0KuWXOfWJhBnA9fhSvDEx3LKmFL59WXFH51-3DbSB2JGJXiOdqgeSaLAdo4-jyanPX-WfgwvN935KLqqv7WXvV7vLKCQS630KsQPOAjL_TX6Jlp3qDNOJgDB8m9RTzqAAYdwFEH8IoO4KgDeNpgrwPv0LeT0eXxaRLGYyQacMciMUQWhVZVpiQVTORWZNRUMmeKSMWUlZqklnFZc2oEIDsF2JdUNa_AbKtcSfYeDZofjfmAsIsja2KZ1aTmvGYVtVYKmSrFM8p4tY1oPIRSB-54N8JkXsYiwVnZnVzpTq4kmaOc3UaH_aJrT53y9N9FPN0yoD-P6kpQh6cW7vzrwl30cqnle2iwuLk1--iF_rmYtjcfg9rcA8IIfJ8
linkProvider Elsevier
openUrl ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.atitle=Enabling+PHP+software+engineering+research+in+Rascal&rft.jtitle=Science+of+computer+programming&rft.au=Hills%2C+Mark&rft.au=Klint%2C+Paul&rft.au=Vinju%2C+Jurgen+J.&rft.date=2017-02-01&rft.pub=Elsevier+B.V&rft.issn=0167-6423&rft.eissn=1872-7964&rft.volume=134&rft.spage=37&rft.epage=46&rft_id=info:doi/10.1016%2Fj.scico.2016.05.003&rft.externalDocID=S0167642316300296
thumbnail_l http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/lc.gif&issn=0167-6423&client=summon
thumbnail_m http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/mc.gif&issn=0167-6423&client=summon
thumbnail_s http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/sc.gif&issn=0167-6423&client=summon