{"title":"Links: Java resource for artificial intelligence","authors":"Syed S. Ali, S. McRoy","doi":"10.1145/337897.337987","DOIUrl":null,"url":null,"abstract":"What is Java? Java is a new, object-oriented programming language developed by Sun Microsystems. In this article we will be motivating the use of Java for building software for artificial intelligence (AI). Additionally, we will point out some existing AI resources that have been written in Java. Although Java is a general-purpose programming language and not, by itself, an ideal language for building AI software (it is a bit too low-level, like C++), it offers many benefits to AI applications and application designers. For example, it provides platform-independent support for rapid development of graphical user interfaces, as well as for building programs that are network aware. Java also provides ideal wrapper services, allowing you to write AI programs that work in a variety of situations, with minimal recoding. Java resembles C++ but is much simpler; like nondestructive Lisp, it does not have explicit manipulation of pointers (it uses object references). The complexity and utility of Java lies in the libraries provided by the Java 2.0 platform. The Java 2.0 platform features the following characteristics relevant to AI: ✦ Runs independently of machine and operating system. ✦ Runs quickly (and is getting faster with new versions of the Java 2.0 platform). ✦ Is available from a number of sources, including free ones. ✦ Includes a relatively small run-time environment. ✦ Provides a sophisticated library of GUI-building components called Swing. ✦ Supports multithreaded programming. ✦ Is Internet aware (that is, it provides intrinsic support for network functions). Why use Java for AI? Machine-independence, size, speed, and costeffectiveness are clear advantages of Java. However, these benefits are not free; learning how to effectively program with Java is a significant task, even for experienced programmers. Building appealing and usable GUI frontends to software (AI or otherwise) is necessary. The Swing library is especially useful for AI programming, because it allows AI programmers to add and test GUI front-ends quickly. For example, the library includes facilities for adding a variety of GUI components, including toolbars, menus, and dialog boxes. More complex GUI components include trees and tables. All these components are implemented as objects and thus can be created, changed, and extended easily. Support for multithreading is also important for building AI programs because a complex task can be broken into subtasks that run in separate threads. Multiprocessing in Java is accomplished using threads; they allow a Java program to create subprocesses that run separately and to communicate with these processes as easily as one might read from or write to a file. Java includes thread synchronization that is based on semaphores and is easy to use.","PeriodicalId":8272,"journal":{"name":"Appl. Intell.","volume":"17 1","pages":"15-16"},"PeriodicalIF":0.0000,"publicationDate":"2000-06-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"3","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Appl. Intell.","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/337897.337987","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 3
Abstract
What is Java? Java is a new, object-oriented programming language developed by Sun Microsystems. In this article we will be motivating the use of Java for building software for artificial intelligence (AI). Additionally, we will point out some existing AI resources that have been written in Java. Although Java is a general-purpose programming language and not, by itself, an ideal language for building AI software (it is a bit too low-level, like C++), it offers many benefits to AI applications and application designers. For example, it provides platform-independent support for rapid development of graphical user interfaces, as well as for building programs that are network aware. Java also provides ideal wrapper services, allowing you to write AI programs that work in a variety of situations, with minimal recoding. Java resembles C++ but is much simpler; like nondestructive Lisp, it does not have explicit manipulation of pointers (it uses object references). The complexity and utility of Java lies in the libraries provided by the Java 2.0 platform. The Java 2.0 platform features the following characteristics relevant to AI: ✦ Runs independently of machine and operating system. ✦ Runs quickly (and is getting faster with new versions of the Java 2.0 platform). ✦ Is available from a number of sources, including free ones. ✦ Includes a relatively small run-time environment. ✦ Provides a sophisticated library of GUI-building components called Swing. ✦ Supports multithreaded programming. ✦ Is Internet aware (that is, it provides intrinsic support for network functions). Why use Java for AI? Machine-independence, size, speed, and costeffectiveness are clear advantages of Java. However, these benefits are not free; learning how to effectively program with Java is a significant task, even for experienced programmers. Building appealing and usable GUI frontends to software (AI or otherwise) is necessary. The Swing library is especially useful for AI programming, because it allows AI programmers to add and test GUI front-ends quickly. For example, the library includes facilities for adding a variety of GUI components, including toolbars, menus, and dialog boxes. More complex GUI components include trees and tables. All these components are implemented as objects and thus can be created, changed, and extended easily. Support for multithreading is also important for building AI programs because a complex task can be broken into subtasks that run in separate threads. Multiprocessing in Java is accomplished using threads; they allow a Java program to create subprocesses that run separately and to communicate with these processes as easily as one might read from or write to a file. Java includes thread synchronization that is based on semaphores and is easy to use.