Re: BASIC (Was: Reading HP2000 tapes

2018-07-18 Thread Chris Osborn via cctalk



On Jul 18, 2018, at 10:21 AM, Paul Berger via cctalk  
wrote:

> I would think that any interpreted BASIC would do this or for that matter any 
> interpreted language except maybe for APL 

You'd think so but many BASIC dialects don't fully tokenize. Many leave in all 
the extra spaces the user types in, such as the Microsoft BASIC on various 
Commodores. Some BASICs even require the spaces in order to properly parse 
during tokenization.

There's a page here which includes a field for machines which do full 
tokenization:

https://en.wikipedia.org/wiki/List_of_computers_with_on-board_BASIC

--
Follow me on twitter: @FozzTexx
Check out my blog: http://insentricity.com



Re: BASIC (Was: Reading HP2000 tapes

2018-07-18 Thread Paul Koning via cctalk



> On Jul 18, 2018, at 1:21 PM, Paul Berger via cctalk  
> wrote:
> 
> I would think that any interpreted BASIC would do this or for that matter any 
> interpreted language except maybe for APL which is pretty much written with 
> tokens anyway.  One other exception I can think of is perl  which is stored 
> as source text.  Saving in tokenized form was good for to reasons, it saved 
> storage space, both in memory and on mass storage and when you loaded the 
> program it was ready to go.
> 
> Paul...
>> 
> I think it was called a "decompiler" though.  Seemed like magic at the 
> time.
> 
> Googling reveals "You may be remembering the BASIC PLUS
> decompiler under RSTS.  RSTS BASIC PLUS was interpreted from "push-pop" 
> code.
> The symbol table was available in the compiled file, and the 
> correspondence
> between push-pop operations and BASIC PLUS source was very close, so you
> could get back very reasonable code."
> 
> And our previous discussion of it a decade ago:
> 
> https://marc.info/?l=classiccmp=121804804023540=2

I would not say "written with tokens".

Basic-PLUS essentially used a stack machine code, easy to generate and pretty 
efficient.  It wasn't designed to be reversible, but since the symbol table was 
saved as well (had to be, to allow for incremental editing and interactive 
debugging) you could reverse pretty easily.  This sort of thing has a long 
history.  UCSD Pascal used something similar, which it called "P-code".  The 
TUTOR language of the U of Illinois PLATO system did as well, except for 
expressions which were compiled into actual machine code.  That sort of mixed 
encoding was used a decade earlier in the first ALGOL compiler, by Dijkstra and 
Zonneveld, 1961, for the EL-X1.  And yes, it's still done a lot, I believe 
Python is a good example.

A somewhat different approach is found in RT-11 BASIC, a somewhat simpler 
language than BASIC-PLUS and an unrelated implementation.  That one does 
convert the text into tokens, it doesn't generate a stack language 
transformation as B+ did.  And the token encoding is explicitly designed to be 
reversible: when you use the LIST command the token stream is converted back to 
source text.  That means, for example, that comments are included in the token 
stream (unlike B+).

paul



Re: BASIC (Was: Reading HP2000 tapes

2018-07-18 Thread Paul Berger via cctalk
I would think that any interpreted BASIC would do this or for that 
matter any interpreted language except maybe for APL which is pretty 
much written with tokens anyway.  One other exception I can think of is 
perl  which is stored as source text.  Saving in tokenized form was good 
for to reasons, it saved storage space, both in memory and on mass 
storage and when you loaded the program it was ready to go.


Paul.


On 2018-07-18 2:00 PM, Curious Marc via cctalk wrote:

And so does the HP 85.
Marc


On Jul 17, 2018, at 1:50 PM, Brent Hilpert via cctalk  
wrote:

The HP9830 (1972) with it's ROM'ed BASIC works this way.
LIST produces a 'cleaned up' version of the source code.




On 2018-Jul-17, at 1:21 PM, Guy Sotomayor Jr via cctalk wrote:

I should also mention that for the IBM S/23, once the BASIC program is entered, 
the original
source is discarded and only the tokenized code remains (comments are retained 
as-is).   The
LIST command runs a de-tokenizer and reconstructs the original source (well 
close to it anyway).

TTFN - Guy


On Jul 17, 2018, at 12:33 PM, John Foust via cctalk  
wrote:

At 03:53 PM 7/14/2018, Fred Cisin via cctalk wrote:

On Sat, 14 Jul 2018, Ed Sharpe via cctalk wrote:
isn't the  basic  programs  also stored in tokinized  forms!?!?

Yes.
And the tokens are not the same between different brand implementations, or 
even between different versions, such as MBASIC 4 and MBASIC 5.
http://fileformats.archiveteam.org/wiki/Tokenized_BASIC

I remember a detokenizer for RSTS BASIC-PLUS that's not on that list.

I think it was called a "decompiler" though.  Seemed like magic at the time.

Googling reveals "You may be remembering the BASIC PLUS
decompiler under RSTS.  RSTS BASIC PLUS was interpreted from "push-pop" code.
The symbol table was available in the compiled file, and the correspondence
between push-pop operations and BASIC PLUS source was very close, so you
could get back very reasonable code."

And our previous discussion of it a decade ago:

https://marc.info/?l=classiccmp=121804804023540=2

- John





Re: BASIC (Was: Reading HP2000 tapes

2018-07-18 Thread Curious Marc via cctalk
And so does the HP 85.
Marc

> On Jul 17, 2018, at 1:50 PM, Brent Hilpert via cctalk  
> wrote:
> 
> The HP9830 (1972) with it's ROM'ed BASIC works this way.
> LIST produces a 'cleaned up' version of the source code.
> 
> 
> 
>> On 2018-Jul-17, at 1:21 PM, Guy Sotomayor Jr via cctalk wrote:
>> 
>> I should also mention that for the IBM S/23, once the BASIC program is 
>> entered, the original
>> source is discarded and only the tokenized code remains (comments are 
>> retained as-is).   The
>> LIST command runs a de-tokenizer and reconstructs the original source (well 
>> close to it anyway).
>> 
>> TTFN - Guy
>> 
>>> On Jul 17, 2018, at 12:33 PM, John Foust via cctalk  
>>> wrote:
>>> 
>>> At 03:53 PM 7/14/2018, Fred Cisin via cctalk wrote:
> On Sat, 14 Jul 2018, Ed Sharpe via cctalk wrote:
> isn't the  basic  programs  also stored in tokinized  forms!?!?
 
 Yes.
 And the tokens are not the same between different brand implementations, 
 or even between different versions, such as MBASIC 4 and MBASIC 5.
 http://fileformats.archiveteam.org/wiki/Tokenized_BASIC
>>> 
>>> I remember a detokenizer for RSTS BASIC-PLUS that's not on that list.
>>> 
>>> I think it was called a "decompiler" though.  Seemed like magic at the time.
>>> 
>>> Googling reveals "You may be remembering the BASIC PLUS
>>> decompiler under RSTS.  RSTS BASIC PLUS was interpreted from "push-pop" 
>>> code.
>>> The symbol table was available in the compiled file, and the correspondence
>>> between push-pop operations and BASIC PLUS source was very close, so you
>>> could get back very reasonable code."
>>> 
>>> And our previous discussion of it a decade ago:
>>> 
>>> https://marc.info/?l=classiccmp=121804804023540=2
>>> 
>>> - John
>>> 
>> 
> 


Re: BASIC (Was: Reading HP2000 tapes

2018-07-17 Thread Brent Hilpert via cctalk
The HP9830 (1972) with it's ROM'ed BASIC works this way.
LIST produces a 'cleaned up' version of the source code.



On 2018-Jul-17, at 1:21 PM, Guy Sotomayor Jr via cctalk wrote:

> I should also mention that for the IBM S/23, once the BASIC program is 
> entered, the original
> source is discarded and only the tokenized code remains (comments are 
> retained as-is).   The
> LIST command runs a de-tokenizer and reconstructs the original source (well 
> close to it anyway).
> 
> TTFN - Guy
> 
>> On Jul 17, 2018, at 12:33 PM, John Foust via cctalk  
>> wrote:
>> 
>> At 03:53 PM 7/14/2018, Fred Cisin via cctalk wrote:
>>> On Sat, 14 Jul 2018, Ed Sharpe via cctalk wrote:
 isn't the  basic  programs  also stored in tokinized  forms!?!?
>>> 
>>> Yes.
>>> And the tokens are not the same between different brand implementations, or 
>>> even between different versions, such as MBASIC 4 and MBASIC 5.
>>> http://fileformats.archiveteam.org/wiki/Tokenized_BASIC
>> 
>> I remember a detokenizer for RSTS BASIC-PLUS that's not on that list.
>> 
>> I think it was called a "decompiler" though.  Seemed like magic at the time.
>> 
>> Googling reveals "You may be remembering the BASIC PLUS
>> decompiler under RSTS.  RSTS BASIC PLUS was interpreted from "push-pop" code.
>> The symbol table was available in the compiled file, and the correspondence
>> between push-pop operations and BASIC PLUS source was very close, so you
>> could get back very reasonable code."
>> 
>> And our previous discussion of it a decade ago:
>> 
>> https://marc.info/?l=classiccmp=121804804023540=2
>> 
>> - John
>> 
> 



Re: BASIC (Was: Reading HP2000 tapes

2018-07-17 Thread Guy Sotomayor Jr via cctalk
I should also mention that for the IBM S/23, once the BASIC program is entered, 
the original
source is discarded and only the tokenized code remains (comments are retained 
as-is).   The
LIST command runs a de-tokenizer and reconstructs the original source (well 
close to it anyway).

TTFN - Guy

> On Jul 17, 2018, at 12:33 PM, John Foust via cctalk  
> wrote:
> 
> At 03:53 PM 7/14/2018, Fred Cisin via cctalk wrote:
>> On Sat, 14 Jul 2018, Ed Sharpe via cctalk wrote:
>>> isn't the  basic  programs  also stored in tokinized  forms!?!?
>> 
>> Yes.
>> And the tokens are not the same between different brand implementations, or 
>> even between different versions, such as MBASIC 4 and MBASIC 5.
>> http://fileformats.archiveteam.org/wiki/Tokenized_BASIC
> 
> I remember a detokenizer for RSTS BASIC-PLUS that's not on that list.
> 
> I think it was called a "decompiler" though.  Seemed like magic at the time.
> 
> Googling reveals "You may be remembering the BASIC PLUS
> decompiler under RSTS.  RSTS BASIC PLUS was interpreted from "push-pop" code.
> The symbol table was available in the compiled file, and the correspondence
> between push-pop operations and BASIC PLUS source was very close, so you
> could get back very reasonable code."
> 
> And our previous discussion of it a decade ago:
> 
> https://marc.info/?l=classiccmp=121804804023540=2
> 
> - John
> 



Re: BASIC (Was: Reading HP2000 tapes

2018-07-17 Thread John Foust via cctalk
At 03:53 PM 7/14/2018, Fred Cisin via cctalk wrote:
>On Sat, 14 Jul 2018, Ed Sharpe via cctalk wrote:
>>isn't the  basic  programs  also stored in tokinized  forms!?!?
>
>Yes.
>And the tokens are not the same between different brand implementations, or 
>even between different versions, such as MBASIC 4 and MBASIC 5.
>http://fileformats.archiveteam.org/wiki/Tokenized_BASIC

I remember a detokenizer for RSTS BASIC-PLUS that's not on that list.

I think it was called a "decompiler" though.  Seemed like magic at the time.

Googling reveals "You may be remembering the BASIC PLUS
decompiler under RSTS.  RSTS BASIC PLUS was interpreted from "push-pop" code.
The symbol table was available in the compiled file, and the correspondence
between push-pop operations and BASIC PLUS source was very close, so you
could get back very reasonable code."

And our previous discussion of it a decade ago:

https://marc.info/?l=classiccmp=121804804023540=2

- John



Re: BASIC (Was: Reading HP2000 tapes

2018-07-14 Thread Toby Thain via cctalk
On 2018-07-14 5:10 PM, Fred Cisin via cctalk wrote:
> Apparently Eric Smith has already done so.
> http://www.brouhaha.com/~eric/software/tsbutils/
> 
> 
> You can still send me back to the sixties.
> 

Hey, form an orderly queue, please!


Re: BASIC (Was: Reading HP2000 tapes

2018-07-14 Thread Fred Cisin via cctalk

Apparently Eric Smith has already done so.
http://www.brouhaha.com/~eric/software/tsbutils/


You can still send me back to the sixties.