[net.lang.prolog] PROLOG Digest V4 #63

PROLOG-REQUEST@SU-SCORE.ARPA (Chuck Restivo, The Moderator) (11/01/86)

PROLOG Digest             Monday, 3 Nov 1986       Volume 4 : Issue 63

Today's Topics:
                  Query - Access to C-Prolog parser,
                LP Library - Mode for GNU Emacs 17.64
             & Declarative Language Bibliography - Part G
----------------------------------------------------------------------

Date: 29 Oct 86 07:54:00 EST
From: John  Cugini <cugini@nbs-vms.ARPA>
Subject: getting at the C-Prolog parser

I have the awful feeling there's an easy way to do this,
but since I can not figure it out:

In C-Prolog, is there an easy, efficient way to translate
between a string and a compound term, ie something like:

full_name(a(b,c), "a(b,c)")

Regular old name/2 only works for atomic terms.  The easy
way to do this is to output the string or term to a file,
close the file, re-open it as input, and then read it back
in the "other way", ie put and read OR write and get, but
this seems inefficient.  The efficient way is to write a
term-parser/de-parser, but why bother since there's
already one buried in C-Prolog itself?

In FORTRAN, e.g., one can do pseudo-IO, ie read and write
to a string, rather than a file.  A similar function
would do the trick in C-Prolog.

Thank you  for any thoughts on this.

-- John Cugini

------------------------------

Date: 28 Oct 86 12:07:21 GMT
From: umerin@flab.uucp
Subject: Prolog mode for GNU Emacs 17.64

Lots of requests for prolog mode for GNU Emacs I received.
Since I couldn't reply to all of them I decided to post it
here.

-- Masanobu UMEDA
   umerin@flab.fujitsu.junet
----------------------------------------------------------------
;; Run Prolog under Emacs (GNU Emacs 17.64)
;; Copyright (C) 1986 Masanobu UMEDA (umerin@flab.fujitsu.junet)

;; This file is part of GNU Emacs.

;; GNU Emacs is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY.  No author or distributor
;; accepts responsibility to anyone for the consequences of using
;; it or for whether it serves any particular purpose or works at
;; all, unless he says so in writing.  Refer to the GNU Emacs
;; General Public License for full details.

;; Everyone is granted permission to copy, modify and
;; redistribute GNU Emacs, but only under the conditions
;; described in theGNU Emacs General Public License.   A copy of
;; this license is supposed to have been given to you along with
;; GNU Emacs so you can know your rights and responsibilities.
;; It should be in a file named COPYING.  Among other things, the
;; copyright notice and this notice must be preserved on all
;; copies.

(require 'shell)

(make-variable-buffer-local 'shell-prompt-pattern)

(defvar prolog-mode-syntax-table nil "")
(defvar prolog-mode-abbrev-table nil "")

(defvar prolog-eof-string "\^D"
  "End of file string sent to inferior prolog process.")

(if (not prolog-mode-syntax-table)
    (let ((i 0))
      (setq prolog-mode-syntax-table (make-syntax-table))
      (set-syntax-table prolog-mode-syntax-table)
      (modify-syntax-entry ?_ "w")
      (modify-syntax-entry ?\\ "\\")
      (modify-syntax-entry ?/ ".")
      (modify-syntax-entry ?* ".")
      (modify-syntax-entry ?+ ".")
      (modify-syntax-entry ?- ".")
      (modify-syntax-entry ?= ".")
      (modify-syntax-entry ?% "<")
      (modify-syntax-entry ?< ".")
      (modify-syntax-entry ?> ".")
      (modify-syntax-entry ?\' "\""))
  )

(define-abbrev-table 'prolog-mode-abbrev-table ())

(defun prolog-mode-variables ()
  (set-syntax-table prolog-mode-syntax-table)
  (setq local-abbrev-table prolog-mode-abbrev-table)
  (make-local-variable 'paragraph-start)
  (setq paragraph-start (concat "^%%\\|^$\\|" page-delimiter)) ;'%%..'
  (make-local-variable 'paragraph-separate)
  (setq paragraph-separate paragraph-start)
  (make-local-variable 'indent-line-function)
  (setq indent-line-function 'prolog-indent-line)
  (make-local-variable 'comment-start)
  (setq comment-start "%")
  (make-local-variable 'comment-start-skip)
  (setq comment-start-skip "%+ *")
  (make-local-variable 'comment-column)
  (setq comment-column 40)
  (make-local-variable 'comment-indent-hook)
  (setq comment-indent-hook 'prolog-comment-indent))

(defun prolog-mode-commands (map)
  (define-key map "\t" 'prolog-indent-line))

(defvar prolog-mode-map (make-sparse-keymap))
(define-key prolog-mode-map "\e\C-x" 'prolog-consult-region)
(prolog-mode-commands prolog-mode-map)

(defun prolog-mode ()
  "Major mode for editing Prolog code for Prologs.
Commands:
Blank lines and '%%...' separate paragraphs.  '%'s start comments.
\\{prolog-mode-map}
Entry to this mode calls the value of prolog-mode-hook
if that value is non-nil."
  (interactive)
  (kill-all-local-variables)
  (use-local-map prolog-mode-map)
  (setq major-mode 'prolog-mode)
  (setq mode-name "Prolog")
  (prolog-mode-variables)
  (run-hooks 'prolog-mode-hook))

(defun prolog-indent-line (&optional whole-exp)
  "Indent current line as Prolog code.
With argument, indent any additional lines of the same clause
rigidly along with this one (not yet)."
  (interactive "p")
  (let ((indent (prolog-indent-level))
        (pos (- (point-max) (point))) beg)
    (beginning-of-line)
    (setq beg (point))
    (skip-chars-forward " \t")
    (if (zerop (- indent (current-column)))
        nil
      (delete-region beg (point))
      (indent-to indent))
    (if (> (- (point-max) pos) (point))
        (goto-char (- (point-max) pos)))
    ))

(defun prolog-indent-level ()
  "Compute prolog indentation level."
  (save-excursion
    (beginning-of-line)
    (skip-chars-forward " \t")
    (cond
     ((looking-at "%%") 0)              ;Large comment
                                        ;starts
     ((looking-at "%") comment-column)  ;Small comment
                                        ;starts
     ((bobp) 0)                         ;Beginning of
                                        ;buffer
     (t
      (let ((empty t) ind more less)
        (if (looking-at ")")
            (setq less t)               ;Find close
          (setq less nil))
        ;; See previous indentation
        (while empty
          (forward-line -1)
          (beginning-of-line)
          (if (bobp) (setq empty nil))
          (skip-chars-forward " \t")
          (if (not (or (looking-at "%") (looking-at
                                                "\n")))
              (setq empty nil)))
        (setq ind (current-column))     ;Beginning of
                                        ;clause
        ;; See its beginning
        (if (looking-at "(")
            (setq more t)               ;Find open
          (setq more nil))
        (end-of-prolog-clause)
        (or (bobp) (forward-char -1))
        ;; See its tail
        (if (looking-at "[,(;>]")
            (if (and more
                     (looking-at "[^,]"))
                (+ ind tab-width)       ;More indentation
              (max tab-width ind))      ;Same indentation
          (if (looking-at "-")
              tab-width                 ;TAB
            (if (or less
                    (looking-at "[^.]"))
                (max (- ind tab-width) 0) ;Less indentation
              0)                        ;No indentation
            )
          )
        ))
     )))

(defun end-of-prolog-clause ()
  "Go to end of clause in this line."
  (beginning-of-line 1)
  (if (null comment-start)
      (error "No comment syntax defined")
    (let* ((eolpos (save-excursion (end-of-line) (point))))
      (if (re-search-forward comment-start-skip eolpos'move)
                                                
          (goto-char (match-beginning 0)))
      (skip-chars-backward " \t")
      )
    )
  )

(defun prolog-comment-indent ()
  "Compute prolog comment indentation."
  (if (looking-at "%%")
      0
    (save-excursion
      (skip-chars-backward " \t")
      (max (1+ (current-column))        ;Insert one space at
                                        ;least
           comment-column))
    )
  )


;;;
;;; Inferior prolog mode
;;;
(defvar inferior-prolog-mode-map nil)
(if inferior-prolog-mode-map
    nil
  (setq inferior-prolog-mode-map (copy-alist shell-mode-map))
                                        
  (prolog-mode-commands  inferior-prolog-mode-map)
  (define-key inferior-prolog-mode-map "\e\C-x"
                        'prolog-consult-region))

(defun inferior-prolog-mode ()
  "Major mode for interacting with an inferior Prolog process.
                                                

The following commands are available:
\\{inferior-prolog-mode-map}

Entry to this mode calls the value of prolog-mode-hook with no
arguments, if that value is non-nil.  Likewise with the value
of shell-mode-hook.  prolog-mode-hook is called after
shell-mode-hook.

You can send text to the inferior Prolog from other buffers
using the commands send-region, send-string and
\\[prolog-consult-region].

Commands:
Tab indents for Prolog; with argument, shifts rest
 of expression rigidly with the current line.
Paragraphs are separated only by blank lines and '%%'. '
                                %'s start comments.

Return at end of buffer sends line as input.
Return not at end copies rest of line to end and sends it.
\\[shell-send-eof] sends end-of-file as input.
\\[kill-shell-input] and \\[backward-kill-word] are kill
        commands, imitating normal Unix input editing.
\\[interrupt-shell-subjob] interrupts the shell or its current
                        subjob if any.
\\[stop-shell-subjob] stops, likewise. \\[quit-shell-subjob]
                        sends quit signal, likewise."
  (interactive)
  (kill-all-local-variables)
  (setq major-mode 'inferior-prolog-mode)
  (setq mode-name "Inferior Prolog")
  (setq mode-line-format
        "--%1*%1*-Emacs: %17b   %M   %[(%m: %s)%]----%3p--%-")
  (prolog-mode-variables)
  (use-local-map inferior-prolog-mode-map)
  (make-local-variable 'last-input-start)
  (setq last-input-start (make-marker))
  (make-local-variable 'last-input-end)
  (setq last-input-end (make-marker))
  (setq shell-prompt-pattern "^| [ ?][- ] *") ;Set prolog prompt pattern
                                                        
  (run-hooks 'shell-mode-hook 'prolog-mode-hook))

(defun run-prolog ()
  "Run an inferior Prolog process, input and output via buffer *prolog*."
                                                
  (interactive)
  (switch-to-buffer (make-shell "prolog" "prolog"))
  (inferior-prolog-mode))

(defun prolog-consult-region ()
  "Send the region to the Prolog process made by M-x run-prolog."
                                                
  (interactive)
  (save-excursion
    (send-string "prolog" "[-user].\n") ;Reconsult mode
    (send-region "prolog" (mark) (point))
    (send-string "prolog" prolog-eof-string) ;Send eof to prolog process.
                                        
    )
  )

(defun prolog-consult-region-and-go ()
  "Send the region to the inferior Prolog, and switch to *prolog* buffer."
                                        
  (interactive)
  (prolog-consult-region)
  (switch-to-buffer "*prolog*"))
--
=============================================================

-- Masanobu UMEDA

NOTES: Views and conclusions contained in this article are
the authors' and should not be interpreted as representing
the official opinion or policy of Fujitsu.

------------------------------

Date: Mon, 11 Aug 86 17:06:57 MDT
From: Lauren Smith <ls%f@LANL.ARPA>
Subject: Part G

GALI86a
Gallimore R. & Coleman D.
Rigorous Program Development Using OBJ
RMG/SIGFM/0
Presented at The Alvey SIG FM One Day Colloquium on The
Specification Language OBJ And Applications, Imperial
College
Friday, 18th April, 1986

GALL84a
Gallier J.H. & Raatz S.
Graph-Based Logic Programming Interpreters
Dept of Computer and Information Science, University of
Pennsylvania,
MS-C15-84-61
November 1984

GANZ85a
Ganzinger H. & Hanus M.
1985 IEEE Symposium on Logic Programming, July 15-18,
1985
Boston, Massachusetts
pp 242-253
1985

GERR86a
Gerrard C.P.
Experience With OBJ In The Specification Of A Configuration
Management System
Presented at The Alvey SIG FM One Day Colloquium on The
Specification Language OBJ And Applications, Imperial College
Friday, 18th April, 1986

GERR86b
Gerrard C.P.
Experience With OBJ In The Design Of A Configuration
Management System
Presented at The Alvey SIG FM One Day Colloquium on The
Specification Language OBJ And Applications,
Imperial College
Friday, 18th April, 1986

GIAN84a
Giannesini F. & Cohen J.
Parser Generation And Grammar Manipulation Using Prolog's
Infinite Trees
Journal of Logic Programming, Vol 1, No 3, pp 253-266
October 1984

GIER80a
Gierz G. & Hofmann K.H. & Keimel K. & Lawson J.D.
& Mislove M.  & Scott D.S.
A Compendium of Continuous Lattices
Springer Verlag
1980

GLAS84a
Glaser H. & Hankin C. & Till D.
Principles of Functional Programming
Prentice Hall International, 1984

GLAU78a
Glauert J.R.W.
A Single-Assignment Language for Data Flow Computing
MSc Dissertation, Dept of Comp Sci, Univ. of Manchester,
January 1978

GLAU85a
Glauert J.R.W. & Holt N.P. & Kennaway J.R. & Sleep M.R.
An Active Term Rewrite Model for Parallel Computation
Document, Alvey DACTL group, March 1985

GLAU85b
Glauert J.R.W. & Holt N.P. & Kennaway J.R. & Sleep M.R.
DACTL Report 3/5
Document, Alvey DACTL group, March 1985

GLAU85c
Glauert J.R.W. & Holt N.P. & Kennaway J.R. & Reeve M.J. &
Sleep M.R. & Watson I.
DACTL0: A Computational Model and an Associated Compiler Target
Language
University of East Anglia
May 1985

GOEB85a
Goebel R.
The Design and Implementation of DLOG, a Prolog-Based Knowledge
Representation System
New Generation Computing, Vol 3, No 4, pp 385-401
1985

GOEB86a
Goebel R.
A Logic Data Model For The Machine Representation Of Knowledge
Technical Report CS-86-07
Department of Computer Science, University of Waterloo
June 1985

GOGU67a
Goguen J.A.
L-Fuzzy Sets
Journal of Mathematical Analysis and Applications
Vol 18 no 1, pp 145-174
1967

GOGU68a
Goguen J.A.
Categories of Fuzzy Sets
Phd Dissertation
Dept. of Mathematics, Univ. of california, Berkeley
1968

GOGU68b
Goguen J.A.
The Logic of Inexact Concepts
Synthese, Vol 19, pp 325-373
1968-69

GOGU69a
Goguen J.A.
Categories of V-Sets
Bulletin of the American Mathematical Society,
Vol 75, no 3, pp 622-624
1969

GOGU71a
Mathematical Representation of Hierarchically organised
Systems in "Global Systems Dynamics"
(ed. Attinger E. & Karger S.)
Basel, Switzerland
pp 112-128
1971

GOGU72a
Goguen J.A.
Systems and Minimal Realisation
Proc. IEEE Conf. on Decision and Control,
Miami Beach, Florida
pp 42-46
1972

GOGU72b
Goguen J.A.
Minimal Realisation of Machines in Closed Categories
Bulletin of the American Mathematical Society
Vol 78, no 5, pp 777-783
1972

GOGU72c
Goguen J.A.
Hierarchical Inexact Data structures in Artificial Intelligence
Problems
Proc. 5th Hawaii Int. Conf. on System Sciences
Honolulu, Hawaii, pp 345-347
1972

GOGU72d
Goguen J.A. & Yacobellis R.H.
The Myhill Functor, Input-Reduced Machines, and Generalised
Krohn-Rhodes Theory
Proc. 5th Princeton Conf. on Information Sciences and Systems
Princeton, New Jersey
pp 574-578
1972

GOGU72e
Goguen J.A.
On Homomorphisms, Simulation, Correctness and Subroutines for
programs and Program schemes
Proc. 13th IEEE Symp. on Switching and Automata Theory
College Park, Maryland
pp 52-60
1972

GOGU73a
Goguen J.A.
Realisation is Universal
mathematical System Theory
Vol 6, no 4, pp 359-374
1973

GOGU73b
Goguen J.A.
System theory concepts in Computer Science
Proc. 6th Hawaii Int. Conf. on Systems Sciences
Honolulu, Hawaii, pp 77-80
1973

GOGU73c
Goguen J.A.
The Fuzzy Tychonoff Theorem
Journal of mathematical Analysis and applications
vol 43, pp 734-742
1973

GOGU73d
Goguen J.A.
Categorical Foundations for general Systems Theory
in "Advances in Cybernetics and Systems research"
(ed. Pichler F. & Trappl R.)
Transcripta Books, London
pp 121-130
1973

GOGU74a
Goguen J.A.
Semantics of Computation
Proc. 1st Int. Symp. on Category Theory Applied to
Computation and Control
(1974 American Association for the Advancement of
Science, San francisco)
Univ. of massachusetts at Amherst, 1974, pp 234-249
also published in LNCS vol 25, pp 151-163,
springer-verlag
1975

GOGU74b
Goguen J.A. & Thatcher J.W.
Initial Algebra Semantics
proc. 15th IEEE Symp. on Switching and Automata
pp 63-77
1974

GOGU74c
Goguen J.A.
Concept Representation in Natural and Artificial languages:
Axioms, extensions and Applications for Fuzzy sets"
Int. Journal of man-Machine Studies
vol 6, pp 513-561
1974
reprinted in "Fuzzy Reasoning and its Applications"
(ed. Mamdani E.H. & Gaines B.R.)
pp 67-115
Academic Press
1981

GOGU74d
Goguen J.A.
On Homomorphisms, Correctness, termination, Unfoldments and
Equivalence of Flow Diagram Programs"
Journal of Computer and System Sciences,
vol 8, no 3, pp 333-365
1974

GOGU74e
Goguen J.A.
Some Comments on Applying Mathematical System Theory
in "Systems Approaches and Environmental Problems"
(ed. Gottinger H.W. & Vandenhoeck & Rupert)
pp 47-67
(Gottingen, Germany)
1974

GOGU75a
Goguen J.A. & Thatcher J.W. & Wagner E.G. & Wright J.B.
Factorisation, Congruences, and the Decomposition of Automata
and Systems in "Mathematical Foundations of Computer Science"
LNCS Vol 28, pp 33-45, Springer-Verlag
1975

GOGU75b
Goguen J.A.
Objects
International Journal of general systems, vol 1, no 4,
pp 237-243
1975

GOGU75c
Goguen J.A.
Discrete-Time Machines in Closed Monoidal Categories, I,
Journal of Computer and System sciences, Vol 10, No 1,
February, pp 1-43
1975

GOGU75c
Goguen J.A. & Thatcher J.W. & Wagner E.G. & Wright J.B.
Abstract Data types as Initial algebras and the Correctness
of Data Representations
Proc. Conf. on Computer Graphics, Pattern recognition, and
Data Structure (Beverly Hills, California), pp 89-93
1975

GOGU75d
Goguen J.A. & Carlson L.
Axioms for Discrimination Information
IEEE Transactions on Information Theory, Sept '75
pp 572-574
1975

GOGU75e
Goguen J.A.
On Fuzzy Robot Planning
in "Fuzzy Sets and Their Applications to Cognitive and
Decision Processes (ed. Zadeh L.A. & Fu K.S. & Tanaka K. &
Shimura M.) pp 429-448
Academic Press
1975

GOGU75f
Goguen J.A.
Robust Programming Languages and the Principle of Maximum
Meaningfulness
Proc. Milwaukee Symp. on Automatic Computation and Control
(Milwaukee, Wisconsin)
pp 87-90
1975

GOGU75g
Goguen J.A.
Complexity of Hierarchically Organised Systems and the
Structure of Musical Experiences
Int. Journal of General Systems, vol 3, no 4, 1975,
pp 237-251 originally in UCLA Comp. Sci. Dept. Quarterly,
October 1975, pp 51-88
1975

GOGU76a
Goguen J.A. & Thatcher J.W. & Wagner E.G. & Wright J.B.
Some Fundamentals of Order-Algebraic Semantics
Proc. 5th Int. Symp. on Mathematical Foundations of
Computer Sciences
(Gdansk, Poland, 1976)
LNCS vol 46, 1976, pp153-168, Springer-Verlag
1976

GOGU76b
Goguen J.A. & Thatcher J.W. & Wagner E.W. & Wright J.B.
Parallel Realisation of Systems, Using Factorisations
and Quotients in Categories
Journal of Franklin Institute, vol 301, no6, June '76,
pp 547-558
1976

GOGU76c
Goguen J.A.
Correctness and Equivalence of Data Types
Proc Symp. on Mathematical Systems Theory (Udine, Italy)
Springer Verlag Lecture Notes
(ed. Marchesini G.)
pp 352-358
1976

GOGU76d
Goguen J.A. & Thatcher J.W. & Wagner E.G. & Wright J.B.
Rational Algebraic Theories and Fixed-point Solutions
Proc. IEEE 17th Symp on Foundations of Computer Science
(Houston, Texas), 1976, pp 147-158
1976

GOGU77a
Goguen J.A. & Thatcher J.W. & Wagner E.G. & Wright J.B.
Initial Algebra Semantics and Continuous Algebras
JACM, vol 24, no 1, January 1977, pp 68-95
1977

GOGU77b
Goguen J.A.
Abstract Errors for Abstract Data Types
in "Formal Descriptions of Programming Concepts"
(ed. E.Neuhold)
North-Holland, 1978, pp 491-522
also in
Proc. IFIP Working Conf. on Formal Description of
Programming Concepts
(ed. Dennis J.)
MIT Press, 1977, pp 21.1-21.32
1977

GOGU77c
Goguen J.A. & Burstall R.M.
Putting Theories Together to Make Specifications
Proc. 5th Int. Joint Conf. on Artificial Intelligence
(MIT, Cambridge, Massachusetts), 1977, pp 1045-1058
1977

GOGU77d
Goguen J.A. & Meseguer J.
Correctness of Recursive Flow Diagram Programs
Proc. Conf. on Mathematical Foundations of Comp. Sci.
(Tatranska Lomnica, Czechoslovakia)
pp 580-595
1977

GOGU77e
Goguen J.A.
Algebraic Specification Techniques
UCLA Comp. Sci. Dept. Quarterly
Vol 5, no 4
pp 53-58
1977

GOGU78a
Goguen J.A. & Varela F.
The Arithmetic of Closure
Journal of Cybernetics, Vol 8, 1978
also in "Progress in Cybernetics and Systems research,
vol 3" (ed. Trappl R. & Klir G.J. & Ricciardi L.)
Hemisphere Pub Co. (Washington D.C.)
1978

GOGU78b
Goguen J.A. & Ginali S.
A Categorical Approach to General Systems
in "Applied General Systems research"
(ed. Klir G.)
Plenum Press
pp 257-270
1978

GOGU78c
Goguen J.A. & Thatcher J.W. & Wagner E.G.
An Initial Algebra Approach to the Specification, Correctness and
Implementation of Abstract data Types
in "Current Trends in Programming, vol 4, Data Structuring"
pp 80-149
(ed. Yeh R.)
Prentice Hall
1978

GOGU78d
Goguen J.A.
Some Design Principles and Theory for OBJ-0, a Language for
Expressing and Executing Algebraic Specifications of
Programs Proc. Int. Conf. on Mathematical Studies of
Information Processing
(Kyoto, Japan)
pp 429-475
1978

GOGU78e
Goguen J.A. & Linde C.
Structure of Planning Discourse
Journal of Social and Biological Structures, Vol 1
pp 219-251
1978

GOGU79a
Goguen J.A. & Shaket E.
Fuzzy Sets at UCLA
Kybernetes, vol 8
pp 65-66
1979

GOGU79b
Goguen J.A. & Varela F.
Systems and Distinctions; Duality and Complementarity
International Journal of General Systems, vol 5
pp 31-43
1979

GOGU79c
Goguen J.A. & Tardo J.J.
An Introduction to OBJ: A Language for writing and
Testing formal algebraic specifications
Reliable Software Conf. Proc. (ed. Yeh R.)
(Cambridge, Massachusetts)
pp 170-189
Prentice Hall
1979

GOGU79d
Goguen J.A.
Algebraic Specification
in "Research Directions in Software Technology"
(ed. Wegner P.)
pp 370-376
MIT Press
1979

GOGU79e
Goguen J.A.
Some Ideas in Algebraic Semantics
Proc. 3rd IBM Symp on Mathematical Foundations of Computer
Science
(Kobe, Japan)
53 pages
1979

GOGU79f
Goguen J.A.
Fuzzy Sets and the Social Nature of Truth
in "Advances in Fuzzy Set Theory and Applications"
(eds. Gupta M.M. & Yager R.)
pp 49-68
North-Holland Press
1979

GOGU79g
Goguen J.A. & Tardo J. & Williamson N. & Zamfir M.
A Practical Method for Testing Algebraic Specifications
UCLA Computer Science Quarterly, Vol 7, no 1
pp 59-80
1979

GOGU80a
Goguen J.A.
Thoughts on Specification, Design and Verification
Software Engineering Notes, Vol 5, no 3
pp 29-33
1980

GOGU80b
How to Prove Algebraic Inductive Hypotheses Without
Induction: with Applications to the Correctness of Data
Type Implementation Proc. 5th Conf. on Automated Deduction,
(Les Arcs, France)
(eds. Bibel W. & Kowalski R.)
LNCS, vol 87
pp 356-373
Springer Verlag
1980

GOGU80c
Goguen J.A. & Burstall R.M.
The Semantics of CLEAR, a Specification Language
in "Abstract Software Specification"
(eds Bjorner D.)
(Proc. 1979 Copenhagen Winter School)
LNCS, vol 86
pp294-332
1980

GOGU80d
Goguen J.A. & Linde C.
On the Independence of Discourse Structure and Semantic
Domain Proc. 18th Annual Meeting of the Association for
Computational Linguistics, Parasession on Topics in
Interactive Discourse (Univ. of Pennsylvania, Philadelphia,
Pennsylvania) pp 35-37
1980

GOGU81a
Goguen J.A. & Parsaye-Ghomi K.
Algebraic Denotational Semantics Using Parameterised
Abstract  Modules Proc. Int. Conf on Formalising Concepts
(Peniscola, Spain)
(ed. Diaz J. & Ramos I.)
LNCS, vol 107
pp 292-309
Springer verlag
1981

GOGU81b
Goguen J.A. & Burstall R.M.
An Informal Introduction to CLEAR, a Specification
Languagein "The Correctness Problem in Computer Science"
(eds. Boyer R. & Moore J.)
pp 185-213
Academic Press
1981

GOGU81c
Goguen J.A. & Meseguer J.
Completeness of Many-Sorted Equational Logic
SIGPLAN Notes, Vol 16, no 7, pp 24-32, 1981
also in SIGPLAN Notes, vol 17, no 1, pp 9-17, 1982
extended version as Tech Rep CSLI-84-15, Center for the
Study of
Language and Information, Stanford Univ.,
September 1984

GOGU82a
Goguen J.A.
ORDINARY Specification of KWIC Index Generation
Proc Workshop on Program Specification
(ed. Staunstrup J.)
LNCS, Vol 134
pp 114-117
Springer Verlag
1982

GOGU82b
Goguen J.A.
ORDINARY Specification of Some Constructions in Plane
Geometry
Proc Workshop on Program Specification
(ed. Staunstrup J.)
LNCS, Vol 134
pp 31-46
Springer verlag
1982

GOGU82c
Goguen J.A. & Burstall R.M.
Algebras, Theories and Freeness: An Introduction for
Computer Scientists
in "Theoretical Foundations of Programming Methodology"
(eds. Broy M. & Schmidt G.)
pp 329-348
D. Reidel
1982

GOGU82d
Goguen J.A. & Meseguer J.
Security Policies and Security Models
Proc 1982 Berkeley Conf on Computer Security
IEEE Computer Society Press
pp 11-20
1982

GOGU82e
Goguen J.A.
Universal Realisation, Persistent Interconnection and
Implementation of Abstract Modules
Proc 9th Int Colloquium on Automata, Languages and
Programming
(Aarhus, denmark)
LNCS, Springer Verlag
1982

GOGU82f
Goguen J.A.
Rapid Prototyping in the OBJ Executable Specification
Language
Proc Rapid Prototyping Workshop
(Columbia, Maryland)
1982
also in Software engineering Notes, ACM Special
Interest
Group on Software engineering, vol 7, no 5, pp 75-84,
1983

GOGU83a
Goguen J.A. & Meseguer J. & Plaisted D.
Programming with Parameterised Abstract Objects in
OBJ in "Theory and practise of Software technology"
(eds. Ferrari D. & Bolognani M. & Goguen J.A.)
pp 163-193
North-Holland
1983

GOGU83b
Future Directions for Software Engineering
in "Theory and Practise of Software Technology"
(eds. Ferrari D. & Bolognani M. & Goguen J.A.)
pp 243-244
North-Holland
1983

GOGU83c
Goguen J.A. & Ferrari D. & Bologanani M.
Theory and Practise of Software Technology
North Holland
1983

GOGU83d
Goguen J.A. & Meseguer J.
Correctness of recursive Parallel Non-Deterministic
Flow Programs
Journal of Computer and System Sciences, vol 27, no 2
pp 268-290
October 1983

GOGU83e
Goguen J.A.
Parameterised Programming
IEEE TOSE, vol SE-10, no 5, september 1984, pp 528-543
preliminary version in Proc. Workshop on Reusability in
Programming,
ITT, pp 138-150
1983

GOGU83f
Goguen J.A. & Linde & Weiner J.
Reasoning and Natural explanation
International Journal of man-Machine Studies, Vol 19
pp 521-559
1983

GOGU83g
Goguen J.A. & Burstall R.M.
Introducing Institutions
Logics of programs
(Carnegie-mellon Univ., Pittsburgh PA, June 1983)
LNCS, vol 164, Springer Verlag
pp 221-256, 1984

GOGU84a
Goguen J.A. & Meseguer J.
Unwinding and Inference Control
1984 Symp on Security and privacy, IEEE, pp 75-86
1984

GOGU84b
Goguen J.A. & Meseguer J.
Equality, types, Modules and generics for Logic
Programming
Tech Rep no. CSLI-84-5, Center for the Study of Logic
and Information, Stanford University, March 1984
also in Proc. 2nd int. Logic Programming Conf., Upsala,
Sweden, pp 115-125
1984

GOGU84c
Goguen J.A. & Bustall R.M.
Some Fundamental Properties of Algebraic Theories: A
Tool for Semantics of Computation, Part 1: Comma Categories,
Colimits and Theories
Theoretical Computer Science, vol 31, no 2,
pp 175-209
1984

GOGU84d
Goguen J.A. & Burstall R.M.
Some Fundamental properties of Algebraic Theories: A Tool for
Semantics of computation, Part 2: Signed and Abstract theories
Theoretical Computer Science, vol 31, no 3
pp 263-295
1984

GOGU84e
Goguen J.A. & Meseguer J.
Equality, Types, Modules and (Why Not ?) Generics for
Logic programming Journal of Logic programming, vol 1,
no 2 pp 179-210
August 1984

GOGU84f
Goguen J.A. & Murphy M. & Randle R.J. & Tanner T.A.
& Frankel R.M. & Linde C.
A Full Mission Simulator study of Aircrew performance:
The measurement of Crew Coordination and descisionmaking
factors and their relationships
to Flight task performance
Proc. 20th Annual Conf on Manual control, vol II
(eds. Hartzell E.J. & Hart S.)
NASA Conference publication 2341, pp 249-262
1984

GOGU84g
Goguen J.A. & Linde C. & Murphy M.
Crew Communication as a factor in Aviation Accidents
Proc 20th Annual Conf on Manual control, vol II
(eds. Hartzell E.J. & Hart S.)
NASA Conference Publication 2341, pp 217-248
1984


GOGU85a
Goguen J.A. Meseguer J.
EQLOG: Equality, Types and Generic Modules for Logic
Programming
In Functional and Logic Programming, Prentice Hall
1985

GOGU85b
Goguen J.A. & Jouannaud J-P & Meseguer J.
Operational Semantics for Order-Sorted Algebra
In Proc. ICALP 1985

GOGU85c
Goguen J.A. & Meseguer J.
Initiality, Induction and Computability
to appear in "Algebraic Methods in Semantics"
(ed. Nivat M. & Reynolds J. )
Cambridge U.P.
chapter 14, pp 459-540 approx.
1985

GOGU85d
Goguen J.A. & Meseguer J.
Completeness of Many-Sorted Equational Logic
to appear in Houston Journal of Mathematics
1985

GOGU85e
Goguen J.A. & Futatsugi K. & Jouannaud J.-P.
& Meseguer J.
Principles of OBJ2
Proc 1985 Symp on Principles of programming languages,
ACM
pp 52-66
1985

GOGU86a
Goguen J.A.
Aspects of the Past Present and Future of OBJ
Presented at The Alvey SIG FM One Day Colloquium on The
Specification
Language OBJ And Applications, Imperial College
Friday, 18th April, 1986

GOGU86b
Goguen J.A.  & Meseguer J.
EQLOG : Equality, Types, and Generic Modules for Logic
Programming in DEGR86a, pp 295-364
1986

GOLD81a
Goldfarb W.
The Undecidability Of The Second Order Unification
Problem
Theoretical Computer Science 13, pp 225-230, 1981

GOLS82a
Golshani F.
Growing Certainty With Null Values
Research Report 82/22
Department of Computing, Imperial College
December 1982

GOOD83a
Goodall A.
Language Of Intelligence (PROLOG)
Systems International p21-24 Jan 1983

GOOD85a
Good D.I.
Mechanical Proofs about Computer Programs
in HOA85a
1985

GORD79a
Gordon M.J. & Milner R. & Wadsworth C.P.
Edinburgh LCF
Lecture Notes In Computer Science, Vol 78
Berlin: Springer Verlag, 1979

GORD85a
Gordon M.
HOL : A Machine Oriented Formulation of Higher order
Logic Computer Laboratory, University of Cambridge
Technical Report no 68
July 16 1985

GOST79a
Gostelow K.P. & Thomas R.E.
A View of Dataflow
Proc. Nat. Comp. Conf., Vol 48, pp 629-636
1979

GOTO82a
Goto A. & Moto-oka T.
Basic Architecture of Highly Parallel Processing System
for Inference Document Univ. of Tokyo, Dec 1982

GRAH84a
Graham P.C.J.
Providing Architectural Support For Expert Systems
ACM SIGARCH, 12, 5, pp 12-18
December 1984

GREE85a
Greene K.J.
A Fully Lazy Higher Order Purely Functional Programming
Language with Reduction Semantics
CASE Center Technical Report No. 8503
CASE Center, Syracuse University, New York
December 1985

GREG80a
Gregory S.
Towards The Compilation Of Annotated Logic Programs
Department of Computing, Imperial College, Research
Report 80/16
June 1980

GREG83a
Gregory S.
Getting Started With PARLOG
Dept of Computing, Imperial College
October 1983

GREG84a
Gregory S.
Implementing PARLOG On The Abstract Prolog Machine
Research Report DOC 84/23
Department of Computing, Imperial College
August 1984

GREG84b
Gregory S.
How To Use PARLOG (C-Prolog Version)
Dept of Computing, Imperial College
October 1984

GREG84c
Gregory S.
How To Use PARLOG (micor-PROLOG Version)
Dept of Computing, Imperial College
August 1984

GREG85a
Gregory S.
Design, Application and Implementation of a Parallel
Programming Language
PhD Thesis, Dept of Computing, Imperial College, Univ.
of London
September 1985

GREG85b
Gregory S.
Sequential Parlog Machine Specification (Draft)
Department of Computing, Imperial College
24 Jan 85
Minor Revisions 16 Feb 85, 16 Mar 85
Major Revision 16 May 85

GRIE77a
Gries D.
An Exercise in Proving Parallel Programs Correct
CACM, 20, no 12, pp 921-930
1977

GRIS71a
Griswold R.E. & Poage J.F. & Polonsky J.P.
The Snobol-4 Programming Language
Prentice Hall
1971

GRIS84a
Griswold R.E.
Expression Evaluation in the Icon Programming Language
Proceedings of 1984 ACM Symposium on Lisp and Functional
Programming
Austin, Texas
pp 177-183
1984

GRIT81a
Grit D.H. & Page R.L.
Deleting Irrelevant Tasks in an Expression-Oriented
Multiprocessor System ACM Transactions on Programming
Languages and Systems, Vol 3, No 1, pp 49-59
January 1981

GUES76a
Guessarian I.
Semantic Equivalence of Program Schemes and its
Syntactic Characterization Proceedings 3rd
International Colloquium on Automata Languages and
Programming
pp 189-200
Edinburgh University Press, 1976

GUNN84a
Gunn H.I.E. & Harland D.M.
Polymorphic Programming II. An Orthogonal Tagged High
Level Architecture Abstract Machine
Software - Practise and Experience, Vol 14(11),
pp 1021-1046
November 1984

GUNT??
Gunter C.A.
The Largest First-Order-Axiomatizable Cartesian Closed
Category of Domains Computer Laboratory, Univ of Cambridge

GURD78a
Gurd J. & Watson I. & Glauert J.
A Multi-Layered Data Flow Computer Architecture
Internal Report, Dept of Comp Sci, Univ of Manchester
1978

GURD85a
Gurd J. & Kirkham C.C. & Watson I.
The Manchester Prototype Dataflow Computer
CACM, vol 28, p 34-52,
1985

GUTT75a
Guttag J.V.
The Specification and Application to programming of
Abstract Data Types PhD dissertation, Univ. of Toronto,
Dept of Comp Sci
1975

GUTT77a
Guttag J.V.
Abstract Data Types and the Development of Data
Structures
CACM Vol 20, no 6, pp 396-404, June
1977

GUTT78a
Guttag J.V. & Horowitz E. & Musser D.R.
Abstract Data Types and Software Validation
CACM Vol 21, pp 1048-1064, december
also USC Information Sciences Institute Tech. Rep.
Aug 76
1978

GUTT78b
Guttag J.V. & Horning J.J.
The Algebraic Specification of Abstract Data Types
Acta Informatica, 10, 1, pp 27-52
1978

GUTT80a
Guttag J.V.
Notes on Type Abstraction (version 2)
IEEE Trans. on Soft. Eng. Vol SE-6, no 1, pp 13-23,
January
1980

GUTT82a
Guttag J.
Notes On Using Types and Type Abstraction In Functional
Programming in DARL82a
1982

GUZM81a
Guzman A.
A heterarchical Multi-Microprocessor Lisp Machine
1981 IEEE Computer Society Workshop on Computer
Architecture for Pattern Analysis and Image Database
Management, Hot Springs, Virginia
pp 309 -  317
November 11-13, 1981

------------------------------

End of PROLOG Digest
********************