2014
DOI: 10.1007/978-3-662-44202-9_23
|View full text |Cite
|
Sign up to set email alerts
|

An Executable Formal Semantics of PHP

Abstract: Abstract. PHP is among the most used languages for server-side scripting. Although substantial effort has been spent on the problem of automatically analysing PHP code, vulnerabilities remain pervasive in web applications, and analysis tools do not provide any formal guarantees of soundness or coverage. This is partly due to the lack of a precise specification of the language, which is highly dynamic and often exhibits subtle behaviour. We present the first formal semantics for a substantial core of PHP, based… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
31
0

Year Published

2015
2015
2022
2022

Publication Types

Select...
5
2
1

Relationship

0
8

Authors

Journals

citations
Cited by 33 publications
(31 citation statements)
references
References 28 publications
0
31
0
Order By: Relevance
“…Both C and PHP have recently been given formal semantics [20,22]. Like the authors of the C and PHP semantics, and many others, we firmly believe that programming languages must have formal semantics.…”
Section: Introductionmentioning
confidence: 80%
“…Both C and PHP have recently been given formal semantics [20,22]. Like the authors of the C and PHP semantics, and many others, we firmly believe that programming languages must have formal semantics.…”
Section: Introductionmentioning
confidence: 80%
“…The K denitions of the three languages that we use (i.e., IMP, SIMPLE, and KOOL) have dierent sizes and they capture some essential features that can be found in programming languages today. Besides these examples, our tool can be used for real-life language denitions too (see, for instance, PHP [15]). …”
Section: Kool: Testing Virtual Methods Calls On Listsmentioning
confidence: 99%
“…Our purpose is to automatically generate, from a formal denition of any language, a symbolic semantics capable of symbolically executing programs in that language, and to provide users with means for building their applications on top of our tool. For instance, our symbolic execution was used in combination with the K model-checker for verifying some LTL properties over PHP programs [15]. Formal verication of programs based on deductive methods is also currently being built on top of our tool [21].…”
Section: The Implementation Of the Toolmentioning
confidence: 99%
“…There are four major large language semantics defined in K so far, which served as a great source of inspiration for our JavaScript semantics: C [15], PHP [16], Python [24], and Java [4]. All these semantics are executable and they have been validated by a large volume of tests, and demonstrated useful through formal analysis tools produced by the K framework, same like our KJS.…”
Section: Other Large Language Semantics In Kmentioning
confidence: 99%
“…Filaretti and Maffeis [16] defined a formal semantics of PHP. Since, unlike for JavaScript, C and Java, there is no official language standard for PHP, they had to heavily rely on testing against the reference implementation.…”
Section: Other Large Language Semantics In Kmentioning
confidence: 99%