Page 78 - DCAP310_INTRODUCTION_TO_ARTIFICIAL_INTELLIGENCE_AND_EXPERT_SYSTEMS
P. 78

Introduction to Artificial Intelligence & Expert Systems




                    Notes          could be used for simulating human intelligence. Soon it turned out that programming with
                                   symbols required a higher level of abstraction than was possible with those programming
                                   languages which were designed especially for number processing, e.g., Fortran.

                                   5.1 AI Programming Languages

                                   In AI, the automation or programming of all aspects of human cognition is considered from its
                                   foundations in cognitive science through approaches to symbolic and sub-symbolic AI, natural
                                   language processing, computer vision, and evolutionary or adaptive systems. It is inherent to
                                   this very complex problem domain that in the initial phase of programming a specific AI
                                   problem, it can only be specified poorly. Only through interactive and incremental refinement
                                   does more precise specification become possible. This is also due to the fact that typical AI
                                   problems tend to be very domain specific; therefore heuristic strategies have to be developed
                                   empirically through generate-and-test approaches (also known as rapid prototyping). In this
                                   way, AI programming notably differs from standard software engineering approaches where
                                   programming usually starts from a detailed formal specification. In AI programming, the
                                   implementation effort is actually part of the problem specification process. Due to the “fuzzy”
                                   nature of many AI problems, AI programming benefits considerably if the programming
                                   language frees the AI programmer from the constraints of too many technical constructions
                                   (e.g., low-level construction of new data types, manual allocation of memory).




                                     Did u know? A declarative programming style is more convenient using built-in high-
                                     level data structures (e.g., lists or trees) and operations (e.g., pattern matching) so that
                                     symbolic computation is supported on a much more abstract level than would be possible
                                     with standard imperative languages, such as Fortran, Pascal or C. Of course, this sort of
                                     abstraction does not come for free, since compilation of AI programs on standard Von
                                     Neumann computers cannot be done as efficiently as for imperative languages.
                                   However, once a certain AI problem is understood (at least partially), it is possible to reformulate
                                   it in form of detailed specifications as the basis for re-implementation using an imperative
                                   language. From the requirements of symbolic computation and AI programming, two new
                                   basic programming paradigms emerged as alternatives to the imperative style: the functional
                                   and the logical programming style. Both are based on mathematical formalisms, namely recursive
                                   function theory and formal logic. The first practical and still most widely used AI programming
                                   language is the functional language Lisp developed by John McCarthy in the late 1950s. Lisp is
                                   based on mathematical function theory and the lambda abstraction. A number of important and
                                   influential AI applications have been written in Lisp so we will describe this programming
                                   language in some detail in this article. During the early 1970s, a new programming paradigm
                                   appeared, namely logic programming on the basis of predicate calculus. The first and still most
                                   important logic programming language is Prolog, developed by Alain Colmerauer, Robert
                                   Kowalski and Phillippe Roussel. Problems in Prolog are stated as facts, axioms and logical rules
                                   for deducing new facts.




                                     Notes Prolog is mathematically founded on predicate calculus and the theoretical results
                                     obtained in the area of automatic theorem proving in the late 1960s.










          72                                LOVELY PROFESSIONAL UNIVERSITY
   73   74   75   76   77   78   79   80   81   82   83