[fpc-devel] Re: [fpc-l] type discussion

Sebastian Kaliszewski sebaska at melkor.mimuw.edu.pl
Thu Jun 2 17:13:56 CEST 2005


Michael Van Canneyt wrote:
> This is only 'logical' if the hypothesis
> 
> "productivity is inversely related to the syntax verbosity"
> 
> is correct.

And it's not.

What is correct is "productivity is directly related to the number of 
separate language constructs developer has to put in program to acomplish 
the task"


So, for example, need to put separate finally block to free memory means 
additional few constructs. Or lack of standard libary supplied container 
apropriate for a task requires programmer to develop his/her own or to adapt 
something less usable.

Geeintg rid of end in begin / end wont help much (as they can;t be 
separated, they count as single construct).


So here is some little idea which seems to me Pascalish enough to be considered:

how about new keyword: local
Class variable declared local will be automatically freed upon every exit 
from the scope (i.e. something along the lines of implicit try/finally for 
some builtin types).


And there are possibly few variants of the thing:

1a.

var
   mySth: local TSomething;

begin
   mySth := TSomething.create();
   ...

end;


1b.

var
   mySth: TSomething local;

begin
   mySth := TSomething.create();
   ...

end;


2.

local
   mySth: TSomethin;

begin
   mySth := TSomething.create();
   ...

end;



So in 1. local is just a type modifier (in case of 1a it might make sense to 
allow it also in type declaration, hence allowing allways local classes -- 
but I'm not convinced it's desirable, and it definiately requires more work 
on compiler side). 1b. is like some other storage modifiers like absolute 
(and might be prefered). 2. is substituting local instead of var for local 
objects -- so such local object declarations stand out more int the code, 
but it's also further away from standard Pascal.


Is it worth something?


rgds
-- 
Sebastian Kaliszewski




More information about the fpc-devel mailing list