home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #19 / NN_1992_19.iso / spool / comp / lang / rexx / 854 < prev    next >
Encoding:
Text File  |  1992-09-01  |  3.6 KB  |  89 lines

  1. Newsgroups: comp.lang.rexx
  2. Path: sparky!uunet!mcsun!sunic!sejnet.sunet.se!eric
  3. From: eric@sejnet.sunet.se (Eric Thomas)
  4. Subject: Re:      Re: Blanks, REXX, and portability...
  5. Message-ID: <1992Sep1.165241.1@sejnet.sunet.se>
  6. Lines: 76
  7. Sender: news@sunic.sunet.se
  8. Reply-To: ERIC@SEARN.SUNET.SE
  9. Organization: SUNET, Stockholm, Sweden
  10. References: <9208310858.AA28086@SERVER.uwindsor.ca>
  11. Date: Tue, 1 Sep 1992 16:52:41 GMT
  12.  
  13. In article <9208310858.AA28086@SERVER.uwindsor.ca>,         Scott Ophof <ophof@SERVER.UWINDSOR.CA> writes:
  14. > Question:
  15. > How much breakage would occur if the double quotes retained that
  16. > meaning, but the single quotes were to allow interpretation to some
  17. > extent?  In other words:
  18. >       Parse var data a b . " A("
  19. > means "ASCII '20'X followed by 'A('".
  20. > But:
  21. >       Parse var data a b . ' A('
  22. > means "one whitespace followed by 'A('".
  23.  
  24. A lot of breakage would occur, I know people who use double quotes all the time
  25. (because they are used to C) while I always use single quotes, except that I
  26. might use double quotes for a message text which contains a single quote, and I
  27. also use double quotes for INTERPRET.
  28.  
  29. Regardless of compatibility with existing programs and of the fact that it
  30. would require major reworks of the internals of the interpreters, it is simply
  31. impossible to do without violating one of the cornerstones of REXX (the single
  32. data type) and turning the language into a factory. Consider:
  33.  
  34.    Pos(" A(",text) -> literal
  35.    Pos(' A(',text) -> interpreted
  36.    Pos("I'm a" 'double quote (")',text) -> ???
  37.    Pos(Pattern(a,b),text) -> ???
  38.    a = " A("; Pos(a, text) -> ???
  39.  
  40. The list is endless. REXX has no data type, so the interpreter cannot know what
  41. kind of literal type an argument has.
  42.  
  43. >>It is a fact that most non-EBCDIC systems use tabs in source code, and won't
  44. >>change their minds just because of REXX. So REXX interpreters running on ASCII
  45. >>systems should accept tabs as valid white space delimiters in source code.
  46. > What happens when John copies this source program to a system that
  47. > does NOT recognize tab as whitespace, and gives it to Jack to test,
  48. > without telling him it comes from an ASCII system?
  49.  
  50. Jack does XEDIT FOO REXX, sets tabs to his liking, EXPAND * and FILE. That's
  51. one answer. Another answer is that it doesn't matter, since John's unix program
  52. is extremely unlikely to run under VM or MVS anyway. I think I own 2 programs
  53. which will work on any system, one makes calculations on dates and the other
  54. parses mail headers. No wait, the second one requires Pull/Queue, so it won't
  55. work everywhere.
  56.  
  57. >>A tab in a quoted string is a tab, not a blank, just like in C and other unix
  58. >>languages.                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  59. >  ^^^^^^^^^
  60. > Are you *100%* *SURE* of this?
  61.  
  62. main()
  63. {
  64.     char *s;
  65.     s = "    "; /* tab */
  66.     printf("%X\n", *s);
  67.     return(1);
  68. }
  69.  
  70. Prints 9. Compiled with GCC, not a DEC compiler you could accuse of being
  71. un-unixish. The author of GCC refers to VMS as "Vomit Making System" and can
  72. hardly be accused of admiring DEC conventions and standards.
  73.  
  74. > I claim that with a nice set of functions translating the relevant
  75. > system commands to a standardised REXX I/O, portability *is* *very*
  76. > definitely relevant.
  77.  
  78. Ok Scott, say I give you a unix playstation with a copy of the source code for
  79. LISTSERV (25-30k lines of REXX), and pay you by the hour to make it work under
  80. unix. How much money will I save if I give you a REXX interpreter to make the
  81. conversion easier?
  82.  
  83. The answer is I'll lose money, because it will take you about 1-2 months to
  84. realize it is much faster to rewrite everything in C than to try to reuse the
  85. REXX code with the interpreter.
  86.  
  87.   Eric
  88.