[fpc-devel] Porting FPC to IBM zArch

Mark Morgan Lloyd markMLl.fpc-devel at telemetry.co.uk
Wed Jul 24 14:18:42 CEST 2013

Sven Barth wrote:
> Am 24.07.2013 12:37, schrieb Mark Morgan Lloyd:
>> Jonas Maebe wrote:
>>> On 24 Jul 2013, at 03:41, Bernd Oppolzer wrote:
>>>> - Stanford Pascal (my version) allows (. .) and (/ /) as substitutes 
>>>> for [ ]
>>> FPC also supports (. and .). It doesn't support (/ and /) though. 
>>> Support for that could maybe be added under a new syntax mode or mode 
>>> switch switch, but is this a common syntax? I've never heard of that 
>>> one before.
>> I'd suggest avoiding (/ /) as comments.
>> Vector Pascal allows e.g. \+ as a reduction-addition operator, if FPC 
>> ever considered implementing anything like this it would be desirable 
>> to have \ and / unencumbered.
>> http://www.dcs.gla.ac.uk/%7Ewpc/reports/compilers/compilerindex/vp-ver2.html 
> Hmm... I like the idea of array operators :) Could be added as an 
> additional modeswitch to avoid backwards compatibility problems with 
> overloaded operators for arrays...

APL- where a lot of this comes from- uses / for reduction (knocks a 
dimension off, e.g. the total of the numbers in a list) and \ for scan 
(e.g. the running total of a list). I think it's desirable to avoid \ 
because of its legacy as an escape in unix, some sort of efficient 
reduction is obviously a bit of a hot topic because of Google 
"map-reduce" etc.

With the compiler as it stands, I've been able to define e.g. <variant> 
+ <dynamic array>, define a variant constant "reduce", and then do e.g. 
  a := reduce + b  where b is an array. Which was all fine except that 
(at least when I last looked) there wasn't a compact notation for 
initialising a dynamic array, i.e. no  b := (1, 2, 3, 4).

Mark Morgan Lloyd
markMLl .AT. telemetry.co .DOT. uk

[Opinions above are the author's, not those of his employers or colleagues]

More information about the fpc-devel mailing list