Affiliation:
1. IBM Research, Tokyo Research Laboratory, Tokyo, Japan
2. University of Tsukuba, Tsukuba, Japan
Abstract
PHP is a popular language for server-side applications. In PHP, assignment to variables copies the assigned values, according to its so-called
copy-on-assignment
semantics. In contrast, a typical PHP implementation uses a
copy-on-write
scheme to reduce the copy overhead by delaying copies as much as possible. This leads us to ask if the semantics and implementation of PHP coincide, and actually this is not the case in the presence of sharings within values. In this paper, we describe the copy-on-assignment semantics with three possible strategies to copy values containing sharings. The current PHP implementation has inconsistencies with these semantics, caused by its naïve use of copy-on-write. We fix this problem by the novel
mostly copy-on-write
scheme, making the copy-on-write implementations faithful to the semantics. We prove that our copy-on-write implementations are correct, using bisimulation with the copy-on-assignment semantics.
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Cited by
6 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. PeachPie: Mature PHP to CLI compiler;Journal of Computer Languages;2022-12
2. A practical type system for safe aliasing;Proceedings of the 11th ACM SIGPLAN International Conference on Software Language Engineering;2018-10-24
3. Static optimization in PHP 7;Proceedings of the 26th International Conference on Compiler Construction;2017-02-05
4. The hiphop virtual machine;ACM SIGPLAN Notices;2014-12-31
5. An Executable Formal Semantics of PHP;ECOOP 2014 – Object-Oriented Programming;2014