Discussing the (Im)Possibility of Natural Languages for/in Computer Software Programming


What's Perfect Software?

I get the feeling after Ch. 13 that Cooper believes software (and, therefore, computers) can be made to do anything. I'm skeptical of that. I am, however, in total agreement about the problem of thinking that "natural language" will one day be the program language. An interesting idea gets passed around concerning the future of programming. Here's a hierarchy:

  • 1st Gen--Machine Language (the matrix 0s and 1s)

  • 2nd Gen--Assembly language

  • Compiler (translates source code to machine language)

  • 3rd Gen--High-level programming language (FORTRAN, COBOL, BASIC, Pascal, Java, Visual Basic)

  • 4th Gen--Very high-level programming languages often used for databases (SQL, Mark IV, MAPPER)

    • In theory, they "are designed to reduce programming effort, the time it takes to develop software, and the cost of software development" (para 3).
    • Also, the "4GL is an example of 'black box' processing, each generation [of language] is further from the machine" ("History," para 3).
    • Hmm...this seems to follow the fact that most new (communication) technologies take users further away from the source or from controlling features.

  • "5th Gen"--Removing the programmer further from the machine, this language should allow the computer to solve some problems without the programmer. Programmers need only specify what the problem is and its parameters and leave the execution up to the computer.
    • I, Robot anyone?
    • There is some debate as to whether or not these even exist, and there's some issue with 5GLs actually being more automated 4GLs
    • There's an interesting change in how we see programming languages advancing. When I was in high school, this fifth generation was to be "natural language" according to a previous model of conceiving programming languages. Think COMPUTER on Star Trek.

But Natural Languages would be next to impossible as Cooper points out. Let's think about why...

What do you get when you "natural language" with the following commands?

Please note these these are for educational purposes only to reflect language ambiguity. Also, these examples below might not be programming language specific, but they do illustrate ambiguity in technical language and the need to watch jargon when addressing a lay audience.

  • Bring the port up to speed

  • Kill the user's functionality online

  • Unload the backup disk's files into the stack

  • Stack the hard drive with dat files

  • Fix the RAM...Cap Ram on both sides

  • His hardware is at peak performance

IBM's Watson Computer

Some of you might have seen these commercials for IBM's Watson computer that competed on Jeopardy a couple years ago (2011). A special thing about Watson is that it answers questions asked of it in English sentences. It uses massive parallel processors to quickly find answers to Jeopardy-like questions.

Because this is a new technology, I risk being premature with my critique, but has that ever stopped me? Although this computer is a technological marvel, I think it's being oversold as a "thinking" machine. Jeopardy contestants are humans, of course, but they are simply recalling trivial information to answer questions. Recalling vast amounts of information is impressive, but it is situational--it depends on the system's parameters or what the rules happen to be. Knowing trivial information certainly isn't critical thinking or using information to solve a problem or address a concern.

Anyway, I'm withholding my awe of IBM's Watson computer* until it does something uniquely different and not just faster. Faster is beneficial in certain venues, but it isn't any paradigm shift or revolution.
*Note: this link takes a while to load.

Top of Page

© UNC Charlotte Copyright | Privacy Statement Page Maintained By: Aaron A. Toscano