Memories of Turbo Pascal version 1.0 - Lars Frid-Nielsen, Denmark
Sent: Tuesday, November 04, 2008 2:54 AM
Subject: Turbo Pascal - the very beginning!
[ David I note: Lars Frid-Nielsen was an R&D engineer at Borland for many years. Lars worked on Turbo Pascal, Sidekick, Superkey, and many of Borland's developer and application products. He is a holder of three software patents: 5655093 (August 5, 1997) "Intelligent screen cursor", 5740444 (April 14, 1998) "Symbol browsing in an object-oriented development system", 5557730 (September 17, 1996) "Symbol browsing and filter switches in an object-oriented development system". He is a great bass guitar player, music studio recorder, and amateur astronomer. He is co-author, With Alex Lane of the Dr. Dobbs article, "CELESTIAL PROGRAMMING WITH TURBO PASCAL, The CCD camera brings astrophotography to the PC" ]
Anders Hejlsberg came by Borland Copenhagen one day to demonstrate his Pascal Compiler - called Compas Pascal. I was at the time working on developing a product that was implemented using MT+ Pascal, and was asked to take the compiler for a spin with some of my test code. This was done while Anders and his partner was in the big office talking business with Niels Alex Jensen - CEO of the company at the time.
I don't think I will offend Anders by saying he had had little interest in creating the UI . So my first impression was a clunky IDE that was miles away from the elegance of Wordstar - which were our editor of choice at the time. It was with no great expectations I hit the compile key - AND THEN I WAS COMPLETELY FLOORED! My test program, that took minutes to compile and link using Digital Research's Pascal MT+, was compiled and running before I could blink an eye! That was a great WOW moment!
I continued the evaluation and realized there was another shortcoming: We were at the time programming on CP/M systems, which had a memory limit of 64k. Compas Pascal did not support code overlays, which meant that it was impossible to create programs bigger than 64k - data and code! A real hard limitation if you wanted to create state of the art business appllications.
After a couple of hours Niels came out from the meeting with a big grin. I thought he was going to tell me that he had made a good deal for 10 copies for internal use. Imagine my surprise when he told me the deal was that Borland was going to market the product internationally! I told him about my reservations, and he told me that we were going to integrate a Wordstar style editor into the product.
Anders joined us at this time and we discussed the code overlay issue and he made up a solution on the spot. He was drawing on the white board and I started to understand some of the wizardry involved!
Mogens Glad was the chief software architect at Borland at the time. After Anders left that evening, Mogens and I was discussing what exactly we had just experienced - I think Mogens might have seen a demonstration of the product before I became aware of its existence. That evening we managed to write the technical highlights of the product down on the whiteboard. We did a lot of talking and sketching, but the main points where:
- No doubt about it: Anders was one hell of an assembly language programmer. We took pride in writing efficient code ourselves, but he had done a very impressive job!
- By integrating the compiler with the editor, and have the compiler stop and mark the first error in the editor, Anders did not have to implement error recovery, which is a relatively costly part of a conventional compiler. Brilliant idea - especially since it allowed an extremely fast edit-compile-edit cycle for the user. A win-win situation!
- Anders compiled the code directly into memory, overwriting the compiler itself as he went along generating code. The compiler was written using the Pascal runtime library, so Anders would leave the
runtime library in memory at all times - never having to reload it from disk. Super smart - super efficient.
I went home that night feeling that I had experienced something pretty awesome!
From that day, Turbo Pascal came together in a very short period of time.
Ole Paulsen, who was an outstanding assembly language programmer, wrote the Wordstar type editor. We were all pretty impressed when he showed up with his first prototype editor within a week - there was a lot it didn't do, but he was obviously on the right track! [ Anders Hejlsberg note: "That's why the (editor source) file is called EDOLE.ASM" ]
I had been working on improving the Pascal MT+'s runtime libraries for our own internal use. Some of my library routines made it into that first Turbo Pascal. As the new kid on the block, even such a small
contribution was OK with me!
Mogens Glad did the interface specifications between the components and wrote the code that did memory management and integration of the editor, runtime, and compiler.
Anders had a code overlay version done very quickly and he delivered a compiler with all our suggested changes in a matter of no time!
Ole Henriksen was the master of the excellent manual. Not only did he write the manual - he modified a typesetting machine with a custom made mono-spaced font wheel - which he used for the code samples in
the manual.
Niels Alex Jensen's enthusiasm for the project and his determination to make it happen despite all problems, was absolutely crucial parts of the projects success. In typical Niels manner he decided that a great product was not enough - by selling it for $49.95, he made a splash that changed the company - and programing forever!
Philippe Kahn was hired around this time and I remember Niels coming back from the US telling how great a marketing genius Philippe was. One good story was how Philippe made sure the few Turbo Pascal T-Shirts we could afford to print made their way to the pretties girl at the tradeshows - thus ensuring the few advertising dollars we had made a maximum visual impact!
I later worked on the first versions of Turbo Pascal for MSDOS and Windows and those products were just as revolutionary as the very first version. During those times I was always impressed with the determination of the Turbo Pascal team - they wanted to create the best little development environment in the world - everytime! Gary Whizin and Chuck Jazdzewski are good colleagues whose effort still stands out after all those years!
[ David I note: Mogens Glad is now a movie producer in Denmark. You can see his filmography on IMBD at http://www.imdb.com/name/nm0321571/ ]


Comments
-
Wow ! that's the first time I read the TRUE inside story about Turbo Pascal. THAT's a scoop. Like David I, I started on the Apple ][ back in december 79, then, in 83, on the PC, had to use all kind of substitutes (UCSD, JRT, the Moscow Compiler, you name it, and THEN Turbo. I still have the Turbo 1 blue book somewhere). I knew about this 12K RT / 8 K wordstar-like editor / 4K menu and 12 K compiler structure, since I did look at Turbo 3 VERY, VERY closely. Recursive descent in assembler, I could'nt believe it. The only thing they totally missed was the UNIT concept, until Turbo 4
Very nice idea, David, to let people tell their story. We all invested so much in Turbo Pascal and we do love coding like an addiction ... So, obviously, we're only too happy to talk about it. I'm not sure, David, you will ever be able to stop us ... Anyway, reading Lars's article sure made my day
Felix
htt://wwww.felix-colibri.com -
Ken Knopfli Thursday, 20 November 2008
"I hit the compile key - AND THEN I WAS COMPLETELY FLOORED! My test program...was compiled and running before I could blink an eye! That was a great WOW moment!"
This WOW experience was a thrill that rippled over every first-time user down the years. That single feature is what made Turbo Pascal, and now Delphi, what it is. It is a primary reason for Delphi's survival in a competitive market. Never let us forget that. -
Please login first in order for you to submit comments
- Page :
- 1
Sidekick... what an awesome product - thanks for reactivating that part of my memory.
I think that assembly programming should be known by more programmers. No programming language can fully compensate for the inefficiencies created by a programmer that does not understand bits and bytes and hardware. And often these inefficiencies are horrible.