The Story of My Life so Far - Part 67 - More adventures with my Pascal compiler

This is the story of my life so far: 68 years and counting.
Prequel: A Brief History of my Family in France



The story starts here
Previous episode: Part 66


Improving my Pascal compiler

Byte Magazine had published a benchmark program for Pascal compilers, indicating the execution time and the size of the executable for various Pascal compiler on CP/M.
Compared to these compilers, my Pascal compiler was a lot slower, because interpreting pseudo-code is slower than executing native code.

One evening, as I was explaining the situation to Louis, my brother in law, that was living with us, I told him that "with my system, there is not much I can do to improve the execution time".
Louis replied to me than I should then change my "system". To which I replied that I could not do that.

In the middle of the night, I woke up realizing that Louis was absolutely right: if my "system" (interpreting pseudo-code) was preventing my compiler to be as efficient as other compilers that generated native code, then I have to change the "system".
So, this is what I did.

Instead of just junking the pseudo-code generator, I modified the compiler to have two modes: pseudo-code generation and native code generation.
Generating pseudo-code was fast during compilation, but slower during execution.
Generating native code was slower during compilation, but way faster during execution.

I even optimized the native code generation for the Byte Magazine benchmark, with the result that the execution time of the benchmark program was faster than for all the other Pascal compilers.

Photocopying during the night

We were two French Navy officers in Halifax. My colleague, whose name I don't remember, was in an office with two British Navy officers.

One evening, he called me and asked if I could help him photocopying a document discreetly. For reasons that I will not disclosed, he did not want to do that in a public place.
As he knew that I was using the photocopier in my work building during the night, to produce the manuals for my Pascal compiler, he knew that I have access to a photocopier.

So, we photocopied his document during the night.

How is your company doing?

As French officers in Canada, we were under the authority of the French military attaché, French air force colonel "de Beyssac", who from time to time was visiting us in Halifax.

During one of his visits, in a small cocktail party, colonel de Beyssac asked me suddenly "How is your company doing?".
I was quite surprised by his question, and I thought that I was in big trouble.

What had happened is that my colleague had gone to Ottawa with the photocopy of the document and had delivered it to the colonel, who ask him how he was able to photocopy it discreetly. And my colleague explained that I was using the photocopier during the night to make the documentation of my Pascal compiler. Eventually, he told him about my company "Scotia Software".

However, colonel de Beyssac never made any trouble and never asked me fold Scotia Software.
In fact he helped me.

As I was explaining to him that sales were slow, he asked how the price of my compiler was compared to other Pascal compilers. I replied that it was much less expensive: $69 compared to around $500.
The colonel then told me that it was too cheap and nobody would take it seriously at this price. I should have a price in the same ball park as my competitors. This was good advice, so I increase the price from $69 to $295.


ss_pascal_byte_1982_08.png
Byte Magazine, August 1982

As you can see in this ad, I also published the execution time of my compiler for the Byte Magazine benchmark.

Sales started to increase and it was quite exciting.

Continue to Part 68


If you like this story, please consider to follow me

Summary
Part 1 - Part 2 - Part 3 - Part 4 - Part 5 - Part 6 - Part 7 - Part 8
Part 9 - Part 10 - Part 11 - Part 12 - Part 13 - Part 14 - Part 15 - Part 16
Part 17 - Part 18 - Part 19 - Part 20 - Part 21 - Part 22 - Part 23 - Part 24
Part 25 - Part 26 - Part 27 - Part 28 - Part 29 - Part 30 - Part 31 - Part 32
Part 33 - Part 34 - Part 35 - Part 36 - Part 37 - Part 38 - Part 39 - Part 40
Part 41 - Part 42 - Part 43 - Part 44 - Part 45 - Part 46 - Part 47 - Part 48
Part 49 - Part 50 - Part 51 - Part 52 - Part 53 - Part 54 - Part 55 - Part 56
Part 57 - Part 58 - Part 59 - Part 60 - Part 61 - Part 62 - Part 63 - Part 64
Part 65 - Part 66



H2
H3
H4
3 columns
2 columns
1 column
19 Comments