Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.1 6/24/83; site sdcsvax.UUCP Path: utzoo!linus!decvax!ittvax!dcdwest!sdcsvax!davidson From: davidson@sdcsvax.UUCP Newsgroups: net.lang.c Subject: Identifier significance CHALLENGE Message-ID: <60@sdcsvax.UUCP> Date: Mon, 5-Dec-83 01:55:38 EST Article-I.D.: sdcsvax.60 Posted: Mon Dec 5 01:55:38 1983 Date-Received: Fri, 9-Dec-83 01:27:30 EST References: <5526@mcvax.UUCP> Organization: EECS Dept., U.C. San Diego Lines: 29 It has been possible for most of us to ignore the C compilers which used only one case, and less than 7 characters for identifier significance, simply because they only cause trouble when porting into such an environment, and few of us have had to do that. However, now that Berkeley has removed the identifier length restriction, non-Berkeley UNIX programmers are faced with the ever more frequent onerous task of squeezing Berkeley programs into using reduced identifier significance. Hence this CHALLENGE: CHALLENGE: To write a program (for the public domain) which converts a program designed for a given identifier significance of N1 characters, and with C1 cases (either one or two), into an equivalent program designed for identifier significance N2 and cases C2. These would be given as program arguments. Note that when relaxing restrictions, it may be necessary to truncate identifiers and regularize case, e.g. with N1 = 6, N2 = 100, foobarhere, foobarthere -> foobar, foobar. When tightening restrictions, it may be necessary to change the identifiers, e.g., this_one_here, this_one_there -> this1, this2. The latter case is more difficult, and requires avoiding collisions with other identifiers. I believe it very important that this program be written, and ideally by someone with C compiler experience, although anyone is welcome to try. We are forced to clean up someone else's mess here, as Berkeley should never have released their compiler without providing such a compatibility filter. -Greg