Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.php > #3550
| From | Richard Damon <news.x.richarddamon@xoxy.net> |
|---|---|
| Newsgroups | comp.lang.php |
| Subject | Re: simple session question |
| Date | 2011-10-23 15:28 -0400 |
| Organization | A noiseless patient Spider |
| Message-ID | <j81pte$hth$1@dont-email.me> (permalink) |
| References | (7 earlier) <j7uh5i$rvt$2@news.albasani.net> <j7vc0i$pnr$1@dont-email.me> <j7vm55$2q5$1@news.albasani.net> <j7vpo3$af1$1@dont-email.me> <j81h8f$avd$1@news.albasani.net> |
On 10/23/11 1:00 PM, Thomas Mlynarczyk wrote: > Richard Damon schrieb: > >> The issue is C is that there is a general rule (to allow >> optimizations) that defines the behavior to be undefined if an >> expression causes a variable to be written to twice, or have a read >> from and write to (where the read from is not needed to determine the >> value to write to) without an intervening sequence point, like the end >> of an expression. > > So basically, it boils down to "programmer" vs. "compiler": The > programmer would like to have everything defined clearly, because > anything "undefined" simply means (s)he cannot use that construct. The > compiler, on the other hand, can work the better, the fewer restrictions > there are, and thus "welcomes" anything left undefined. And C focuses > more on the compiler, while PHP focuses more on the programmer. > >> The statement x = x++; has two different writes to x, so we meet the >> requirement for undefined behavior. Not also that C does not limit >> when the ++ part happens, only that this side effect will finish by >> the next sequence point. > > So in C, the statement x = x++ is regarded "as a whole" and the compiler > can do anything with it as long as certain constraints are observed, > while PHP, being a higher level language than C, must have all the tiny > internal steps well defined. > >> Part of the problem with this example is that it is a bit to simple, >> and that simplicity hides some of the issues. Let us make the >> expression just slightly more complicated to make it cleared. Let us >> use x = 5*x++; > > If I have understood you correctly, this would be > > In PHP: > [1] $tmp = $x; > [2] $x = $x + 1; > [3] $tmp = 5 * $tmp; > [4] $x = $tmp; > In exactly that order (or maybe [2] and [3] swapped as it would make no > difference). > > In C: > [TODO] RHS = 5 * (value of x before increment) > [TODO] increment x > [TODO] LHS = RHS > With the only restriction on the order being that the third item must > necessarily come after the first and it's up to the compiler to choose. > > Greetings, > Thomas > Actually, both have the same basic steps (in principle) (1) temp1 = x (2) temp2 = x (3) x = temp2 + 1 (4) temp3 = 5 * temp2 (5) x = temp3 (1 & 2 may be redundant and combined) 2,3 are the x++, 1,4,5 is the x = 5*x by necessity we need the following order (can't use a value before it is available) 1 -> 4 -> 5 2 -> 3 and by the definition of x++, 1 -> 3 PHP appears to define the order to be 1,2 -> 3 -> 4 -> 5 which means the increment of x is done tied to the fetching of the value of x. C places no additional restrictions on the order of the parts. In particular, 3 can come before or after 5, and if 3 is after 5, 2 can be before or after 5.
Back to comp.lang.php | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
simple session question cerr <ron.eggler@gmail.com> - 2011-10-21 10:44 -0700
Re: simple session question Thomas Mlynarczyk <thomas@mlynarczyk-webdesign.de> - 2011-10-21 20:19 +0200
Re: simple session question Jonathan Stein <jstein@image.dk> - 2011-10-21 20:51 +0200
Re: simple session question Thomas Mlynarczyk <thomas@mlynarczyk-webdesign.de> - 2011-10-21 22:00 +0200
Re: simple session question Jerry Stuckle <jstucklex@attglobal.net> - 2011-10-21 16:14 -0400
Re: simple session question Thomas Mlynarczyk <thomas@mlynarczyk-webdesign.de> - 2011-10-22 00:50 +0200
Re: simple session question Jerry Stuckle <jstucklex@attglobal.net> - 2011-10-21 19:05 -0400
Re: simple session question Thomas Mlynarczyk <thomas@mlynarczyk-webdesign.de> - 2011-10-22 15:40 +0200
Re: simple session question Richard Damon <news.x.richarddamon@xoxy.net> - 2011-10-22 17:19 -0400
Re: simple session question The Natural Philosopher <tnp@invalid.invalid> - 2011-10-22 22:56 +0100
Re: simple session question Thomas Mlynarczyk <thomas@mlynarczyk-webdesign.de> - 2011-10-23 00:35 +0200
Re: simple session question Tim Streater <timstreater@greenbee.net> - 2011-10-22 23:43 +0100
Re: simple session question Thomas Mlynarczyk <thomas@mlynarczyk-webdesign.de> - 2011-10-23 01:56 +0200
Re: simple session question Richard Damon <news.x.richarddamon@xoxy.net> - 2011-10-22 19:29 -0400
Re: simple session question Thomas Mlynarczyk <thomas@mlynarczyk-webdesign.de> - 2011-10-23 01:54 +0200
Re: simple session question Thomas Mlynarczyk <thomas@mlynarczyk-webdesign.de> - 2011-10-23 02:12 +0200
Re: simple session question Richard Damon <news.x.richarddamon@xoxy.net> - 2011-10-22 21:13 -0400
Re: simple session question The Natural Philosopher <tnp@invalid.invalid> - 2011-10-23 08:44 +0100
Re: simple session question Thomas Mlynarczyk <thomas@mlynarczyk-webdesign.de> - 2011-10-23 17:31 +0200
Re: simple session question The Natural Philosopher <tnp@invalid.invalid> - 2011-10-23 17:18 +0100
Re: simple session question Thomas Mlynarczyk <thomas@mlynarczyk-webdesign.de> - 2011-10-23 19:14 +0200
Re: simple session question The Natural Philosopher <tnp@invalid.invalid> - 2011-10-23 18:16 +0100
Re: simple session question Thomas Mlynarczyk <thomas@mlynarczyk-webdesign.de> - 2011-10-23 19:00 +0200
Re: simple session question Richard Damon <news.x.richarddamon@xoxy.net> - 2011-10-23 15:28 -0400
Re: simple session question Jerry Stuckle <jstucklex@attglobal.net> - 2011-10-22 23:03 -0400
Re: simple session question Thomas Mlynarczyk <thomas@mlynarczyk-webdesign.de> - 2011-10-23 19:06 +0200
Re: simple session question Jerry Stuckle <jstucklex@attglobal.net> - 2011-10-23 14:35 -0400
Re: simple session question The Natural Philosopher <tnp@invalid.invalid> - 2011-10-22 00:32 +0100
Re: simple session question Luuk <Luuk@invalid.lan> - 2011-10-22 12:01 +0200
Re: simple session question The Natural Philosopher <tnp@invalid.invalid> - 2011-10-22 15:27 +0100
Re: simple session question The Natural Philosopher <tnp@invalid.invalid> - 2011-10-22 15:37 +0100
Re: simple session question Luuk <Luuk@invalid.lan> - 2011-10-22 17:08 +0200
OT: and even in Dart .........Re: simple session question Luuk <Luuk@invalid.lan> - 2011-10-22 17:17 +0200
Re: OT: and even in Dart .........Re: simple session question The Natural Philosopher <tnp@invalid.invalid> - 2011-10-22 16:54 +0100
Re: OT: and even in Dart .........Re: simple session question Luuk <Luuk@invalid.lan> - 2011-10-22 18:47 +0200
Re: OT: and even in Dart .........Re: simple session question Thomas Mlynarczyk <thomas@mlynarczyk-webdesign.de> - 2011-10-22 19:34 +0200
Re: OT: and even in Dart .........Re: simple session question Norman Peelman <npeelmandog@cfl.rr.com> - 2011-10-22 16:08 -0400
Re: OT: and even in Dart .........Re: simple session question Jerry Stuckle <jstucklex@attglobal.net> - 2011-10-22 16:28 -0400
Re: OT: and even in Dart .........Re: simple session question Thomas Mlynarczyk <thomas@mlynarczyk-webdesign.de> - 2011-10-23 01:39 +0200
Re: OT: and even in Dart .........Re: simple session question Norman Peelman <npeelmandog@cfl.rr.com> - 2011-10-22 22:40 -0400
Re: OT: and even in Dart .........Re: simple session question Jerry Stuckle <jstucklex@attglobal.net> - 2011-10-22 23:05 -0400
Re: OT: and even in Dart .........Re: simple session question The Natural Philosopher <tnp@invalid.invalid> - 2011-10-22 22:52 +0100
Re: OT: and even in Dart .........Re: simple session question Thomas Mlynarczyk <thomas@mlynarczyk-webdesign.de> - 2011-10-23 01:25 +0200
Re: OT: and even in Dart .........Re: simple session question The Natural Philosopher <tnp@invalid.invalid> - 2011-10-23 08:41 +0100
Re: OT: and even in Dart .........Re: simple session question Thomas Mlynarczyk <thomas@mlynarczyk-webdesign.de> - 2011-10-23 00:56 +0200
Re: OT: and even in Dart .........Re: simple session question Norman Peelman <npeelmandog@cfl.rr.com> - 2011-10-22 22:52 -0400
Re: OT: and even in Dart .........Re: simple session question Thomas Mlynarczyk <thomas@mlynarczyk-webdesign.de> - 2011-10-23 17:12 +0200
Re: OT: and even in Dart .........Re: simple session question Tim Streater <timstreater@greenbee.net> - 2011-10-23 09:39 +0100
Re: OT: and even in Dart .........Re: simple session question The Natural Philosopher <tnp@invalid.invalid> - 2011-10-23 09:40 +0100
Re: OT: and even in Dart .........Re: simple session question Tim Streater <timstreater@greenbee.net> - 2011-10-23 09:43 +0100
Re: OT: and even in Dart .........Re: simple session question "Peter H. Coffin" <hellsop@ninehells.com> - 2011-11-05 15:04 -0500
Re: OT: and even in Dart .........Re: simple session question The Natural Philosopher <tnp@invalid.invalid> - 2011-10-22 22:47 +0100
Re: OT: and even in Dart .........Re: simple session question Thomas Mlynarczyk <thomas@mlynarczyk-webdesign.de> - 2011-10-23 01:22 +0200
Re: OT: and even in Dart .........Re: simple session question The Natural Philosopher <tnp@invalid.invalid> - 2011-10-23 08:40 +0100
Re: OT: and even in Dart .........Re: simple session question Thomas Mlynarczyk <thomas@mlynarczyk-webdesign.de> - 2011-10-23 17:04 +0200
Re: OT: and even in Dart .........Re: simple session question "Peter H. Coffin" <hellsop@ninehells.com> - 2011-11-05 15:00 -0500
Re: simple session question Thomas Mlynarczyk <thomas@mlynarczyk-webdesign.de> - 2011-10-22 15:39 +0200
Re: simple session question cerr <ron.eggler@gmail.com> - 2011-10-21 14:43 -0700
Re: simple session question Thomas Mlynarczyk <thomas@mlynarczyk-webdesign.de> - 2011-10-22 00:47 +0200
Re: simple session question Jerry Stuckle <jstucklex@attglobal.net> - 2011-10-21 19:06 -0400
Re: simple session question cerr <ron.eggler@gmail.com> - 2011-10-21 14:17 -0700
Re: simple session question Thomas Mlynarczyk <thomas@mlynarczyk-webdesign.de> - 2011-10-22 15:50 +0200
Re: simple session question Denis McMahon <denismfmcmahon@gmail.com> - 2011-10-23 15:47 +0000
csiph-web