The 1980s were also the era of the Lisp Machines, with several companies, most famously Symbolics, producing computers that ran Lisp natively from the chips up. These folks also used Lisp and continued pushing it to do what they needed. And the Cold War helped-as the Pentagon poured money into the Defense Advanced Research Projects Agency (DARPA), a lot of it went to folks working on problems such as large-scale battlefield simulations, automated planning, and natural language interfaces. These were problems that required a lot of hard-to-write software to make a dent in them, AI programmers needed a powerful language, and they grew Lisp into the language they needed. During the AI boom of the 1980s, Lisp remained a favorite tool for programmers writing software to solve hard problems such as automated theorem proving, planning and scheduling, and computer vision. How is this possible? What on Earth would provoke the evolution of such a well-equipped language? Well, McCarthy was (and still is) an artificial intelligence (AI) researcher, and many of the features he built into his initial version of the language made it an excellent language for AI programming. For example, a Lisper has recently written a library, AspectL, that adds support for aspect-oriented programming (AOP) to Common Lisp. Whatever new paradigm comes down the pike next, it's extremely likely that Common Lisp will be able to absorb it without requiring any changes to the core language. This allowed Lisp programmers to gain actual experience with the facilities it provided before it was officially incorporated into the language. For instance, the original implementation of the Common Lisp Object System (CLOS), Common Lisp's powerful object system, was as a library written in portable Common Lisp. Another consequence of being 'a programmable programming language' is that Common Lisp, in addition to incorporating small changes that make particular programs easier to write, can easily adopt big new ideas about how programming languages should work. Because of the former, you spend less time convincing the compiler you should be allowed to run your code and more time actually running it and working on it, 4 and the latter lets you develop even your error handling code interactively.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |