[comp.lang.modula2] Modula-2 Tool Support

dcw@doc.ic.ac.uk (Duncan C White) (04/07/87)

Hi there !  This is my first news article, so be kind :-)

My name is Duncan White and I work [ and play ... ] at the Dept of
Computing, Imperial College, London, England.

I am supervising a Final Year Undergraduate project about :

	"Tool Support for Modula-2"

The general idea of this project is that Modula-2, due to its emphasis
on separate compilation units [ ie. defn & impln modules ], tends to breed
large numbers of files which become difficult to handle with the usual kinds
of tools provided with a system (specifically, editors)

In particular, I find myself spending ludicrously large amounts of time and
effort doing such (logically) simple things as :

	o changing a name throughout a multi-module "project"
	o changing the order/types/number of parameters
	o maintaining comment consistency between defn & impln modules
	o reformatting other people's code to my style
	  [ plus, reformatting my "late night" code properly :-) ]
	o splitting/merging modules
	o cross referencing
	o checking for dead code [ and sundry optimizations ]

It seems to me, at least, that a good way to enhance M-2 as a "programming
system" - rather than a formal language - would be to design and implement
a set of integrated M-2 tools, built around a central M-2 parser [ which
would, however, keep such things as comments intact ]

It seems reasonable to try to establish a simple classification of such
tools.  What I propose is a 3-way classification :

	1).	tools which perform some function on just one compilation-unit
	   	[ such as a reformatter ]
	
	2).	tools which process a defn-impn pair together
		[ such as a comment consistency checker/enforcer ]

	3).	tools which require knowledge of an entire "project"
		[ such as a "module splitter", a "makefile generator"
		or a "project-wide editor" ]

Clearly, this classification is ordered in terms of tool complexity..

----------------- now, the request ----------------

I would welcome any input whatsoever on this subject.  In particular,

	o Do other M-2 programmers see the need for such tool support ?

	    If so, are the kind of tools I propose appropriate ?
	       Are there any other such requirements ?
	    Is a central parser a good idea ?
	    Is the 3-way classification adequate ?

	o Has anyone else done any relevent work ?

	o Are there any PD M-2 parsers / tools ?
	   [ This info will probably be too late to be of practical
	   interest : the parser is well underway.. ]

Please reply either by e-mailing to me directly, or by posting news to this
newsgroup.  If there is enough interest, I could summarise any replies to the
net...

	ecnavda ni sknahT

[ well, people always say I'm backward :-) :-) ]


-----------------------------------------------------------------------------
JANET address : dcw@uk.ac.ic    | Snail Mail :  Duncan White,
--------------------------------|               Dept of Computing,
  This space intentionally      |               Imperial College,
                                |               180 Queen's Gate,
  left blank......              |               South Kensington,
                                |               London SW7
----------------------------------------------------------------------------
Tel: UK 01-589-5111 x 4991/4982
----------------------------------------------------------------------------