Pretty image

The following snippet of public domain source code is part of a translation of a famous program originally written in 1966 into a programming language created in 1993. (Technically, into source code for an editor that has the 1993 programming language embedded in it.)

And then we encrypted the source using a simple letter-substitution code. Your job is to decrypt the result and identify both the program and the 1993 language. You don’t have to port it back to the 1966 source.

 qstgq xhmtunsm Vqneg(uvlu)
  qstgq wvojsmov = ""
  qstgq hovw = ouwnmc.hjjvw(uvlu)
  qstgq hovwSwnc = hovw
 
  -- wgmrsfqk ovqvtuvr wvjqnvo nx ms avkiswro
  qstgq wgmrWvjqnvo = {
  "IZGU RSVO UZGU OHCCVOU US KSH?",
  "N OVV...",
  "N'F MSU OHWV N HMRVWOUGMR KSH XHQQK.",
  "TGM KSH VQGYSWGUV SM UZGU?",
  "UZGU NO PHNUV NMUVWVOUNMC!",
  "UZGU'O OS... JQVGOV TSMUNMHV...",
  "N HMRVWOUGMR...",
  "IVQQ, IVQQ... RS CS SM",
  "IZK GWV KSH OGKNMC UZGU?",
  "JQVGOV VLJQGNM UZV YGTACWSHMR US UZGU WVFGWA...",
  "TSHQR KSH OGK UZGU GCGNM, NM G RNXXVWVMU IGK?",
  }
 
 ...
 
 -- tsmdhcguv
 qstgq tsmdhcguv = {
  [" N "] = "KSH",
  [" GWV "] = "GF",
  [" IVWV "] = "IGO",
  [" KSH "] = "FV",
  [" KSHW "] = "FK",
  [" N'BV "] = "KSH'BV",
  [" N'F "] = "KSH'WV",
  [" FV "] = "KSH",
  [" GF N "] = "KSH GWV",
  [" GF "] = "GWV",
 }
 
 -- wgmrsf wvjqnvo, ms avkiswr
 qstgq xhmtunsm wvjqkWgmrsfqk()
  wvojsmov = wgmrWvjqnvo[fguz.wgmrsf(ugyqv.cvum(wgmrWvjqnvo))].."\m"
 vmr

Capitalization and punctuation are not affected by the encryption, so all the brackets and quotation marks and equal signs in the above are from the plaintext. You might think that code in an unknown programming language would lack the contextual clues to facilitate decryption, butv we’re pretty sure that there’s enough information here to crack the code.

Solution to Last Month’s Quiz

The following table contains the names of 19 notable (and quotable) language creators, each paired with his or her most famous language creation. We asked you to match each notable quotable language creator with the quote from the list following the table. In the third column of the table you’ll find the answer, in the form of the number of the corresponding quote.

You will note that things don’t quite match up. There are two quotes by one author and no quote by a different author. The odd man out is the ultimate answer to the quiz: Which language creator is unrepresented by any quote?

And the answer is: Rob Pike, one of the creators of Google’s Go. Well, it’s still a young language. Doubtless it will inspire some interesting quotes someday.

The Language Creators and Their Languages

Language Creator

Language(s)

Quote

Dennis Ritchie

C

3

Bjarne Stroustrup

C++

17

Grace Hopper

COBOL

1

Bertrand Meyer

Eiffel

9, 12

Chuck Moore

Forth

15

John Backus

Fortran

6

Rob Pike

Go

James Gosling

Java

18

John McCarthy

Lisp

16

Stephen Wolfram

Mathematica

11

Tony Hoare

CSP

17

Niklaus Wirth

Pascal

14

Larry Wall

Perl

13

Rasmus Lerdorf

PHP

2

Guido van Rossum

Python

4

Yukihiro Matsumoto

Ruby

5

Alan Kay

Smalltalk

10

David Farber

Snobol

19

Alan Cooper

Visual Basic

8

The Quotes

  1. “The wonderful thing about standards is that there are so many of them to choose from.”

  2. “When the world becomes standard, I will start caring about standards.”

  3. “When I read commentary about suggestions for where [my language] should go, I often think back and give thanks that it wasn’t developed under the advice of a worldwide crowd.”

  4. “Don’t you hate code that’s not properly indented? Making it part of the syntax guarantees that all code is properly indented!”

  5. “I believe consistency and orthogonality are tools of design, not the primary goal in design.”

  6. “Our thirty year old belief that there is only one kind of computer is the basis for our belief that there is only one kind of programming language.”

  7. “There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies.”

  8. “No matter how cool your interface is, it would be better if there were less of it.”

  9. “As for our grandchildren, only the paleontology professors among them will know what C++ was.”

  10. “I invented the term ‘Object Oriented’ and I can tell you that I did not have C++ in mind.”

  11. “All processes, whether they are produced by human effort or occur spontaneously in nature, can be viewed as computations.”

  12. “You can have quality software, or you can have pointer arithmetic; but you cannot have both at the same time.”

  13. “Real programmers can write assembly code in any language.”

  14. “I am convinced that there is a need for high quality software, and the time will come when it will be recognized that it is worth investing effort in its development and in using a careful, structured approach based on safe, structured languages.”

  15. “All computer languages are write-only.”

  16. “Everyone needs computer programming. It will be the way we speak to the servants.”

  17. “I prefer to have as little as possible to do with Bertrand Meyer.”

  18. “It’s been a really weird summer.”

  19. “I could tell you stories that would curdle your hair.”