s243a 0 Report post Posted January 16, 2005 This discussion is created to discuss current programming paradigms and propose new programming paradigms. First Some thoughts: Functional programming is often used in AI languages because it allows a top down design approaches. The program can begin by describing the high level functionality and later flesh out the low level details. This is in contrast to procedural programming in which the problem is first broken down into smaller problems. The smaller problems are solved and then put together to solve the larger problem. One functional programming is called lisp. Lisp stands for list processing. A list is just an ordered set of items that can either be literals or a link to another list. This data structure is well suited for mathematical expressions. In the functional programming language MAPLE the first element of the list is the operator and the following elements are the arguments. Because elements in a list are linked to another list the structure can be represented as a tree. The representation of a list is not a unique way to structure the data but it is well suited to recursive processing. It also avoids the need for parsing which makes it easier for the compiler to quickly compile the code at runtime. MATLAB represents mathematical symbolic expressions as an object where one of the field is a string that contains the symbolic expression. It evaluates them by calling the maple Kernal with the expression specified by the string. The representation as a string makes the expression quick to read by a human user and allows string processing functions to be applied to the expression. There are many other ways to represent expressions. A polynomial can be represented purely by its coefficients. An object oriented paradigm could represent each different representation of data with a unique object. Each object could override the method used to perform an operation for advantages of speed. Share this post Link to post Share on other sites