From: Des.Kenny@bbs.actrix.gen.nz
Subject: Re: OOP not GUT of programming?
Organization: Actrix Information Exchange
Date: Tue, 13 Oct 1992 00:17:57 GMT
Summary: Architext: Programmable Document Editor with Grammar Language		 			
Keywords: Object-Oriented, Text Edit, Programmable, Grammar 

In article <1992Oct11.003041.20992@netcom.com> Bob Hathaway <objsys@netcom.com> writes:
> In article <5OCT199215551226@elroy.uh.edu> st1lv@elroy.uh.edu (McLeod, Stephen) writes:
> >I have been talking to a lot of people about this lately and some had the view
> >that OOP was basically a good algorithm for handling the data base handling
> >aspect of a solution be it an OS, a Database, or a guided missile program but
> >that it was not appropriate for writing, say, a compiler, a text editor and
> >so on.
> 
  Hi Steve,
  
  Here is another example. Architext is a document management tool used for
  defining and maintaining structured documents.

  Some examples of aplications of Architext are:

  Production and modification of structured documents such as programs,
  specifications, designs, configuration files, technical reports..

  Text editing of documents in a standardised structure

  Implementation and enforcement of programming and documentation standards
  
  Syntactic analysis of any language with a defineable context-free grammar

  Implementation of software tools

  Text generation

  Automatic translations between closely related languages

  It has multiple windows. You can expand a document from templates that are
  defined in the grammar of the document. Consider that any document has an
  implicit language assumption behind it. The language definition is
  implemented  by a grammar definition language called LDL
  ( Language Definition Language) 
  
  There is also a mode for free text entry rather than template expansion
  if you are already familiar with the document grammar. The system will
  check the correctness of syntax to ensure that it conforms to the grammar
  of the document type.  
  
  You ccan type incomplete phrases and the system will complete them
  with the correct syntax or templates

  There is unlimited undo and redo of all of your actions

  You can import text files and convert them to the appropriate 
  document type 

  Formating is automatic and can be used for text generation and
  translation 

  Searching and replacing include the usual text style but also
  include the ability to search and replace by the type of structure
  in the document as defined in the grammar.

  Abstraction can be used to contract and expand parts of a document
  to allow different areas to be viewed as more focal to a particular
  context that you are working in. You can have an unlimited number
  of different formats of a document.
  
  
  With LDL you can define a grammar for ANY language with a
  context-free grammar.
  Examples of grammars that are already in Architext include Pascal, C, Ada,
  Eiffel and LDL itself. There are probably other grammars by now.
 
  You can also apply the same principle to any
  structured document that can be defined by a context-free grammar.
  So reports, forms etc that have a regular layout and require
  syntax to be checked to conform to a certain standard can have a grammar
  defined for them.
  
  
  
  So what does this have to do with you question:
  
  1)  All the 'documents' in Architext are objects.
  2)  Architext is written in Eiffel
  3)  In Eiffel it is not possible to program in any way except
      by 100% object-oriented techniques.
      (Apart from calls to external modules written in other languages,
       which may be needed mainly for economic and political reasons rather
       than purely technical ones.
       One area where external calls may still
       have some technical validity is in real-time applications because
       of garbage collection issues in real-time which are currently
       being researched by various people.)