“State of the Union” Is The Title Of This Post

There’s something funny about the title of this post, and it’s what happened at the start of the State of the Union tonight.  (By the way, kudos to MSNBC for posting the transcript, as spoken, immediately after the speech ended.)

Thank you very much. And tonight I have the high privilege and distinct honor of my own as the first president to begin the State of the Union message with these words: “Madame Speaker.”

Another lie?  Self-referential lies aren’t as bad as lies about weapons of mass destruction, but they’re more interesting to linguistics at least.  Why?  The first words of the State of the Union are “Thank you very much.”  They are not  “Madame Speaker” as he claimed.  It’s funny, of course, because the very utterance in which he makes a claim about what he said falsifies the claim.  The President ought to have said the following:

Thank you very much. And tonight I have the high privilege and distinct honor of my own as the first president to end the first paragraph the State of the Union message with these words: “Madame Speaker.”

But that’s not as elegant.  To preserve a different aspect of the meaning, he might have said:

“Madame Speaker” are words that tonight I have had the high privilege and distinct honor of my own of being the first president to begin the State of the Union message with.  Thank you very much.

(Not that I think he really should have said either of those, but it is, indeed, what he might have said if his speech writer were a stickler for precise, silly details.)
Maybe I haven’t given him enough benefit of the doubt.  Let’s call that paragraph meta-speech and not technically a part of the State of the Union.  Like, he gets to say it but we don’t count it as a part of the actual State of the Union. Because, if we consider the next two paragraphs as meta-speech also:

In his day, the late Congressman Thomas D’Alesandro, Jr. . . . Congratulations, Madame Speaker! Congratulations.

Two members of the House . . . Tim Johnson and Congressman Charlie Norwood.

Then finally we get to a point where he does seem to start up the “real” speech, starting in the traditional way, and with the words “Madam Speaker”.

Madam Speaker, Vice President Cheney, Members of Congress, distinguished guests, and fellow citizens . . .

But, ah-ha!  You may have noticed that the spelling of Madam changed from the first paragraph.  That was MSNBC’s doing, which seems like a subversive way of ensuring the President did not start with “Madame Speaker” after all.  It’s the left-wing media at work.

This of course all reminds me of Godel, Escher, Bach, which I finished reading recently.  In it, Achilles says someone keeps crank calling him on the phone and shouting:

“Is false when preceded by its negation!  Is false when preceded by its negation!”

The President may have inadvertently proved the incompleteness of number theory without realizing it.

Programming Language Syntax

If you know a little bit about how compilers work, you know that the syntax of programming languages is context free. That is to say that each syntactic element of the language can be described as a list of sub-elements, regardless of what context it appears in. For example, a while-loop in C# is (roughly) the keyword ‘while’, followed by an expression, followed by a statement (or block of statements), and it doesn’t matter where the loop appears, that syntactic definition is always the same. This is basically the idea of a context free grammar (CFG).

Natural languages (i.e. human languages) are not context free. It’s impossible to come up with a (concise) list of CFG rules, such as “a sentence is a noun phrase, followed by a verb, followed by a noun phrase; and a noun phrase is an article (a ‘determiner’ in the biz) followed by a noun” to describe English, for instance. That will work for simple sentences like “a man walked a dog”, but not for sentences like “which dog do you think a man walked?”

Now, this raises the question of why we don’t program in languages that closely resemble natural languages, in terms of syntactic structure? Wouldn’t that make it easier to program? There’s a good reason why we don’t do that, actually: No one knows what the syntax of natural languages looks like. Try as we might, natural languages are still beyond our understanding.

The reason I’m writing this is that I just came back from a symposium in honor of one of my professors (I study the syntax of natural language, by the way) who invented Tree Adjoining Grammar. TAG is a type of syntactic formalism that can actually be used to describe English fairly well — in the way that CFGs don’t even come close. At a very high level, TAG adds to CFG the ability to splice together two units of structure. I was wondering whether a TAG-based programming language syntax would let us program with new types of syntactic sugar, although I think the answer is that nothing interesting would come out of it.