Path: utzoo!utgpu!watmath!iuvax!rutgers!elbereth.rutgers.edu!hardees.rutgers.edu!patterso
From: patterso@hardees.rutgers.edu (Ross Patterson)
Newsgroups: comp.lang.rexx
Subject: Re: AREXX vs REXX
Message-ID: 
Date: 17 Aug 89 02:09:17 GMT
References: <7841@ardent.UUCP> 
Distribution: comp.lang.rexx
Organization: Rutgers Univ., CCIS
Lines: 76

Back at home now, I've had a chance to check Cowlishaw's book. He details
the differences between 370 REXX and his definition in Part 3, Section 5.
The 370 implementation differs in that:

	1) Literal strings are allowed to cross line boundaries.

	2) There is no WordPos() function. Instead, there is a Find()
	   function that takes the arguments reversed (but lacks a "start"
	   argument.

	3) The Time() function doesn't accept the "Civil" or "Normal"
	   options. [remedied in VM/SP release 6]

	4) The Date() function doesn't accept the "Normal" option. [also
	   remedied in VM/SP 6]

	5) The Verify() function doesn't accept the "NoMatch" option,
	   although it is the default action.

	6) SIGNAL ON FAILURE and TRACE FAILURE are not implemented.
	   [remedied in VM/SP 6]

	7) NUMERIC FORM doesn't accept the VALUE option, and the Digits(),
	   Form() and Fuzz() functions aren't implemented.

	8) "\" isn't a "not sign" (the EBCDIC not sign is used instead).

	9) "==" and "\==" are the only implemented strict comparison
	   operators.

	10) The CharIn(), CharOut(), Chars(), LineIn(), and LineOut()
	    functions aren't implemented. Lines() is implemented as
	    Externals(), and PARSE LINEIN is implmented as PARSE EXTERNAL.

	11) Several functions are included that the language doesn't define.
	    They are:

		Find(string,phrase) - Search "string" for "phrase", blank
		delimited. Returns the number of the first matching
		word, or 0 to indicate failure.

		Index(haystack,needle[,start]) - Search "haystack" for
		"needle", beginning at character "start". Returns the number
		of the first matching character, or 0 to indiciate failure.

		Justify(string,length[,padchar]) - Insert "padchar"s between
		blank delimited words in "string" until it is "length"
		characters long. The default "padchar" is the space. Returns
		the justfied string.

		LineSize() - Returns the maximum line length for the SAY
		instruction, or 0 if indeterminate.

		UserId() - Returns the userid of the user running the REXX
		program.

	12) The Date() function accepts an option not defined in the
	    language, "Julian-OS". This returns the date as yyddd, where ddd
	    is the number of days since January 0, 19yy (e.g. 1/1/89 is
	    89001).

	13) The TRACE instruction and the Trace() function accept a "!"
	    prefix, which indicates that Host Commands are not to be passed
	    to the execution environment.

	14) There is an UPPER instruction to translate variables to upper
	    case.

	15) Later release of VM/SP have supported OPTIONS DBCS, for Double
	    Byte Character Set support. This allows things like Japanses Kanji
	    characters in literal strings.

That's the definitive list.

Ross Patterson
Rutgers University