Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!sdd.hp.com!uakari.primate.wisc.edu!dali.cs.montana.edu!rpi!batcomputer!munnari.oz.au!goanna!ok From: ok@goanna.cs.rmit.oz.au (Richard A. O'Keefe) Newsgroups: comp.lang.misc Subject: Re: improve language by dropping ; Message-ID: <4863@goanna.cs.rmit.oz.au> Date: 1 Mar 91 08:15:15 GMT References: <8507.27b91f9e@jetson.uh.edu> <8531@plains.NoDak.edu> <1875@borg.cs.unc.edu> Organization: Comp Sci, RMIT, Melbourne, Australia Lines: 18 BCPL's rule about treating the end of a line as a ';' token unless it is "obvious" that the line must be continued is extremely easy to add to a parser. For example, I once had a "mid-processor" for C that would do things like inserting ';' before '}' unless there was already a ';' or '}' there, and it implemented the BCPL rule. (It also filtered := to =.) The scheme was cc -E foo.c | midprocessor >temp.c; cc temp.c It took an afternoon, and was really tiny. I eventually threw it away, because it was rather like the strange case of the Dvorak keyboard. (Hint: people trained with the Dvorak keyboard are all of 5% faster than people trained on QWERTY. Big deal.) It really wasn't much of an improvement. Don't forget one important thing that distinguishes C from Turing and even from BCPL and S: the C pre-processor. Should one apply the BCPL rule before or after macro expansion? It can make a huge difference. -- The purpose of advertising is to destroy the freedom of the market.