CONPL(ID:7623/)for CONceptual Programming Language References: Why Conceptual Programming? The term conceptual programming means the programming style, in which the program is represented as a 'conceptual structure' in the programming system with which the porgrammer interacts for program development. The new programming style is stimulated from the following two observations. Firstly, the concePts such as variable, address, and pointer, in traditional programming language are quite different from human concepts, thus being unnatural for users. For example, when writing a program to determine the area of an equilateral triangle, one must choose the proper variables to represent the edge length and the area. Why can't the user write the program using these concepts directly? Even in logic programming language like Prolog, there still is the same problem. The statement "man is an animal" is represented as animal(X) :-man(X). The introduction of the variable 'X' is obviously unnatural, since it is not the concept we use. Other concepts such as address and pointer are even more unnatural. It seems that we would have never used them if it were not for the computer. Therefore, If the user can use all his own concepts instead of the machine-related concepts in the programs, the programming activity will be very natural. Secondly, the knowledge-based programming style is an attractive goal. The term knowledge-based programming implies that the corresponding programming system should be able to use its own knowledge to solve the user's problem and learn more and more knowledge as it is programmed. The computer is expected to be able to understand somthing, i.e., to have knowledge. Suppose the programming process is just the process of telling the computer some concepts and the relations among them. Also suppose the computer can understand these concepts. We may imagine then that the computer will learn some more knowledge every time when it is programmed in such a way. The knowledge possessed by the computer will increase as the programming continues. Extract: Overview of CONPL Overview of CONPL CONPL (CONceptual Programming Language) is a relational conceptual programming language based on Horn clauses. The basic idea is to view the program as consisting of a set of the relations among the related concepts followed by a query. There is no machine-related concepts in any CONPL program. The whole program is composed of the user's own concepts. Considering the following two statement: 1). Man is an animal. 2). John is a man. Their representations in Prolog are: 3). anim al(X) :-man (X). 4). man(John). Both statements can be represented in CONPL as isa(m an, an im al). isa(John, man). By distinguishing the mass concepts "man" from the individual "John", the CONPL system can understand the two statement correctly as 3) and 4) respectively. Of course, CONPL can provide descriptions of more complex concepts such as : The big tiger which can eat man are dangerous. The statement is represented by dangerous( [big, eat(which,man)]tiger). The CONPL system maintains a dictionary of the recognizable concepts. The Simple structure of the dictionary makes it possible for CONPL to be domain-independent. There are altogether five kinds of basic vocabulary, class, individual, function, attribute, and relation. in [SIGPLAN] SIGPLAN Notices 25(12) December 1990 view details |