The Artima Developer Community
Sponsored Link

Heron-Centric: Ruminations of a Language Designer
Defininition of a Programming Language
by Christopher Diggins
July 14, 2006
Summary
Here is a challenge, try to define what a programming language is.

Advertisement

Here are some definitions of "programming language" which I have found around the internet:

  1. An artificial language used to write instructions that can be translated into machine language and then executed by a computer. - "programming language." The American Heritage® Dictionary of the English Language, Fourth Edition. Houghton Mifflin Company, 2004. Answers.com 14 Jul. 2006. http://www.answers.com/topic/programming-language
  2. syntax, grammar, and symbols or words used to give instructions to a computer. - programming language." The Columbia Electronic Encyclopedia, Sixth Edition. Columbia University Press., 2003. Answers.com 14 Jul. 2006. http://www.answers.com/topic/programming-language
  3. A programming language is an artificial language that can be used to control the behavior of a machine (often a computer). - "programming language." Wikipedia. Wikipedia, 2005. Answers.com 14 Jul. 2006. http://www.answers.com/topic/programming-language
These definitions are insufficient because a programming language doesn't neccessarily require translation, or execution by a computer. These definitions reflects the more mechanical view of programming languages, as a means of communicating a series of instructions to a machine.

Another view of a programming language, which would appeal to the more academically minded, is that a programming language is a language for expressing computations. This also would be insufficient by itself, because it ignores the fact that much of programming is telling a computer what to do. (e.g. tell the OS to move a file, send a digital signal down a cable, store bits in memory, etc.).

Here is my ambitious attempt at a definition:

Programming Language - A language which: expresses instructions governing the behavior of software, or a machine; or which expresses a computation
What this highlights for me is a fundamental problem of theoretical computer science: bridging the gap between computing something, and doing something. This is an important and often overlooked problem.

How would you define what a programming language is?

Talk Back!

Have an opinion? Readers have already posted 13 comments about this weblog entry. Why not add yours?

RSS Feed

If you'd like to be notified whenever Christopher Diggins adds a new entry to his weblog, subscribe to his RSS feed.

About the Blogger

Christopher Diggins is a software developer and freelance writer. Christopher loves programming, but is eternally frustrated by the shortcomings of modern programming languages. As would any reasonable person in his shoes, he decided to quit his day job to write his own ( www.heron-language.com ). Christopher is the co-author of the C++ Cookbook from O'Reilly. Christopher can be reached through his home page at www.cdiggins.com.

This weblog entry is Copyright © 2006 Christopher Diggins. All rights reserved.

Sponsored Links



Google
  Web Artima.com   

Copyright © 1996-2014 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use - Advertise with Us