- Pascal to Component Pascal translator & Name Translation & Character Translation to Unicode

From: CFB Software <"CFB>
Date: Tue, 25 Oct 2005 10:56:40 +0930

----boundary-LibPST-iamunique-832433964_-_-
Content-type: text/plain

> From: blackbox{([at]})nowhere.xy
> Behalf Of collection
> Sent: Saturday, 22 October 2005 4:50 PM

Hi Helmut,

Thank you for your feedback.

> it is a typical Benchmark problem that some relevant topics
> are not compared.

True - it only claims to highlight what P2O does which Tp2cp doesn't -
not vice versa. Since then I have extended it to convert more WITH
statements. The WITH variable can now be any simple global variable, or
local variable (including parameters). Also, nested WITHs of the form
'WITH v1, v2, ... DO' are handled correctly. What it doesn't do is
handle with statements involving elements of structured variables, e.g.

  WITH xyz[99].abc DO

>
> The most important topic is comments inside programs. Tp2cp
> passes all comments from the source to the translated result.
> What does P20 do with comments?

P2O passes all comments. Note that Jensen & Wirth Pascal / IS0 7185
Standard Pascal does not allow nested comments. I have also implemented
the code to handle nested comments but this is commented out for now.

> The second important topic is the name translations and
> adding subsystem names. Suppose you have to translate a
> bigger project with a lot of Units (MODULEs) and you would
> like to have the result into the same subsystem.

This is not within the scope of P2O because Jensen & Wirth Pascal / IS0
7185 Standard Pascal does not include units / modules.

Modular compilation did not appear in Standard Pascal (ISO 10206) until
1990, about a decade after it was implemented in UCSD Pascal and five
years after Turbo Pascal. Consequently, each Pascal dialect has their
own different way of doing things. Standard Pascal uses keywords like
MODULE, IMPORT and EXPORT which are closer to Modula-2 than many
extended Pascals.

P2O was not intended to be a Turbo Pascal translator - I would recommend
Tp2cp to anybody who has Turbo Pascal code that they want to convert.

I first mentioned P2O as I was considering extending it to support
Delphi (the language formerly known as Object Pascal), but the more I
think about it, the less I like the idea. Although Delphi would have to
be the most widely used dialect of Pascal in existence today, most
Delphi programs would have considerable dependence on the VCL (i.e.
Delphi's equivalent of the BlackBox framework). Porting code then
becomes more an issue of matching / redesigning API / Framework calls
than a straightforward translation effort.

> An other topic is the character translations. Old Turbo
> Pascal uses the IBM-PC extended ASCII character set. I can
> translate this character set with module 4 to Unicode but the
> result is not working. See my last email via Black Box
> Mailing list. Have P20 a character translations?

No. I may be wrong, but I don't believe it is relevant when translating
existing Jensen & Wirth / Standard Pascal source code.

In summary, P2O's key features are:

1. Translates Jensen & Wirth / ISO 7185 Standard Pascal source code.
2. It is self-contained i.e. does not require any support programs to
perform its task.
2. BlackBox and Gardens Point Component Pascal versions have been
implemented.
3. GPCP enables it to potentially to be run on Linux and the Mac as well
as Windows.

Chris Burrows
CFB Software
http://www.cfbsoftware.com/gpcp

--- BlackBox
--- send subject HELP or UNSUBSCRIBE to blackbox{([at]})nowhere.xy



----boundary-LibPST-iamunique-832433964_-_-
Content-type: application/rtf
Content-transfer-encoding: base64
Content-Disposition: attachment; filename="rtf-body.rtf"

e1xydGYxXGFuc2lcYW5zaWNwZzEyNTJcZnJvbXRleHQgXGRlZmYwe1xmb250dGJsDQp7XGYwXGZz
d2lzcyBBcmlhbDt9DQp7XGYxXGZtb2Rlcm4gQ291cmllciBOZXc7fQ0Ke1xmMlxmbmlsXGZjaGFy
c2V0MiBTeW1ib2w7fQ0Ke1xmM1xmbW9kZXJuXGZjaGFyc2V0MCBDb3VyaWVyIE5ldzt9fQ0Ke1xj
b2xvcnRibFxyZWQwXGdyZWVuMFxibHVlMDtccmVkMFxncmVlbjBcYmx1ZTI1NTt9DQpcdWMxXHBh
cmRccGxhaW5cZGVmdGFiMzYwIFxmMFxmczIwID4gRnJvbTogYmxhY2tib3hAb2Jlcm9uLmNoIFtt
YWlsdG86YmxhY2tib3hAb2Jlcm9uLmNoXSBPbiBccGFyDQo+IEJlaGFsZiBPZiBjb2xsZWN0aW9u
XHBhcg0KPiBTZW50OiBTYXR1cmRheSwgMjIgT2N0b2JlciAyMDA1IDQ6NTAgUE1ccGFyDQpccGFy
DQpIaSBIZWxtdXQsXHBhcg0KXHBhcg0KVGhhbmsgeW91IGZvciB5b3VyIGZlZWRiYWNrLlxwYXIN
ClxwYXINCj4gaXQgaXMgYSB0eXBpY2FsIEJlbmNobWFyayBwcm9ibGVtIHRoYXQgc29tZSByZWxl
dmFudCB0b3BpY3MgXHBhcg0KPiBhcmUgbm90IGNvbXBhcmVkLiBccGFyDQpccGFyDQpUcnVlIC0g
aXQgb25seSBjbGFpbXMgdG8gaGlnaGxpZ2h0IHdoYXQgUDJPIGRvZXMgd2hpY2ggVHAyY3AgZG9l
c24ndCAtXHBhcg0Kbm90IHZpY2UgdmVyc2EuIFNpbmNlIHRoZW4gSSBoYXZlIGV4dGVuZGVkIGl0
IHRvIGNvbnZlcnQgbW9yZSBXSVRIXHBhcg0Kc3RhdGVtZW50cy4gVGhlIFdJVEggdmFyaWFibGUg
Y2FuIG5vdyBiZSBhbnkgc2ltcGxlIGdsb2JhbCB2YXJpYWJsZSwgb3JccGFyDQpsb2NhbCB2YXJp
YWJsZSAoaW5jbHVkaW5nIHBhcmFtZXRlcnMpLiBBbHNvLCBuZXN0ZWQgV0lUSHMgb2YgdGhlIGZv
cm1ccGFyDQonV0lUSCB2MSwgdjIsIC4uLiBETycgYXJlIGhhbmRsZWQgY29ycmVjdGx5LiBXaGF0
IGl0IGRvZXNuJ3QgZG8gaXNccGFyDQpoYW5kbGUgd2l0aCBzdGF0ZW1lbnRzIGludm9sdmluZyBl
bGVtZW50cyBvZiBzdHJ1Y3R1cmVkIHZhcmlhYmxlcywgZS5nLiBccGFyDQpccGFyDQogIFdJVEgg
eHl6Wzk5XS5hYmMgRE9ccGFyDQpccGFyDQo+IFxwYXINCj4gVGhlIG1vc3QgaW1wb3J0YW50IHRv
cGljIGlzIGNvbW1lbnRzIGluc2lkZSBwcm9ncmFtcy4gVHAyY3AgXHBhcg0KPiBwYXNzZXMgYWxs
IGNvbW1lbnRzIGZyb20gdGhlIHNvdXJjZSB0byB0aGUgdHJhbnNsYXRlZCByZXN1bHQuIFxwYXIN
Cj4gV2hhdCBkb2VzIFAyMCBkbyB3aXRoIGNvbW1lbnRzPyBccGFyDQpccGFyDQpQMk8gcGFzc2Vz
IGFsbCBjb21tZW50cy4gTm90ZSB0aGF0IEplbnNlbiAmIFdpcnRoIFBhc2NhbCAvIElTMCA3MTg1
XHBhcg0KU3RhbmRhcmQgUGFzY2FsIGRvZXMgbm90IGFsbG93IG5lc3RlZCBjb21tZW50cy4gSSBo
YXZlIGFsc28gaW1wbGVtZW50ZWRccGFyDQp0aGUgY29kZSB0byBoYW5kbGUgbmVzdGVkIGNvbW1l
bnRzIGJ1dCB0aGlzIGlzIGNvbW1lbnRlZCBvdXQgZm9yIG5vdy5ccGFyDQpccGFyDQo+IFRoZSBz
ZWNvbmQgaW1wb3J0YW50IHRvcGljIGlzIHRoZSBuYW1lIHRyYW5zbGF0aW9ucyBhbmQgXHBhcg0K
PiBhZGRpbmcgc3Vic3lzdGVtIG5hbWVzLiBTdXBwb3NlIHlvdSBoYXZlIHRvIHRyYW5zbGF0ZSBh
IFxwYXINCj4gYmlnZ2VyIHByb2plY3Qgd2l0aCBhIGxvdCBvZiBVbml0cyAoTU9EVUxFcykgYW5k
IHlvdSB3b3VsZCBccGFyDQo+IGxpa2UgdG8gaGF2ZSB0aGUgcmVzdWx0IGludG8gdGhlIHNhbWUg
c3Vic3lzdGVtLiBccGFyDQpccGFyDQpUaGlzIGlzIG5vdCB3aXRoaW4gdGhlIHNjb3BlIG9mIFAy
TyBiZWNhdXNlIEplbnNlbiAmIFdpcnRoIFBhc2NhbCAvIElTMFxwYXINCjcxODUgU3RhbmRhcmQg
UGFzY2FsIGRvZXMgbm90IGluY2x1ZGUgdW5pdHMgLyBtb2R1bGVzLlxwYXINClxwYXINCk1vZHVs
YXIgY29tcGlsYXRpb24gZGlkIG5vdCBhcHBlYXIgaW4gU3RhbmRhcmQgUGFzY2FsIChJU08gMTAy
MDYpIHVudGlsXHBhcg0KMTk5MCwgYWJvdXQgYSBkZWNhZGUgYWZ0ZXIgaXQgd2FzIGltcGxlbWVu
dGVkIGluIFVDU0QgUGFzY2FsIGFuZCBmaXZlXHBhcg0KeWVhcnMgYWZ0ZXIgVHVyYm8gUGFzY2Fs
LiBDb25zZXF1ZW50bHksIGVhY2ggUGFzY2FsIGRpYWxlY3QgaGFzIHRoZWlyXHBhcg0Kb3duIGRp
ZmZlcmVudCB3YXkgb2YgZG9pbmcgdGhpbmdzLiBTdGFuZGFyZCBQYXNjYWwgdXNlcyBrZXl3b3Jk
cyBsaWtlXHBhcg0KTU9EVUxFLCBJTVBPUlQgYW5kIEVYUE9SVCB3aGljaCBhcmUgY2xvc2VyIHRv
IE1vZHVsYS0yIHRoYW4gbWFueVxwYXINCmV4dGVuZGVkIFBhc2NhbHMuXHBhcg0KXHBhcg0KUDJP
IHdhcyBub3QgaW50ZW5kZWQgdG8gYmUgYSBUdXJibyBQYXNjYWwgdHJhbnNsYXRvciAtIEkgd291
bGQgcmVjb21tZW5kXHBhcg0KVHAyY3AgdG8gYW55Ym9keSB3aG8gaGFzIFR1cmJvIFBhc2NhbCBj
b2RlIHRoYXQgdGhleSB3YW50IHRvIGNvbnZlcnQuIFxwYXINClxwYXINCkkgZmlyc3QgbWVudGlv
bmVkIFAyTyBhcyBJIHdhcyBjb25zaWRlcmluZyBleHRlbmRpbmcgaXQgdG8gc3VwcG9ydFxwYXIN
CkRlbHBoaSAodGhlIGxhbmd1YWdlIGZvcm1lcmx5IGtub3duIGFzIE9iamVjdCBQYXNjYWwpLCBi
dXQgdGhlIG1vcmUgSVxwYXINCnRoaW5rIGFib3V0IGl0LCB0aGUgbGVzcyBJIGxpa2UgdGhlIGlk
ZWEuIEFsdGhvdWdoIERlbHBoaSB3b3VsZCBoYXZlIHRvXHBhcg0KYmUgdGhlIG1vc3Qgd2lkZWx5
IHVzZWQgZGlhbGVjdCBvZiBQYXNjYWwgaW4gZXhpc3RlbmNlIHRvZGF5LCBtb3N0XHBhcg0KRGVs
cGhpIHByb2dyYW1zIHdvdWxkIGhhdmUgY29uc2lkZXJhYmxlIGRlcGVuZGVuY2Ugb24gdGhlIFZD
TCAoaS5lLlxwYXINCkRlbHBoaSdzIGVxdWl2YWxlbnQgb2YgdGhlIEJsYWNrQm94IGZyYW1ld29y
aykuIFBvcnRpbmcgY29kZSB0aGVuXHBhcg0KYmVjb21lcyBtb3JlIGFuIGlzc3VlIG9mIG1hdGNo
aW5nIC8gcmVkZXNpZ25pbmcgQVBJIC8gRnJhbWV3b3JrIGNhbGxzXHBhcg0KdGhhbiBhIHN0cmFp
Z2h0Zm9yd2FyZCB0cmFuc2xhdGlvbiBlZmZvcnQuXHBhcg0KXHBhcg0KPiBBbiBvdGhlciB0b3Bp
YyBpcyB0aGUgY2hhcmFjdGVyIHRyYW5zbGF0aW9ucy4gT2xkIFR1cmJvIFxwYXINCj4gUGFzY2Fs
IHVzZXMgdGhlIElCTS1QQyBleHRlbmRlZCBBU0NJSSBjaGFyYWN0ZXIgc2V0LiBJIGNhbiBccGFy
DQo+IHRyYW5zbGF0ZSB0aGlzIGNoYXJhY3RlciBzZXQgd2l0aCBtb2R1bGUgNCB0byBVbmljb2Rl
IGJ1dCB0aGUgXHBhcg0KPiByZXN1bHQgaXMgbm90IHdvcmtpbmcuIFNlZSBteSBsYXN0IGVtYWls
IHZpYSBCbGFjayBCb3ggXHBhcg0KPiBNYWlsaW5nIGxpc3QuIEhhdmUgUDIwIGEgY2hhcmFjdGVy
IHRyYW5zbGF0aW9ucz8gXHBhcg0KXHBhcg0KTm8uIEkgbWF5IGJlIHdyb25nLCBidXQgSSBkb24n
dCBiZWxpZXZlIGl0IGlzIHJlbGV2YW50IHdoZW4gdHJhbnNsYXRpbmdccGFyDQpleGlzdGluZyBK
ZW5zZW4gJiBXaXJ0aCAvIFN0YW5kYXJkIFBhc2NhbCBzb3VyY2UgY29kZS4gXHBhcg0KXHBhcg0K
SW4gc3VtbWFyeSwgUDJPJ3Mga2V5IGZlYXR1cmVzIGFyZTpccGFyDQpccGFyDQoxLiBUcmFuc2xh
dGVzIEplbnNlbiAmIFdpcnRoIC8gSVNPIDcxODUgU3RhbmRhcmQgUGFzY2FsIHNvdXJjZSBjb2Rl
LlxwYXINCjIuIEl0IGlzIHNlbGYtY29udGFpbmVkIGkuZS4gZG9lcyBub3QgcmVxdWlyZSBhbnkg
c3VwcG9ydCBwcm9ncmFtcyB0b1xwYXINCnBlcmZvcm0gaXRzIHRhc2suXHBhcg0KMi4gQmxhY2tC
b3ggYW5kIEdhcmRlbnMgUG9pbnQgQ29tcG9uZW50IFBhc2NhbCB2ZXJzaW9ucyBoYXZlIGJlZW5c
cGFyDQppbXBsZW1lbnRlZC4gXHBhcg0KMy4gR1BDUCBlbmFibGVzIGl0IHRvIHBvdGVudGlhbGx5
IHRvIGJlIHJ1biBvbiBMaW51eCBhbmQgdGhlIE1hYyBhcyB3ZWxsXHBhcg0KYXMgV2luZG93cy5c
cGFyDQpccGFyDQpDaHJpcyBCdXJyb3dzXHBhcg0KQ0ZCIFNvZnR3YXJlXHBhcg0KaHR0cDovL3d3
dy5jZmJzb2Z0d2FyZS5jb20vZ3BjcFxwYXINClxwYXINCi0tLSBCbGFja0JveFxwYXINCi0tLSBz
ZW5kIHN1YmplY3QgSEVMUCBvciBVTlNVQlNDUklCRSB0byBibGFja2JveEBvYmVyb24uY2hccGFy
DQpccGFyDQp9


----boundary-LibPST-iamunique-832433964_-_---
Received on Tue Oct 25 2005 - 03:26:40 UTC

This archive was generated by hypermail 2.3.0 : Thu Sep 26 2013 - 06:28:07 UTC