Re: RDS vs. I4GL (was: How to read Flat files from 4gl)
Posted in 1995
[Cathy Kipp (ckipp@vth1.vth.colostate.edu) wrote] [good stuff snipped] > ->This is the one you have to watch out for though. It's been my > ->experience, (although long ago), that RDS-4GL and i4gl don't always > ->behave the same. Same code, maybe, but not always the same results. > The same 4gl code should theoretically produce the same runtime behavior > in either r4gl or i4gl. When we switched from r4gl to i4gl we did find > that the versions we were working with were not bug for bug compatible. > Ignoring bugs, r4gl initializes your variables for you and i4gl doesn't, > so this is defintely something to look out for. The two major differences between runner-interpreted 4gl code (r4gl) and executable 4gl code (i4gl, c4gl) is: 1) r4gl will initialize all variables for you (global, module *and* local scope). i4gl, cg4l will initalize only global and module scope variables. It will *not* initalize local scope variables. Therefore it is up to the programmer to initialize them him/herself. 2) r4gl will do bounds checking on variables. c4gl and i4gl will not. If you programmatically overrun the bound of your variables in r4gl, no harm done. But if you do it in c4gl/i4gl, you will either over- write whatever is stored in memory next to it or you will try to write to storage that you can't get to (segmentation violation). -- +------------------------------------------------------------------------+ | Bob Payne, Systems Engineer Internet: bobp@dev.dsc.dalsys.com | | Dallas Systems Corporation Personal: bpayne@netcom.com | | 12740 Hillcrest Road Voice: (214) 383-2238 | | Dallas, TX 75043 Fax: (214) 788-4208 | +------------------------------------------------------------------------+