Browse Prior Art Database

A COMBINED LOGICAL AND FUNCTIONAL PROGRAMMING LANGUAGE

IP.com Disclosure Number: IPCOM000127939D
Original Publication Date: 1985-Dec-31
Included in the Prior Art Database: 2005-Sep-14
Document File: 18 page(s) / 59K

Publishing Venue

Software Patent Institute

Related People

Michael O. Newton: AUTHOR [+3]

Abstract

Since the development of Prolog in 1974, there has been increasing interest in the area of logic programming. Though Prolog is the moat often used language used for logic programming, it still is lacking many features found is traditional languages such as LISP. These features include functional notation, array handling, and the concept of modularization.

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 6% of the total text.

Page 1 of 18

THIS DOCUMENT IS AN APPROXIMATE REPRESENTATION OF THE ORIGINAL.

A COMBINED LOGICAL AND FUNCTIONAL PROGRAMMING LANGUAGE

Michael O. Newton California Institute of Technology Pasadena, CA. 91125 s

Caltech CS Technical Report 51?2:TR:85

Abstract

Since the development of Prolog in 1974, there has been increasing interest in the area of logic programming. Though Prolog is the moat often used language used for logic programming, it still is lacking many features found is traditional languages such as LISP. These features include functional notation, array handling, and the concept of modularization.

0 This thesis describes a method of adding a fractional style of programming to Prolog. The addition has been a conservative extension - the language is completely compatible with existing Prolog programs. In addition to a working prototype, a method of compilation is presented. t This research partially supported by a contract from the IBM Corporation. $ The research described in this report was sponsored in part by the Defense Advanced Research Projects Agency, ARPA Order number 3771, and monitored by the Office of Naval Research under contract number N00014-79-C-0597. <>

Chapter 1: Introduction

When computers were first developed, programmers wrote their instructions to the machine in machine languages. Being extremely tedious to program, machine -languages were quickly replaced with the development of assembly languages. These relieved the programmer from tedious address calculations, and allowed the use of symbolic names for locations in memory. But, there were as many machine languages as there were different types of machines, and, out of necessity, each assembler language reflected its own particular machine language. In the 1950's Grace Hopper and others developed the idea of a programming language - these were relatively portable from machine to machine, saved the programmer from tedious byte and bit counting, and had as input programs that were much clearer and easier to maintain than assembler or machine language. Two of the languages developed during this time were Fortran and Lisp. For many years Lisp stood apart from all other commonly used languages. It was designed as a language for dealing with lists and nested levels of data. Unlike the others, (pure) Lisp worked without state or so called side effects. Thus, Lisp was the first functional language - the primitive operations were evaluation and quoting (prevention of evaluation). One could pass functions as arguments to other functions and one could return functions as a results. In part, the success of Lisp was also due to its underlying simplicity: There was (at first) but one data structure - the list. An array could be a list of rows, each of the rows being another list of elements. A string was a list of characters. Even the Lisp program was a list - There was no distinction between the program and the data. Among certain computer science subcultures, most noticeably t...