[comp.graphics.visualization] Terminology for discussing next generation visual languages

rasure@sherman.unm.edu (John Rasure) (11/15/90)

The following is in response to Craig Upson's posting requesting criticism of
first generation systems and proposals for the second generation.

Along with making a wish list of specific features that could be added
to first generation systems, we need to think about the infrastructure
for the next generation systems.

The following is a proposed list of components that should be considered
in the design of a second generation data flow oriented visual language
programming environment.  Our motivation for posting this is two-fold:
1) we would like to test our terminology and see if it is reasonable and
2) provide a basis for comparison of the various data flow oriented
visual systems.

	1.  User Interface
		a)  programming paradigm (data flow, forms/menus)
		b)  workspace/visual editor
		c)  access to language primitives (selection of operators)

	2.  Visual Programming Language Specification
		a)  syntax (graphical/lexical elements)
		b)  semantics (meaning of elements)
		c)  expression evaluation (setting operator parameter) 
		d)  hierarchy (visual complexity)
		e)  documentation (program explanation)

	3.  Operating System Supporting the Visual Language
		a)  compiler/interpreter (prototyping vs. production)
		b)  computational model (demand or data-driven)
		c)  scheduling (static vs. dynamic, parallel vs. serial)
		d)  execution mode (continuous or triggered execution)
		e)  data transport model (representation - files, pipes,
				      shared memory, sockets, streams, blocks)
		f)  debugging support (preventing errors, correcting errors)
		g)  recoverability (saving program state)

	4.  Library of Operators
		a)  application domain
		b)  level of abstraction
		c)  interface specification (executable or linkable)
		d)  interoperability  (data compatibility)

	5.  Development Support for Retargeting/Extending
		a)  user interface development system
		b)  data token description and typing 
		c)  operator code generation
		d)  configuration management

John Rasure and Carla Williams
rasure@bullwinkle.unm.edu or carla@bullwinkle.unm.edu
--
------------------------------------------------------------------
Dr. John Rasure                    rasure@bullwinkle.unm.edu
Department of EECE
University of New Mexico           Albuquerque,    NM 87131

Chris.Holt@newcastle.ac.uk (Chris Holt) (11/15/90)

In article <1990Nov14.192736.660@ariel.unm.edu>
 rasure@sherman.unm.edu (John Rasure) writes:

>The following is a proposed list of components that should be considered
>in the design of a second generation data flow oriented visual language
>programming environment.  Our motivation for posting this is two-fold:
>1) we would like to test our terminology and see if it is reasonable and
>2) provide a basis for comparison of the various data flow oriented
>visual systems.
>
>	1.  User Interface
>		a)  programming paradigm (data flow, forms/menus)

Can the user ever have control over this?

>		b)  workspace/visual editor
>		c)  access to language primitives (selection of operators)

Since this isn't in the language spec., I assume you mean the
primitives of the editor, for constructing programs?  Are these
in the language as well, so you can write programs to construct
programs (is it reflective)?

>	2.  Visual Programming Language Specification
>		a)  syntax (graphical/lexical elements)
>		b)  semantics (meaning of elements)
>		c)  expression evaluation (setting operator parameter)
>		d)  hierarchy (visual complexity)
>		e)  documentation (program explanation)
>
>	3.  Operating System Supporting the Visual Language
>		a)  compiler/interpreter (prototyping vs. production)
>		b)  computational model (demand or data-driven)

Should this not be in 2?

>		c)  scheduling (static vs. dynamic, parallel vs. serial)
>		d)  execution mode (continuous or triggered execution)
>		e)  data transport model (representation - files, pipes,
>				      shared memory, sockets, streams, blocks)

Is this supposed to be in the underlying implementation?  If it's
visible, shouldn't it be in 2?

>		f)  debugging support (preventing errors, correcting errors)
>		g)  recoverability (saving program state)

If an application area is to include the construction of dependable
programs, this should be in the language definition as well?

>	4.  Library of Operators
>		a)  application domain
>		b)  level of abstraction
>		c)  interface specification (executable or linkable)

Are specifications first class objects?

>		d)  interoperability  (data compatibility)
>
>	5.  Development Support for Retargeting/Extending
>		a)  user interface development system
>		b)  data token description and typing
>		c)  operator code generation
>		d)  configuration management
-----------------------------------------------------------------------------
 Chris.Holt@newcastle.ac.uk      Computing Lab, U of Newcastle upon Tyne, UK
-----------------------------------------------------------------------------
 "He either fears his fate too much, or his programming tools are small..."