Path: utzoo!mnetor!uunet!seismo!sundc!pitstop!sun!amdcad!ames!pasteur!con.Berkeley.EDU!sarge From: sarge@con.Berkeley.EDU (Steven Sargent) Newsgroups: comp.lang.pascal Subject: Re: Pascal User Manual and Report Message-ID: <841@pasteur.Berkeley.Edu> Date: 18 Feb 88 15:16:44 GMT References: <169900010@uiucdcsb> Sender: news@pasteur.Berkeley.Edu Lines: 25 What do you mean by the "current definition?" I know J&W leaves it open, but who knows about ISO? (Does anybody care?) As to implementations: VAX Pascal (on VMS) uses short-circuit evaluation; Sun Pascal (descendant of Berkeley pc) uses a compile-time flag, -P, to enable short-circuit evaluation (default full evaluation); SVS Pascal (Silicon Valley Software; makes compilers for various 68000, 32000 boxes running UNIX and other stuff) uses short-circuiting in conditionals, e.g., if (p <> NIL) AND (p^.key <> key) then {don't explode} but full evaluation for assignments, e.g., found := (p <> NIL) AND (p^.key = key); {oops} Coming from C-land, short-circuit evaluation seems much more natural to me, so I don't mind that my compilers tend to use it. But it is bothersome that the behavior isn't nailed down more precisely. For an allegedly portable language, Pascal leaves a lot of important stuff to the discretion of implementors; this is just one fairly minor, but insidious, example. S.