[Simh] off-topic basic translator

Göran Åhling ahling at eadc.se
Wed Aug 5 18:21:01 EDT 2015


No offence taken!

I'm fully aware that DEC-Basic not equals GW-basic, but I'd guess the 
similarities between DEC-Basic and QB-64 really are larger than those 
between DEC-basic and Pascal / C / C++ / Perl / ... (Please note that 
QB-64 seems to be a quite modern BASIC, but still compatible with older 
MS-basic. Please also note that I prefer Pascal rather than BASIC ;-)

More similar should mean less complicated to translate in my humble opinion!

If I'm not mistaken, the QB-64 seems to be a translator from Basic to 
C++ (from reading the "Linux-requirements" for it), and if writing a 
Basic--> ? - translator, is on the table, it might be less work to start 
with one working translator and improve it from taking GW-basic source 
into taking DEC-Basic... (or having a flag/option for it?)

This written just to bring some ideas to discuss into the air.

Göran

On 2015-08-05 10:58, Johnny Billquist wrote:
> Not adressing Göra specifically.
>
> VAX Basic is not like GW-BASIC. I suspect the differences are large 
> enough that we could almost call it two different programming 
> languages...
>
> Anyway, I'm confused by this whole thread.
>
> First of all, VAX Basic is still around. But you still need VMS. I 
> think it's called HP Basic nowadays. The naming went: BAX Basic -> DEC 
> Basic -> COMPAQ Basic (I suspect) -> HP Basic. But the OP asked for 
> something for VMS. So he should be good, and there is no need to do 
> anything. The hobbyist program covers hobby use, so you can get a 
> license, install it, and be happy. No money involved.
>
> You should be able to find some info you you just manage to locate the 
> VMS information at HP. HP is confused, so I'm surprised if you have 
> problems finding any kind of information there.
>
> Second - translating stuff from VAX Basic to C++ - I fail to see the 
> problem. Normal strings in VAX Basic are dynamic. std::string should 
> fit the bill perfectly. Strings in MAPs are static in size and 
> location. No different than a char [] in C or C++.
> MAP statements as such are actually pretty much a 1:1 mapping to a 
> static defined struct in C or C++. If you want to do I/O related to a 
> MAP, you'll just do the I/O to the static struct instead, and you're 
> there.
> COMMONs are the same thing as MAPs, so the same static structs in C 
> work for those too.
>
> For strings, you will need some special assignment and compare 
> operators to make it work identical. In VAX Basic, an assignment to a 
> static string (such as in a MAP) will pad the string with spaces at 
> the end. And there are two string comparators. The normal equal 
> operation will consider two strings to be equal even if there are 
> different trailing spaces on either or both strings. There is a second 
> string compare operator if you want to check for exact equality, 
> including string length and trailing spaces.
>
> The FIELD statement is just some more data shuffling related to I/O. 
> Nothing difficult about it.
>
> MAT statements is something I would skip, as that is more complex, but 
> seldom used.
>
> I think that error handling would be a rather difficult part in any 
> translation, though. I don't even care to go into that story here.
>
> But the things other have mentioned, I've touched on above, and they 
> are not hard to translate for the most part. But Perl would *not* be a 
> language I would translate to.
>
>     Johnny
>
> On 2015-08-05 08:33, Göran Åhling wrote:
>>
>>
>> Den 2015-08-04 kl. 17:52, skrev Dan Gahlinger:
>>> Does anyone have or know where I can get a copy of the Vax Basic
>>> translator?
>>> Especially for VMS or windows or something?
>>>
>>> I'd like to convert my old Vax Basic programs to something usable on
>>> modern systems,
>>> but while Vax Basic is simple enough there are a few things I have
>>> trouble with,
>>> such as MAP statements, records, etc.
>>>
>> If "modern systems" is included in the set of {Win; Mac OSX; Linux;
>> Android}, why not stay BASIC?
>> http://www.qb64.net/
>> I have used it to make old GW-basic-programs usable in a PC of today
>> (ie. >= Win 7).
>>
>> The snag was to run an old GW-basic, load the program into it, and then
>> save the program using Ascii-mode, to get a file that QB64 can load.
>> (Actually a file that looks like a LIST print-out, as opposed to the
>> GW-basic native format)
>>
>> It is described in Microsoft Knowledge base: Article ID: 80745
>>
>> I was astonished how much of structural-programming possibilities and
>> support that has been put into this modern BASIC, the step from "old
>> days" style that was more close to Fortran-4 is immense! It can
>> definitively be used to write "Pascal-looking" programs.
>>
>> In my case, one of the programs I converted didn't work properly, so I
>> ended up correcting it - taking all line-numbers away was a great start,
>> as the problem was hidden in GOTO:s by the original author...
>>
>> Besides from using the QB-64 once, I have no hooks to it or to its
>> development...
>>
>> /Göran
>>
>>> I've tried looking on the HP/etc sites and it seems it's been
>>> discontinued,
>>>
>>> does anyone have a copy I can use, or know where I can get one?
>>>
>>> I don't want to pay for a product, as this is just hobbyist use for
>>> personal programs I wrote
>>>
>>> thanks
>>>
>>> Dan.
>>>
>>>
>>> _______________________________________________
>>> Simh mailing list
>>> Simh at trailing-edge.com
>>> http://mailman.trailing-edge.com/mailman/listinfo/simh
>>
>>
>>
>> _______________________________________________
>> Simh mailing list
>> Simh at trailing-edge.com
>> http://mailman.trailing-edge.com/mailman/listinfo/simh
>>
>
>



More information about the Simh mailing list