Bench Talk for Design Engineers

Bench Talk

rss

Bench Talk for Design Engineers | The Official Blog of Mouser Electronics


Languages Evolve to Support AI Development M. Tim Jones

(Source: Virrage Images/Shutterstock.com)

In the early days, AI was powered predominantly by the Lisp (LISt Processor) programming language on dedicated hardware that ran primitive Lisp operations. Lisp was one of the earliest languages, and was efficient at processing lists of items. General-purpose machines then became vogue and programming models followed suit. But with the resurgence of machine learning and, in particular, deep learning, new approaches and toolkits optimize these data flows.  Here, we'll explore the confluence of machine learning and software platforms.

Early AI History

Artificial intelligence and Lisp were inexorably intertwined because the concept and the language originated from the same person, John McCarthy (1927-2011). In its earliest form, AI was focused on search and symbolic processing more than the numerical approaches that dominate today. Lisp, with its ability to represent complex data simply and naturally and its use of recursion (which is used for iteration and search) made it ideal for many problems of that time. And with its interactive interpreter–called a REPL or Read Evaluate Print Loop–Lisp made exploratory programming easier, which was ideal for solving problems that weren’t fully understood.

But Lisp’s power was also its greatest detractor; its functional style of programming was difficult and opened the door to new programming language paradigms. And while functional programming continues to be used today, imperative, object-oriented, and multi-paradigm languages are more common today.

Modern AI Languages

While it’s possible to develop applications for AI in any programming language, some are better than others. Whether the language itself or the support around the language, certain languages greatly simplify AI development.

Logic Programming

The Prolog language was introduced in 1972 and has its roots in first-order logic where programs are defined by facts and rules. The program can be queried to apply the rules over the facts and produce a result. Prolog remains in wide use today for applications such as expert systems and automated planning systems. Prolog was originally designed for natural language processing and it continues to find applications there.

General Purpose Languages

Twenty years after the introduction of Prolog, a general-purpose language appeared called Python that was designed around code readability. Although Python gained early interest as an educational language to teach programming, it has exploded into a widely used language in various domains, including artificial intelligence and machine learning. One of the key advantages of Python is its massive set of libraries and toolkits that make building applications simpler. For example, Python can be used with the TensorFlow open-source toolkit for building deep learning applications. This is beneficial when you want to deploy deep learning without developing the detailed deep neural network structures that would be required.

Statistical Computing

A similar model was used in the R language, which is both a language and environment for statistical computing with graphical presentation). R is a highly extensible language that is expanded through the integration of packages. Packages collect functions and data together for some specific application that can then be used in R programs, such as statistical functions, or entire deep learning toolkits. As of 2020, over 15,000 packages are available for the R language.

New Functional Approaches

Although Lisp is predominantly a footnote in machine learning today, its functional roots have sprouted new languages that follow this paradigm. The Haskell language is a purely functional language with a strong type system that results in safer code; a useful characteristic when considering machine learning and the explosion of Internet of Things devices. Although lacking the broad set of libraries available for Python and R, Haskell includes binding for machine learning toolkits making it simple to build machine learning applications with Haskell.

Toolkits

Along with languages, toolkits and libraries have also evolved in the pursuit of machine learning applications. These toolkits, such as TensorFlow, provide capabilities to languages to build complex machine-learning applications without building these capabilities from the ground up. TensorFlow provides interfaces to various languages such as Python, Haskell, and R and makes it simple to build and deploy deep learning applications.

Summary

The concept of AI and formation of its numerical progeny machine learning have created a coevolution of languages and toolkits. Languages provide the general purpose capabilities for building diverse applications while toolkits expand these languages with specific machine learning capabilities.



« Back


M. Tim Jones is a veteran embedded firmware architect with over 30 years of architecture and development experience.  Tim is the author of several books and many articles across the spectrum of software and firmware development.  His engineering background ranges from the development of kernels for geosynchronous spacecraft to embedded systems architecture and protocol development. 


All Authors

Show More Show More
View Blogs by Date

Archives