Photo of Jack Crenshaw


  • Make things as simple as possible, but no simpler — A. Einstein
  • Keep It Simple, Sidney (KISS) — anon
  • Simplify and add lightness — Race car builder George Miller
  • There’s an infinity of ways to make a simple problem seem hard; Only a handful to make a hard problem seem simple — Crenshaw’s First Law

Hello. I’m Jack Crenshaw. Some of you may know me from my column, “Programmer’s Toolbox” in Embedded Systems Design magazine.  Others, from my book, Math Toolkit for Real-Time Programming. (By the way, please don’t buy the one from Amazon.com. It’s a pirated, ripoff copy).

Other readers may have run across my tutorial series, “Let’s Build a Compiler!”.   See the original version here, or a wonderful and living treatment by Pascal Programming for Schools (PP4S) here.

Most vivid in my memory is my work in the aerospace industry, including NASA’s Project Apollo,  I mean, after you’ve helped men walk on the Moon, what are you going to do for an encore?  You’ll find Embedded Systems columns on this work here and here, and much more in the Work entry above.

After Apollo, America lost interest in the Moon.  Until recently, I had pretty much given up using those skills again.  Fortunately, interest in the Moon is on the upswing again.  The Google Lunar X-Prize has lots of folks working to win that $30M prize.  I’m supporting one of them, Part-Time Scientists.

I love to teach, and I’ve been told I’m pretty good at it.  Over time I’ve learned a lot of things, and I want to tell you about them. while I can still remember them.  That’s one of the main reasons for this site.

Over the next few months, expect to see a massive brain dump.  I’m planning lots more links to my columns and articles, exceprts from my book, etc,

As my old co-workers can attest, I love to tell stories,  and will tell them to anyone I can hold down long enough.  Some of them relate to my work over the years, but many more are just about me and my interests.  See the About, Work, and Play for more.

Click Blog to see my blog posts.



46 thoughts on “Welcome!

  1. i love the “let’s build a compiler” series, specially because it is purely typed in text files. it gave me a nostalgic smell. I would love to enjoy & explore more. please do more great works. thank you so much for everything. i’m just 16 and i’m hugely into the world of programming.

    1. Thanks, Billy, I’m glad you liked the series. Plans are afoot to update it using more modern methods and target machines. Plans have been stalled by the COVID virus and political turmoil, but I’m still here slogging along. Thanks again for your interest.

  2. I used to read your articles in Embedded Systems and always enjoyed them. Today while trying to unload some of my older junk… I mean valuable treasures, I noticed that you had published an article in the June 1978 issue of Kilobaud magazine (early personal computer magazine). It’s an article on Machine Language for the TRS-80 with a description of the new monitor program.
    Maybe that was the beginning of your magazine articles? Or do they go back further?
    Listing it on eBay now, expecting it to fetch a fortune now that I know it’s got quality authors like you.

  3. Can I just say what a comfort to discover someone that truly understands what they’re discussing on the internet. You definitely realize how to bring a problem to light and make it important. A lot more people must look at this and understand this side of your story. I can’t believe you are not more popular because you surely have the gift.

  4. CRC press website indicates your book is out of stock. Do you know if they plan to print more, or should I be looking to buy a used book?
    Thanks a lot for the many articles you have written over the years. In them you seldom gave a solution for problems but showed how to solve, starting from fundamentals. Sure sign of a great teacher.
    Thanks again.

    1. Sunil, I just checked with the publisher. They tell me that the book has just been put on a “print-on-order” basis. You will still be able to buy the book,from Amazon or any other seller, but don’t expect the kind of next-day delivery that Amazon is famous for. Expect about a two-week delivery time.

      Thanks for the inquiry. I hope this clears things up.

  5. Mr. Crenshaw, Sir,
    I thank you from the bottom of my heart!

    Let me introduce myself – I’m Vlad from Bulgaria, I’m 28, been programming for
    about 4 years. I started learning from zero, and I’m pretty proud to say that I
    have been working as a programmer for about half an year now.

    At one point I wanted to write a compiler. I went through all the books I could
    get, just to come out with very little on how to actually write the darn thing.

    Then I found “Let’s Build a Compiler”. Oh, joy! Oh, happiness! “Finally someone
    who understands me”, I thought. Before I read your work I was deep in
    intellectual despair, almost convinced all was in vain. What is it with these
    compiler books? It’s like trying to read Knuth’s TAOCP as your very first text
    on programming. Just no.

    Anyway, thanks to you I got it. Now I know. Now I have the power of the dark art
    (no wonder so many programmers run away screaming when you ask “But have you
    ever written a compiler?”) Joking aside, your work is seminal to me. I cannot
    even begin to describe how eye opening it was. It was one of those learning
    experiences that give you much more than understanding – it gives you the gift
    of intuition. As if by magic, you have become better in every other aspect when
    you’re done. A quantum leap. For that I’ll be eternally grateful to you.

    When I was done I was proud to put my new skills into practice and maybe even
    help someone else learn like you helped me. I’d like to present to you one of my
    little projects:



    It consists of a virtual machine, an assembler, a compiler, and a preprocessor
    for the imaginary CPU from John Scott’s “But How Do it Know?”

    I never imagined I’d be able to create something like that in a million years.

    Thank you! God bless!



    In Part 15 you write “In the four years since installment fourteen, I’ve managed
    to … raise fourteen baby birds, three pigeons, six possums, and a duck.”

    If you don’t mind, I’d really like to hear that story.

    1. Vlad, thanks so much for your interest in “Let’s Build a Compiler. I’ve looked at your links and think this is fascinating stuff. It’s always heartwarming to learn that (a) people are still interested in compilers in general, and my tutorial in particular, and (b) there are still people around who see their computers as something more than a gateway to social media and streaming music and video. You make me more comfortable that the computer world is in good hands.

      For the record, Vlad and I have connected via email and are working on a project together.

  6. Mr. Crenshaw:
    I’m currently reviewing your “MATH Toolkit for REAL_TIME Programming” for some leads on an audio processing program that I’ve been working on. Do you have an errata available for that book? While reviewing your Table 10.3 (pg. 298) to ensure that I understood your process of computing backward differences, I’ve come to dispute your results – the line of values for x=2 all come from Table 10.1 for x=2, and can’t be obtained without calc’g the forward differences. The other values in Table10.3 I agree with, except I would expect them placed differently in the table, and then the last ‘del’ value that should be in each row has not been listed.
    In addition, I am questioning your notation in various summation equations that relate to Simpson’s rule, such as Equation [10.30] . Below the summation symbol is “i=0”; This would imply the next “i” value is “1,” which I believe it is not – the next “i” value would be “2”. Am I correct in this? I am not readily familiar with a proper notation for “i” progressing in steps of 2.
    I am extremely grateful for your book, and I want to be able to fully trust your equations, examples, and code, so if an errata exists, I would love to have a copy of it!!
    Thank you so much for your contributions to the space program, and engineering in general. If only all of our education graduates could match your abilities!!!
    Paul Safety Harbor, FL

    1. Paul, I’m very sorry you found so many typos in the book. We tried very hard to catch them all, but we clearly missed some.
      I’d like to tell you that I’ll get an errata sheet right out to you, but realistically, that’s not possible in my current situation,

      Ideally, I’d like to publish a 2nd edition. Time will tell if this comes to pass.

  7. Hii,
    what happened to the two companion volumes of -math toolkit for real time programming- were they rejected or outdated

    1. Hoteph, first let me congratulate you for your excellent memory. Not many people know that “Math Toolkit” was originally intended to be the first of three volumes. In the other volumes, I intended to include sections on Fourier analysis, control systems theory, CRC check algorithms, and much more.

      My original publisher, CMP Books, were enthusiastic about the idea, but they changed management, and the new Editor-in-Chief was completely cold on the idea. A later publisher, Elsevier, told me flat out that they had no interest in books that were over 10 years old (wonder how they fell about The Bible, or War and Peace?)

      I’m still working on the possibility, and am hopeful that I’ll still be able to get ‘er done.

      Thanks so much for your interest.

  8. Hello Jack, I’m a Computer Science student, I’m Brazilian, I apologize for my English, hehehe. I was interested in compilers 3 years ago through their “Let’s build a compiler!” Tutorials. I’m building a C compiler for a processor created at my university, and today I’m closer than ever before, the compiler is almost finished, but there are a few things missing in the expression parsing part, specifically about lvalues, my questions are:
    How is lvalues analyzed?
    How does the compiler know that an expression is lvalue?
    Thanks in advance.

    1. Fernando, if I’m understanding you correctly, the answer is pretty simple. The lvalue is the left-hand side of an assignment statement. The BNF looks something like
      Assignment ::= =

      The lvalue COULD be — and usually is — a simple variable name. But it could also be a pointer dereference or an array element.

      That’s all I’ve got.

  9. Hi Jack, Remember me from Embedded Systems Programming magazine? I was the managing editor for the last 10 years the publication was in print. It was a great magazine and I was work on it when the full staff was there running the show. Your columns were always fun to read although they were hard to lay out — just complex with the equations, etc.. How are you doing, Jack?

  10. Jack,

    I was reading an article about vintage computing and found out we have a lot in common.

    First of all, I grew up in Huntsville, AL. 1962 to 1979.
    The first microprocessor I learned to program was the I4040.
    I got my career start in 1976 with Comp-Sultants. http://www.oldcomputermuseum.com/micro-440.html#

    Paul Bloom hired me to punch the code into paper tapes and check jumps for out of range. Right before things shut down, I programmed the keyboard interface.

    I don’t remember much about Tim because he was in the back while I was in the front. The secretary, I think her name was Marge, had worked with my father at Martin Marietta in the space industry.

    I followed your articles in Embedded System Design all these years but never realized we had worked together. At some point I purchased the CD with all the volumes on it. Still the best embedded magazine of all time.

    I still have the Micro-440 manual Paul gave me. I have a 4040 and 4002 clock chip for a future project.

    If you are interested in connecting with email please feel free to contact me.

    I look forward to it.


    Frank Putnam, Jr.

    1. Wow, Frank, you and I certainly have walked down the same paths. You must have come to Comp-Sultants just after I left. More about that in private. I definitely remember Tim. And dear, sweet Marge. She was my lifeline during the hard times. We drove to/from work together every day.

      More in private. All the best, Jack

  11. What inspired you to work with operational calculus in real time cookbook? I seek to be similarly inspired. Books, links, etc would be helpful

    1. Two things, I guess. First, around 1965 I worked at Northrop Aerospace, in Huntsville, AL. I was surrounded by EE controls engineers, who spoke fluent Laplace transform. So I had to get used to the s-notation for derivatives. Second, I was very interested in finite-difference arithmetic for use in computer simulations. That involves the z-transforms. So it was a natural step to tie down the s-to-z-to-D conversion formulae.

      Also, my major professor at Auburn was Dr. Howard E. Carr, who practically wrote the book on op amps.

  12. Hi Jack:
    Is the content up the upcoming hardcover of “math toolkit” the same as the content in the 2000 edition?

    1. Wow, Will, you surprised me with that question. I had no idea CRC Press was coming out with a hardcover copy. I just saw the price! Wow again!

      There was never a second edition of the book. My last publisher, Elsevier, made it very clear that they had no interest in a second edition. Their position is, if it’s more than 10 years old, nobody cares.

      Fortunately, I guess nobody said that to Newton, or Feynman, or Hemingway. 😉

      UPDATE 9/24/2018 — I did post an inquiry to my new publisher. They told me that the decision to go with a hardcover copy was based on business decisions. It’s for real and legitimate.

  13. Hello Jack

    Recently I finished your tutorial ” LET’S BUILD A COMPILER!”, at least the part that was made, and I was sad when I discovered that the tutorial was not finished. I would like to move on, so I contacted you to know what you would recommend. (Some book maybe) Just so you know, I prefer C language than Pascal.
    Sorry if something does not make sense, I’m using google translate.

    Thank you.

    1. Jack has made a (secret) promise to be around for at least a couple of decades to come and work on the 2nd edition of the tutorial.

      …Doing it in parallel with sending the Audi Lunar Rover to the Moon… Jealous… What a guy!

  14. Dear Jack,

    I’d like to buy your book, the complete version – not the rip off copy. Please advise where I can get a copy.

    I guess the real one should have CRC printed on the cover. A friend bought from CRC but the cover is the same as the one in Amazon.

    Thanks for your time in advance.


  15. Hi jack I was curious to know how you feel about claims being in the film Hidden Figures were they are basically saying that these 3 women are the reason we landed on the moon,and with out these women we would have never got there . When a lot of the work these women are credited it was you and many others of course who calculated trajectories particularly the free-return trajectory . And of course the media can not wait to say that recalcitrant, myopic and vacuous white guys would never have got there if it was not for them. Don’t get me wrong I tip my hat off to these women for the work they did ,but the idea than John Glenn would not fly if Katherine Johnson did not “check the numbers first” ,or that Neil Armstrong would have never set foot on the moon without her seems like revisionist history to me .Sorry for the long question I want you to know as well you are a hero to me and if I can achieve a fraction what you have in my own life I will be a happy man many thanks.

    1. Daniel, I have still not seen the movie — I’m holding out for the DVD, slated to come out in April. But I have read the book, and I think it’s very important to distinguish between the two. I’ll be posting my review of the book on Amazon.com.

      During my stint at Langley, we engineers used the same Friden calculators as the West Area Computer “girls,” filling out the same spreadsheets (the original, paper kind), and fleshing out the numbers. I usually ran my own spreadsheets, but for longer jobs, we went to the “Computer Room” (yep, that’s what they called it), and let the pros run the numbers.

      From my perspective, it was a simple matter of handing the spreadsheet I’d created over to the supervisor, who doled out the job to the women running the Fridens.

      The computer groups did outstanding work; they had an error-checking procedure that was infallible, and I never once saw a bad computation. They would also graph the results for us, though in truth I was better at it than they ;-).

      But in those transactions, I missed three key facts. First, my filling out the spreadsheets myself was unusual. Many of the engineers just gave the supervisor the equations, and she would create the spreadsheets. Often, according to the book’s author Margot Lee Shetterly, the engineer and the supervisor would sit down and work out the algorithms to be used.

      That means that the women weren’t just button-pushers; they had to understand the math. It also means that they were able to calculate trig functions, logs, exps, etc.

      Second, many of the Human Computers, including Katherine Johnson, ended up “graduating” from the computer groups, and joining one of the engineering teams. There, they became much more involved in the physics and the math of the systems being studied.

      Third, and most important, I had thought of the women of the Computer Room as mere clerks pushing buttons on a calculator. The key point I missed was that every single one of them had degrees in mathematics; you couldn’t get the job without them. Some of them had advanced degrees in both math and physics.

      When I first heard the claim that Katherine Johnson computed the trajectories of Alan Shepard and John Glenn on a Friden, I thought “That’s ridiculous. I don’t care how good you are, nobody’s going to solve a differential equation using a fourth-order Runge-Kutta numerical integrator, on a Friden!”

      But then, doing a little Googling, I saw a mention of Euler’s method, which is a lot simpler. And I had to say, “By golly, she COULD have done it!”And I believe she did.

      Now back to the movie. From what I can gather, it’s a very different story, and absolutely _DOES_ seem to claim that these three women saved the space program. It also, I’m told, portrays all the white guys as incompetent nincompoops.

      THAT, I can tell you, is absolutely false. The NASA engineers of that era were the most hard-working and competent engineers I’ve met anywhere, at any time. And I’ve met a bunch.

      Someone else here pointed out that the black actors in the movie are portraying real people, while the “white guys” are all “composite figures” with fictitious names. There’s a reason for that: the real white guys refused to let themselves be portrayed the way the producers wanted to. That should tell you what’s going on.

      In short, I’ve come around to the point of view that the women Shetterly wrote about absolutely did everything she claimed to, and my admiration level for them has gone up through the roof.

      The movie, I do believe, is a different story.

  16. Greetings and War Eagle, Dr. Jack,
    I was at API, a couple of classes behind you and Ken Mattingly. I have followed the career of Ken with pride in his accomplishments but did not know about you and your accomplishments. I also worked for NASA in Huntsville after I a graduated and am familiar with the practice of attributing your accomplishments to others, but never to a GS-3 token pencil pusher. But then, this is the America we live in now. I am amazed that you are still working. Thanks for your service.

    1. And a good War Eagle to you too, Jim. FWIW, one of my classmates and fraternity brother was Henry “Hank” Hartsfield.

      About the GS-3 pencil pushers: I’m starting to have a lot more respect for the “Computer Girls.” I still haven’t seen the movie — waiting for the DVD to appear in April — but I’m reading the book by Margot Lee Shetterly. Among other things, I’ve learned that all the NASA Computers had math degrees — they couldn’t get hired without them — and IIRC Katherine Johnson had a bachelor’s degree in physics and a master’s in math.

      I think Shetterly’s quite right when she says that if these woman had been white men, they would have been hired as engineers.

      I still think that the movie goes way over the top in implying that the U.S. space program would have failed except for these three black women. But Shetterly does a wonderful job of explaining what they WERE capable of doing. My hat’s off to them.

  17. Dear Sir, I came across recently a very interesting article that appeared online concerning the evolution of the navigation problems that were associated with the Apollo program. What’s interesting about this particular article is the fact that the gentleman in question, your name was completely unknown to me until I came across your name in another venue.

    My degree is in the field of nuclear engineering, however, I’ve always retained a great, great interest in the problems of celestial navigation and celestial mechanics as it relates to the piloting of spacecraft between two different locations.

    I read a research paper that was published in the AIAA Journal, which dealt exactly with these ideas of circumnavigating the moon and all the difficulties that are associated with it. What I took away from the article and perhaps you can shed some light on is the fact that the principal analysis of this type of trajectory of free return was basically put forth in this matter:

    it stated in the article that the earth was treated as the central body, and that for most of the journey to the moon you treated the path as an ellipse until you got relatively close to the moon and then you performed a “patched conic” solution in which you tied the ellipse into a hyperbolic path which would then go to around the moon.

    As I understood it, this would allow you to get a viable solution to within 10% of the true actual path to get you to where you were going. To take into account all the other actions of the sun and other planets, you would have to employ perturbation methods which would be applied at some points along the path to get you to the correct solution that you desired.
    Is this actually how you did it, or am I missing an important description of what you and your work actually did ?

    1. Charlie, can you tell me which article you saw? I did a couple of columns on my work on Apollo, for Embedded Systems Design magazine a couple of years ago. I also published one of the earliest studies on circumlunar missions:

      “Trajectory Considerations for Circumlunar Missions,” with W. H. Michael, presented at Inst. Aerospace Sci. 29th Annual Meeting, New York, January 1961. IAS Paper #61-35.

      As I’m sure you know, there is no closed-form solution of the N-body problem, for N > 2. But Lagrange developed an approximation called the Restricted Three-Body Problem (RTBP), which assumed that the Earth’s orbit about the Sun was circular, and the third body moved in the ecliptic plane. In 1959, Bill Micheal had developed a computer simulation of the RTBP, and I used it to study the circumlunar trajectory. We later extended the study to an “exact” N-body simulation. That’s what we used in the paper.

      The patched-conic method is an even cruder approximation, but it does work surprisingly well. You can find out more about it on line, but the general idea goes like this: Near the Earth, the perturbation of the Moon is very small, and the trajectory is almost exactly an ellipse about the Earth. Near the Moon, the opposite is true, and the trajectory closely resembles an hyperbola about the Moon.

      In between, there’s an imaginary surface called the Sphere of Influence (SOI) where the two bodies are fighting for control. The SOI is not really spherical, but its shape is known.

      The general idea of the Patched-Conic approach is to transform from Earth-relative to Moon-relative coordinates, using vector transformations on both the position and velocity vectors.

      Truth in advertising: I’ve never actually USED the patched-conic method, but I do admire the simplicity of the concept. I’ve always either used a full numerical simulation, or an even cruder approximation sometimes called the infinity-patched conic.

      In the pre-Aoollo years, digital computers were hard to come by, so approximate methods were popular. Nowadays, you can run extremely accurate dynamic simulations on tools like GMAT, a free tool supplied by NASA. Even so, the approximate methods serve as useful tools to decide if a given approach is viable or not.

      Hope this helps.

  18. Jack, how long has this website been around? Is it possible to meet you and discuss your contributions at NASA?

    1. Rebecca, I wrote the first version of this website in 2008, entirely in HTML. I converted it to WordPress in 2012, and have been making infrequent changes to it ever since. Until recently, most of my time has been occupied with the Google Lunar X-Prize effort, supporting the Berlin-based team, Part-Time Scientists.

      As I type this, I’m gearing up to a major redesign of the site, with the intent of putting many of my column articles and tutorials on line. Embedded.com has kindly given me permission to post my many columns and articles.

      I’d be pleased to meet with you if possible, though I must admit that I don’t get around as much, these days,as I used to. Perhaps we could meet by phone or Skype?

  19. Jack Crenshaw, what do you think of the new movie called “Hidden Figures?” Do you personally know Kathrine Johnson? If so, what do you think about her contributions?

    1. I don’t know anything at all. Katherine joined NACA in 1953, I NASA in 1959. I never saw her nor met her, but apparently she worked in a different area in the segregated NACA of her time. I’m told her original title was GS-3, Computer. I had dealings with the computer “girls” at Langley Research Center, but they were all white.

      Was NASA still segregated in my time? Perhaps not legally, but certainly in reality.

      As I recall, the NASA bio on Katherine says that she worked in the Space Task Group. That group was created for the manned space program, and was physically separate (across the USAF flight line) from NASA Langley Center. The Space Task Group moved to Houston shortly after.

      I am a little concerned that the movie seems to claim that Katherine and her two friends pretty much saved the U.S. manned space program, when us “white guys” weren’t able to. But I’m open to having my mind changed, with a few more facts.

  20. Hello jack!
    Since you are one of the original space pioneer from the apollo days I was wondering if you think we might actually be already riding on the ultimate space ship (earth) after all we are inside a closed & self sustaining capsule with resusable resources spinning around at 1000 miles per hour, speeding around the sun at 50,000 miles per hour & rotating at 500,000 miles per hour around the Milky Way galaxy – god only knows why!

    1. That’s it exactly. And, just as in the sci-fi movies, there are bad things happening out there, from errant asteroids to black holes to gamma ray bursters that could show up to ruin our whole day.

      But I like your last sentence the most: God _DOES_ know why! 😉

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.