[fpc-pascal] A question or two regarding the FPC

Mehmet Erol Sanliturk sanliturk at ttmail.com
Sat May 9 03:58:32 CEST 2009


fpclist at silvermono.co.za wrote:
> Hi guys,
>
> Over the last few years, I have written hundreds of thousands of lines of 
> object pascal code that compiles successfully using the FPC and Delphi. To 
> date, I have not encountered any problems with the code generated by the 
> FP Linux compiler. I don't have much experience with FPC within the MS Windows 
> environment as my current interest lies in developing console Linux apps.
>
> Like most developers, I strive to write code that is as bug free as possible 
> and at the end of each day, I'm left with a feeling of great satisfaction and 
> achievment.
>
> IMO and experience, the code generated by the FPC is as resilient as the 
> operating system it runs on. 
>
> My question is directed to the FPC team and in particular, to those involved 
> in the development of the compiler and more specific, the Linux compiler. (I 
> would expect that Florian would have a say here).
>
> In your opinion, how would you rate the suitability of the FPC generated code 
> for use in an environment where there is near zero tolorance to failure? 
> Consider the question assuming that the ideal condition where that the source 
> code is as close to being perfect as possible, (and I'm not suggesting that 
> this perfect code would be written by me. I'm not that good).
>
> ...
>
> Regards,
> Nino
>
>   

Actually this is a very difficult question to answer properly .
As a very productive program writer since ( approximately ) 1973
I can say that the problem has a significant number of parameters
to consider such as :

- Specifications about software
- Algorithm design of the software by the programmer
- Used language constructs of selected compiler
- Compiler itself
- Libraries used by the compiler
- Operating system
- Testing the developed software
- Hardware running the software
- and others ...

There is a definition that reliability of a system can not be greater 
than  its reliability of weakest
component ( having minimum reliability ) .

All of the above components and other unspecified components will 
comprise a system as a whole .

When considering FPC :

- There are internal error points generated during run time triggered by 
the user program .
   It is necessary to write programs which avoid those points ( if 
possible ) .

   For an error free program , FPC generates very good code with the 
reminder that all of the    
   software may contain bugs and an exhaustive  test of FPC to generate 
a fault-tolerant compiler  
   may require combinatorial  steps which is beyond the existing 
capabilities .

   In that respect ADA could not be adopted widely because its 
compilation depended on C compilers which they ( C compilers ) are not 
conforming to ADA specifications .

- FPC is NOT compliant to Delphi ( a very obvious feature , at least FPC 
is for cross-platform whereas Delphi is only for Windows platform ) .
A program compiled and working perfectly in one of them is not a 
guarantee that it will work perfectly when compiled by the other .

- FPC ( and Lazarus are ) is  using  external libraries such as GTK  
and/or QT  which those are beyond of  FPC team control .  Bugs in FPC ( 
and Lazarus ) are corrected promptly by generating a very good work by 
the FPC teams , but other libraries have their own development teams and
work schedules .

Since May 2008 I am trying to learn FPC as much as possible . Nearly all 
of my problems are caused by the  libraries  used  , NOT  by the FPC 
itself  ( except a few )  .

-  It is necessary to write programs to handle run-time exceptions 
properly . Compiler can not do anything much about that . A ( try ... 
except raise exception ) structure may have disastrous effects on  
outcome of a program when it is run when a life-critical system is 
controlled by such a program . The program should be designed properly 
to handle such situations without  causing  disasters .
For example , in an airplane  fall-down  many years before ( 
approximately 110 deaths ) it has
been found that in the automatic pilot software an error situation used 
a STOP statement . During landing it caused release of control of the 
airplane by the automatic pilot ( then the related company   had 
discontinued  the software  automatic pilot and reverted to mechanical  
control  )  .

These are my ( partial ) opinions about the above question .

Thank you very much .

Mehmet Erol Sanliturk
















More information about the fpc-pascal mailing list