Jump to content

List of programming languages for artificial intelligence: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
Added content
Tags: Reverted Mobile edit Mobile web edit
Sentence on Mojo
(25 intermediate revisions by 12 users not shown)
Line 1: Line 1:
{{Short description|none}}
{{Short description|none}}
{{Artificial intelligence}}Historically, some programming languages have been specifically designed for [[artificial intelligence]] (AI) [[Applications of artificial intelligence|applications]]. Nowadays, many [[General-purpose programming language|general-purpose]] programming languages also have [[Library (computing)|libraries]] that can be used to develop AI applications.
{{Artificial intelligence}}
[[Artificial intelligence art|Artificial intelligence]] researchers have developed several specialized '''programming languages for artificial intelligence''': these includes phyton, java,c++,Rubi and others programming languages or paradigms.


== General-purpose languages ==
== Languages ==
* [[Python (programming language)|Python]] is a [[High-level programming language|high-level]], [[general-purpose programming language]] that is popular in artificial intelligence.<ref name=":0">{{Cite news |last=Wodecki |first=Ben |date=May 5, 2023 |title=7 AI Programming Languages You Need to Know |url=https://aibusiness.com/verticals/7-ai-programming-languages-you-need-to-know#close-modal |work=AI Business}}</ref> It has a simple, flexible and easily readable syntax.<ref>{{cite web |last=Lopez |first=Matthew |date=11 January 2021 |title=Top 10 Reasons Why Python is Good for Artificial Intelligence |url=https://www.technologysumo.com/why-python-is-good-for-artificial-intelligence/ |website=Technology sumo}}</ref> Its popularity results in a vast ecosystem of [[Library (computing)|libraries]], including for [[deep learning]], such as [[PyTorch]], [[TensorFlow]], [[Keras]], [[Google JAX]]. The library [[NumPy]] can be used for manipulating arrays, [[SciPy]] for scientific and mathematical analysis, [[Pandas (software)|Pandas]] for analyzing table data, [[Scikit-learn]] for various [[machine learning]] tasks, [[NLTK]] and [[spaCy]] for [[natural language processing]], [[OpenCV]] for [[computer vision]], and [[Matplotlib]] for [[data visualization]].<ref>{{Cite web |last=Kanade |first=Vijay |date=May 6, 2022 |title=Best Python ML Libraries 2022 |url=https://www.spiceworks.com/tech/artificial-intelligence/articles/top-python-machine-learning-libraries/ |access-date=2024-02-03 |website=Spiceworks |language=en-US}}</ref> [[Hugging Face#Transformers Library|Hugging Face's transformers]] library can manipulate [[large language model]]s.<ref>{{Cite web |last=Chauhan |first=Nagesh Singh |date=February 16, 2021 |title=Hugging Face Transformers Package - What Is It and How To Use It |url=https://www.kdnuggets.com/hugging-face-transformer-basics-what-is-it-and-how-to-use-it |access-date=2024-02-03 |website=KDnuggets |language=en-US}}</ref> [[Jupyter notebook|Jupyter Notebooks]] can execute cells of Python code, retaining the context between the execution of cells, which usually facilitates interactive data exploration.<ref>{{Cite journal |last=Perkel |first=Jeffrey M. |date=2018-10-30 |title=Why Jupyter is data scientists' computational notebook of choice |url=https://www.nature.com/articles/d41586-018-07196-1 |journal=Nature |language=en |volume=563 |issue=7729 |pages=145–146 |doi=10.1038/d41586-018-07196-1|pmid=30375502 |bibcode=2018Natur.563..145P }}</ref>
* [[Artificial Intelligence Markup Language]] (AIML)<ref name="AIML_Repository">according to (the intro page to) the [http://nlp-addiction.com/chatbot/aiml/ AIML Repository] {{Webarchive|url=https://web.archive.org/web/20150414030045/http://nlp-addiction.com/chatbot/aiml/ |date=2015-04-14}} at nlp-addiction.com</ref> is an [[XML]] dialect<ref name="alicebot.org_aiml">See the [http://www.alicebot.org/aiml.html AIML "Intro" (web) page] {{Webarchive|url=https://web.archive.org/web/20131029205936/http://www.alicebot.org/aiml.html |date=2013-10-29}} at www.alicebot.org</ref> for use with [[Artificial Linguistic Internet Computer Entity]] (A.L.I.C.E.)-type [[chatterbot]]s.
*[[R (programming language)|R]] is widely used in new-style artificial intelligence, involving statistical computations, numerical analysis, the use of [[Bayesian inference]], neural networks and in general [[machine learning]]. In domains like finance, biology, sociology or medicine it is considered one of the main standard languages. It offers several paradigms of programming like vectorial computation, [[functional programming]] and [[object-oriented programming]].
* [[C Sharp (programming language)|C#]] can be used to develop high level machine learning models using [[Microsoft]]’s [[.NET]] suite. ML.NET was developed to aid integration with existing .NET projects, simplifying the process for existing software using the .NET platform.
* [[Lisp (programming language)|Lisp]] was the first language developed for artificial intelligence. It includes features intended to support programs that could perform general problem solving, such as lists, associations, schemas (frames), dynamic memory allocation, [[data type]]s, recursion, associative retrieval, functions as arguments, generators (streams), and cooperative multitasking.
* [[Lisp (programming language)|Lisp]] was the first language developed for artificial intelligence. It includes features intended to support programs that could perform general problem solving, such as lists, associations, schemas (frames), dynamic memory allocation, [[data type]]s, recursion, associative retrieval, functions as arguments, generators (streams), and cooperative multitasking.
* [[C++]] is a [[compiled language]] that can interact with low-level hardware. In the context of AI, it is particularly used for [[embedded system]]s and [[robotics]]. Libraries such as [[TensorFlow]] C++, [[Caffe (software)|Caffe]] or Shogun can be used.<ref name=":0"/>
* [[Smalltalk]] has been used extensively for simulations, neural networks, machine learning, and genetic algorithms. It implements a pure and elegant form of object-oriented programming using message passing.
* [[JavaScript]] is widely used for web applications and can notably be executed with [[web browser]]s. Libraries for AI include TensorFlow.js, Synaptic and Brain.js.<ref name=":1">{{Cite news |last=Wodecki |first=Ben |date=May 5, 2023 |title=7 AI Programming Languages You Need to Know |url=https://aibusiness.com/verticals/7-ai-programming-languages-you-need-to-know#close-modal |work=AI Business}}</ref>
* [[Julia (programming language)|Julia]] is a language launched in 2012, which intends to combine ease of use and performance. It is mostly used for [[numerical analysis]], [[computational science]], and machine learning.<ref name=":1"/>
* [[C Sharp (programming language)|C#]] can be used to develop high level machine learning models using [[Microsoft]]’s [[.NET]] suite. ML.NET was developed to aid integration with existing .NET projects, simplifying the process for existing software using the .NET platform.
* [[Smalltalk]] has been used extensively for simulations, neural networks, [[machine learning]], and [[Genetic algorithms for machine learning|genetic algorithms]]. It implements a pure and elegant form of object-oriented programming using [[message passing]].
* [[Haskell]] is a [[Purely functional programming|purely functional]] programming language. Lazy evaluation and the list and LogicT [[Monad (functional programming)|monads]] make it easy to express non-deterministic algorithms, which is often the case. Infinite data structures are useful for [[search tree]]s. The language's features enable a compositional way to express algorithms. Working with graphs is however a bit harder at first because of functional purity.
* [[Wolfram Language]] includes a wide range of integrated machine learning abilities, 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.<ref name="Wolfram Language">[http://reference.wolfram.com/language/guide/MachineLearning.html Wolfram Language]</ref>
* [[Mojo (programming language)|Mojo]] can run some [[Python (programming language)|Python]] programs, and supports programmability of AI hardware. It aims to combine the usability of Python with the performance of [[Low-level programming language|low-level programming languages]] like C++ or [[Rust (programming language)|Rust]].<ref name=IWFirst>{{cite news |last1=Yegulalp |first1=Serdar |title=A first look at the Mojo language |url=https://www.infoworld.com/article/3697739/a-first-look-at-the-mojo-language.html |work=InfoWorld |date=7 June 2023 |language=en}}</ref>

== Specialized languages ==
* [[Prolog]]<ref>
* [[Prolog]]<ref>
History of logic programming:
History of logic programming:
Line 15: Line 23:
* {{Harvnb|Poole|Mackworth|Goebel|1998|pp=477–491}},
* {{Harvnb|Poole|Mackworth|Goebel|1998|pp=477–491}},
* {{Harvnb|Luger|Stubblefield|2004|pp=641–676, 575–581}}
* {{Harvnb|Luger|Stubblefield|2004|pp=641–676, 575–581}}
</ref> is a [[declarative programming|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.
</ref> is a [[declarative programming|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.
* [[Artificial Intelligence Markup Language]] (AIML)<ref name="AIML_Repository">according to (the intro page to) the [http://nlp-addiction.com/chatbot/aiml/ AIML Repository] {{Webarchive|url=https://web.archive.org/web/20150414030045/http://nlp-addiction.com/chatbot/aiml/|date=2015-04-14}} at nlp-addiction.com</ref> is an [[XML]] dialect<ref name="alicebot.org_aiml">See the [http://www.alicebot.org/aiml.html AIML "Intro" (web) page] {{Webarchive|url=https://web.archive.org/web/20131029205936/http://www.alicebot.org/aiml.html|date=2013-10-29}} at www.alicebot.org</ref> for use with [[Artificial Linguistic Internet Computer Entity]] (A.L.I.C.E.)-type [[chatterbot]]s.
* [[Stanford Research Institute Problem Solver]] (STRIPS) is a language to express [[automated planning and scheduling|automated planning problem instance]]s. 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 (programming language)|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.
* [[Planner (programming language)|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.
* [[Stanford Research Institute Problem Solver]] (STRIPS) is a language to express [[automated planning and scheduling|automated planning problem instance]]s. 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.
* [[POP-11]] is a [[Reflection (computer science)|reflective]], [[dynamic compilation|incrementally compiled]] [[programming language]] with many of the features of an [[interpreted language]]. It is the core language of the [[Poplog]] [[Computer programming|programming]] [[system platform|environment]] developed originally by the [[University of Sussex]], and recently in the [http://www.cs.bham.ac.uk/ School of Computer Science] at the [[University of Birmingham]] which hosts [http://www.cs.bham.ac.uk/research/projects/poplog/freepoplog.html the Poplog website], It is often used to introduce symbolic programming techniques to programmers of more conventional languages like [[Pascal (programming language)|Pascal]], who find POP syntax more familiar than that of [[Lisp (programming language)|Lisp]]. One of POP-11's features is that it supports [[first-class function]]s.
* [[POP-11]] is a [[Reflective programming|reflective]], [[dynamic compilation|incrementally compiled]] [[programming language]] with many of the features of an [[Interpreter (computing)|interpreted]] language. It is the core language of the [[Poplog]] [[Computer programming|programming]] [[Computing platform|environment]] developed originally by the [[University of Sussex]], and recently in the [http://www.cs.bham.ac.uk/ School of Computer Science] at the [[University of Birmingham]] which hosts [http://www.cs.bham.ac.uk/research/projects/poplog/freepoplog.html the Poplog website], It is often used to introduce symbolic programming techniques to programmers of more conventional languages like [[Pascal (programming language)|Pascal]], who find POP syntax more familiar than that of [[Lisp (programming language)|Lisp]]. One of POP-11's features is that it supports [[first-class function]]s.
*[[R (programming language)|R]] is widely used in new-style artificial intelligence, involving statistical computations, numerical analysis, the use of [[Bayesian inference]], neural networks and in general [[machine learning]]. In domains like finance, biology, sociology or medicine it is considered one of the main standard languages. It offers several paradigms of programming like vectorial computation, functional programming and object-oriented programming.
* [[CycL]] is a special-purpose language for [[Cyc]].
* [[Python (programming language)|Python]] is widely used for artificial intelligence, with packages for several applications including general AI, [[machine learning]], [[natural language processing]], and [[artificial neural network]]s.<ref>[https://wiki.python.org/moin/PythonForArtificialIntelligence Python For Artificial Intelligence] {{webarchive|url=https://web.archive.org/web/20121101045354/http://wiki.python.org/moin/PythonForArtificialIntelligence |date=2012-11-01}} Python Wiki 2015</ref> The application of AI to develop programs that do human-like jobs and portray human skills is machine learning. Both artificial intelligence and machine learning are closely connected and are being used widely today.<ref>{{cite web |url=https://www.technologysumo.com/why-python-is-good-for-artificial-intelligence/ |title=Top 10 Reasons Why Python is Good for Artificial Intelligence |last=Lopez |first=Matthew |date=11 January 2021}}</ref>
* [[Haskell]] is a very good language for AI. Lazy evaluation and the list and LogicT [[Monad (functional programming)|monads]] make it easy to express non-deterministic algorithms, which is often the case. Infinite data structures are great for [[search tree]]s. The language's features enable a compositional way to express algorithms. The only drawback is that working with graphs is a bit harder at first because of functional purity.
* [[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.<ref name="Wolfram Language">[http://reference.wolfram.com/language/guide/MachineLearning.html Wolfram Language]</ref>
* [[Julia (programming language)|Julia]], e.g. for machine learning, using native or non-native libraries.
* [[Mojo (programming language)|Mojo]] can run some [[Python (programming language)|Python]] programs, and supports programmability of AI hardware.<ref name=IWFirst>{{cite news |last1=Yegulalp |first1=Serdar |title=A first look at the Mojo language |url=https://www.infoworld.com/article/3697739/a-first-look-at-the-mojo-language.html |work=InfoWorld |date=7 June 2023 |language=en}}</ref>


== See also ==
== See also ==
Line 42: Line 46:
=== Major AI textbooks ===
=== Major AI textbooks ===
:''See also the [[Talk:Artificial intelligence/Textbook survey|AI textbook survey]]''
:''See also the [[Talk:Artificial intelligence/Textbook survey|AI textbook survey]]''
* {{Citation | first=George | last=Luger | author-link=George Luger | first2=William | last2=Stubblefield | author2-link=William Stubblefield | year=2004 | title=Artificial Intelligence: Structures and Strategies for Complex Problem Solving | edition=5th | publisher=The Benjamin/Cummings Publishing Company, Inc. | isbn=0-8053-4780-1 | url=https://archive.org/details/artificialintell0000luge | url-access=registration }}
* {{Citation | first1=George | last1=Luger | author-link=George Luger | first2=William | last2=Stubblefield | author2-link=William Stubblefield | year=2004 | title=Artificial Intelligence: Structures and Strategies for Complex Problem Solving | edition=5th | publisher=The Benjamin/Cummings Publishing Company, Inc. | isbn=0-8053-4780-1 | url=https://archive.org/details/artificialintell0000luge | url-access=registration }}
* {{Citation
* {{Citation
| last=Nilsson | first=Nils | author-link=Nils Nilsson (researcher)
| last=Nilsson | first=Nils | author-link=Nils Nilsson (researcher)
Line 49: Line 53:
| isbn=978-1-55860-467-4}}
| isbn=978-1-55860-467-4}}
* {{Russell Norvig 2003}}
* {{Russell Norvig 2003}}
* {{Citation | first = David | last = Poole | author-link = David Poole (researcher) | first2 = Alan | last2 = Mackworth | author2-link = Alan Mackworth | first3 = Randy | last3 = Goebel | author3-link = Randy Goebel | publisher = Oxford University Press | place = New York | year = 1998 | title = Computational Intelligence: A Logical Approach | url = https://archive.org/details/computationalint00pool | isbn = 0-19-510270-3 }}
* {{Citation | first1 = David | last1 = Poole | author-link = David Poole (researcher) | first2 = Alan | last2 = Mackworth | author2-link = Alan Mackworth | first3 = Randy | last3 = Goebel | author3-link = Randy Goebel | publisher = Oxford University Press | place = New York | year = 1998 | title = Computational Intelligence: A Logical Approach | url = https://archive.org/details/computationalint00pool | isbn = 0-19-510270-3 }}
* {{Citation | first = Patrick Henry | last = Winston | author-link = Patrick Winston | publisher = Addison-Wesley | year = 1984 | place = Reading, Massachusetts | isbn = 0-201-08259-4 | title = Artificial Intelligence | url = https://archive.org/details/artificialintell00wins }}
* {{Citation | first = Patrick Henry | last = Winston | author-link = Patrick Winston | publisher = Addison-Wesley | year = 1984 | place = Reading, Massachusetts | isbn = 0-201-08259-4 | title = Artificial Intelligence | url = https://archive.org/details/artificialintell00wins }}



Revision as of 23:10, 26 May 2024

Historically, some programming languages have been specifically designed for artificial intelligence (AI) applications. Nowadays, many general-purpose programming languages also have libraries that can be used to develop AI applications.

General-purpose languages

Specialized languages

See also

Notes

  1. ^ a b Wodecki, Ben (May 5, 2023). "7 AI Programming Languages You Need to Know". AI Business.
  2. ^ Lopez, Matthew (11 January 2021). "Top 10 Reasons Why Python is Good for Artificial Intelligence". Technology sumo.
  3. ^ Kanade, Vijay (May 6, 2022). "Best Python ML Libraries 2022". Spiceworks. Retrieved 2024-02-03.
  4. ^ Chauhan, Nagesh Singh (February 16, 2021). "Hugging Face Transformers Package - What Is It and How To Use It". KDnuggets. Retrieved 2024-02-03.
  5. ^ Perkel, Jeffrey M. (2018-10-30). "Why Jupyter is data scientists' computational notebook of choice". Nature. 563 (7729): 145–146. Bibcode:2018Natur.563..145P. doi:10.1038/d41586-018-07196-1. PMID 30375502.
  6. ^ a b Wodecki, Ben (May 5, 2023). "7 AI Programming Languages You Need to Know". AI Business.
  7. ^ Wolfram Language
  8. ^ Yegulalp, Serdar (7 June 2023). "A first look at the Mojo language". InfoWorld.
  9. ^ History of logic programming:
  10. ^ Prolog:
  11. ^ according to (the intro page to) the AIML Repository Archived 2015-04-14 at the Wayback Machine at nlp-addiction.com
  12. ^ See the AIML "Intro" (web) page Archived 2013-10-29 at the Wayback Machine at www.alicebot.org

References

Major AI textbooks

See also the AI textbook survey

History of AI