On Wed, 19 Dec 2007 22:43:52 GMT, Judson McClendon wrote:
> "Auric__" <not.my.real@[EMAIL PROTECTED]
> wrote:
>> Judson McClendon wrote:
>>> "Auric__" <not.my.real@[EMAIL PROTECTED]
> wrote:
>>>>
>>>> I prefer PowerBasic myself. The Windows versions default to
>>>> signed LONG (DOS version defaults to INTEGER, 16 bits) and
>>>> include both signed and unsigned integers. (PowerBasic's WORD is
>>>> unsigned; 16-bit signed int is INTEGER.)
>>>
>>> I like PowerBASIC myself. But there is no signed 8 bit type,
>>
>> The only BASIC that I can recall seeing a signed byte in is
>> XBasic, but I could be remembering wrong. I've never had a use for
>> signed bytes, though.
>>
>> FreeBASIC is interesting in that it sort of does what I mentioned
>> earlier: on 32-bit platforms (Win32 and Linux, presumably also
>> FreeBSD) its INTEGER type is 32 bits, but under DOS it's 16 bits.
>> (I don't remember what the default data type is, but I *think*
>> it's INTEGER.)
>>
>>> or
>>> unsigned 64 bit type. Not that big a deal, but both would have
>>> been useful to me.
>>
>> Yeah, I've had a couple of situations where a ulonglong (or
>> whatever) would've been handy. In PB, I usually fake it with a
>> CURRENCYX (64-bit fixed-point); for other BASICs, it depends on
>> what data types they offer.
>
> My main point of contention with PowerBASIC here is that compiler
> vendors should not be in the business of saying "I don't think
> anyone will need xyz" (e.g. signed byte, unsigned 64 bit), that is
> sup****ted by the CPU, because the whole point of a compiler is that
> you are going to use it to create applications that didn't exist
> until you create them. Compilers are enablers, not limiters. By
> definition, the creation of new things is not a process that should
> be stifled a priori. And compilers should be orthogonal as much as
> possible. It doesn't make sense to sup****t 8, 16, 32 and 64 bit
> numeric variables, but only some of them can be both signed and
> unsigned. It's arbitrarily crippled thinking, and it also violates
> the design Law of Least Astonishment. In other words, it is a
> design flaw to have omitted them.
I agree, although in this specific case you could fake sbytes using
inline assembly. (I'm sure that ulonglongs could also be faked better
than I do it, I just don't know how.)
--
Meanwhile, Australia is down there like, "WTF, mate?"


|