List of programming languages for artificial intelligence
Artificial intelligence researchers have developed several specialized programming languages for artificial intelligence:
Languages
- AIML (meaning "Artificial Intelligence Markup Language")[1] is an XML dialect[2] for use with A.L.I.C.E.-type chatterbots.
- IPL[3] was the first language developed for artificial intelligence. It includes features intended to support programs that could perform general problem solving, including lists, associations, schemas (frames), dynamic memory allocation, data types, recursion, associative retrieval, functions as arguments, generators (streams), and cooperative multitasking.
- Lisp[4] is a practical mathematical notation for computer programs based on lambda calculus. Linked lists are one of Lisp languages' major data structures, and Lisp source code is itself made up of lists. As a result, Lisp programs can manipulate source code as a data structure, giving rise to the macro systems that allow programmers to create new syntax or even new domain-specific programming languages embedded in Lisp. There are many dialects of Lisp in use today, among them are Common Lisp, Scheme, and Clojure.
- Smalltalk has been used extensively for simulations, neural networks, machine learning and genetic algorithms. It implements the purest and most elegant form of object-oriented programming using message passing.
- Prolog[5][6] is a declarative language where programs are expressed in terms of relations, and execution occurs by running queries over these relations. Prolog is particularly useful for symbolic reasoning, database and language parsing applications. Prolog is widely used in AI today.
- STRIPS is a language for expressing automated planning problem instances. It expresses an initial state, the goal states, and a set of actions. For each action preconditions (what must be established before the action is performed) and postconditions (what is established after the action is performed) are specified.
- Planner is a hybrid between procedural and logical languages. It gives a procedural interpretation to logical sentences where implications are interpreted with pattern-directed inference.
- POP-11 is a reflective, incrementally compiled programming language with many of the features of an interpreted language. It is the core language of the Poplog programming environment developed originally by the University of Sussex, and recently in the School of Computer Science at the University of Birmingham which hosts the Poplog website, It is often used to introduce symbolic programming techniques to programmers of more conventional languages like Pascal, who find POP syntax more familiar than that of Lisp. One of POP-11's features is that it supports first-class functions.
- Python is very widely used for Artificial Intelligence. They have a lot of different AIs with corresponding packages: General AI, Machine Learning, Natural Language Processing and Neural Networks.[7] Companies like Narrative Science use Python to create an artificial intelligence for Narrative Language Processing.[8]
- Haskell is also a very good programming language for AI. Lazy evaluation and the list and LogicT monads make it easy to express non-deterministic algorithms, which is often the case. Infinite data structures are great for search trees. The language's features enable a compositional way of expressing the algorithms. The only drawback is that working with graphs is a bit harder at first because of purity.
- Wolfram Language The Wolfram Language includes a wide range of integrated machine learning capabilities, from highly automated functions like Predict and Classify to functions based on specific methods and diagnostics. The functions work on many types of data, including numerical, categorical, time series, textual, and image.[9]
- C++ (2011 onwards)
- MATLAB
See also
- List of constraint programming languages.
- List of computer algebra systems.
- List of logic programming languages.
- List of knowledge representation languages.
- Fifth-generation programming language.
Notes
- ↑ according to (the intro page to) the AIML Repository at nlp-addiction.com
- ↑ See the AIML "Intro" (web) page at www.alicebot.org
- ↑ Crevier 1993, pp. 46–48
- ↑ Lisp:
- Luger & Stubblefield 2004, pp. 723–821
- Crevier 1993, pp. 59–62,
- Russell & Norvig 2003, p. 18
- ↑ History of logic programming:
- Crevier 1993, pp. 190–196.
- ↑ Prolog:
- Poole, Mackworth & Goebel 1998, pp. 477–491,
- Luger & Stubblefield 2004, pp. 641–676, 575–581
- ↑ Python For Artificial Intelligence Python Wiki 2015
- ↑ Life at Narrative Science September 2015.
- ↑ Wolfram Language
References
Major AI textbooks
- See also the AI textbook survey
- Luger, George; Stubblefield, William (2004), Artificial Intelligence: Structures and Strategies for Complex Problem Solving (5th ed.), The Benjamin/Cummings Publishing Company, Inc., ISBN 0-8053-4780-1
- Nilsson, Nils (1998), Artificial Intelligence: A New Synthesis, Morgan Kaufmann Publishers, ISBN 978-1-55860-467-4
- Russell, Stuart J.; Norvig, Peter (2003), Artificial Intelligence: A Modern Approach (2nd ed.), Upper Saddle River, New Jersey: Prentice Hall, ISBN 0-13-790395-2
- Poole, David; Mackworth, Alan; Goebel, Randy (1998), Computational Intelligence: A Logical Approach, New York: Oxford University Press, ISBN 0-19-510270-3
- Winston, Patrick Henry (1984), Artificial Intelligence, Reading, Massachusetts: Addison-Wesley, ISBN 0-201-08259-4
History of AI
- Crevier, Daniel (1993), AI: The Tumultuous Search for Artificial Intelligence, New York, NY: BasicBooks, ISBN 0-465-02997-3
- McCorduck, Pamela (2004), Machines Who Think (2nd ed.), Natick, MA: A. K. Peters, Ltd., ISBN 1-56881-205-1
This article is issued from Wikipedia - version of the 11/27/2016. The text is available under the Creative Commons Attribution/Share Alike but additional terms may apply for the media files.