wagner@iaoobelix.UUCP (06/22/87)
In fact, many programs use sort of meta-information about programs which is stored in comment-like structures. Just think of ZMacs with lines like ;;; -*- Mode:Lisp; Package:Foo; Readtable:Bar; FrobFlag:maybe; -*- or "/* NOTREACHED */" instructions for lint, or "$Compile:" lines in C or whatever programs/text files, or SCCS ids of the form #ifndef lint static char sccsid[] = "@(#)umu.c 1.1 87/22/07 charlie"; #endif The point is that you have to include information in a text file which is interpretable by more than just one processor. This kind of meta-information for, let's say, processor A, is then best put into a structure ignored by processor B. And what kind of structure is more likely to be used for that purpose than comments of processor B? Anyway, the reasons why one can write "#! /bin/foo" to invoke /bin/foo on that text file, may be historical reasons, and maybe those people who implemented this feature (it is one!) haven't thought about its future use up to that extent, but the "#!" convention is a useful one, allowing nice invocations of e.g. CProlog saved states which usually start with "#! /usr/local/cprolog\n" or something alike... Let's put an end to this discussion. Juergen Wagner, (USENET) ...seismo!unido!iaoobel!wagner ("Gandalf") Fraunhofer Institute IAO, Stuttgart