Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!uunet!seismo!husc6!necntc!ima!johnl From: kurt@tc.fluke.COM (Kurt Guntheroth) Newsgroups: comp.compilers Subject: Re: What makes a language popular? Message-ID: <632@ima.ISC.COM> Date: Thu, 30-Jul-87 12:12:38 EDT Article-I.D.: ima.632 Posted: Thu Jul 30 12:12:38 1987 Date-Received: Sat, 1-Aug-87 11:11:32 EDT References: <331@hubcap.UUCP> <627@ima.ISC.COM> Sender: johnl@ima.ISC.COM Reply-To: kurt@tc.fluke.COM (Kurt Guntheroth) Organization: John Fluke Mfg. Co., Inc., Everett, WA Lines: 50 Approved: compilers@ima.UUCP Original-sender: news@tc.fluke.COM I claim that what makes a language popular (other than being useful) is an accessible standard reference work and a sample implementation of the compiler. Not all languages have both of these, but virtually every popular language has at least one. I am not old enough to be directly familiar with initial versions of FORTRAN or COBOL, but there are some modern examples. Pascal: The universally recognized standard reference is Jensen and Wirth. This document, while by no means perfect, is a relatively complete and concise spec for Pascal. As if that wasn't enough, there is a p-code compiler for Pascal that practically everybody who goes to college for a CSci degree will see eventually. Modula-2: Since everybody latched onto M-2 as the "new pascal" there are an infinite number of textbooks on Modula-2. Wirth wrote a reference manual, but is is less widely recognized. There are also a couple of standard compilers, although they also are less widely distributed. C: Who can forget K & R, a book so well known in C circles that even the author's names have been contracted. Both the Ritchie C compiler and PCC are widely available for scrutiny, and at least PCC is arguably a high quality production compiler. C has the additional attribute of being a good match to the machine architectures of most microprocessors. Thus, even those people who had no access to one of the prototype C compiler sources had little trouble in coding a compiler from scratch. (BDS C, Whitesmith's C, Lattice C, and an unknown additional number of commercial C compilers.) Of course, just having a reference and prototype compiler is not a guarantee of success. You also have to get lucky. I have a nice book by Per Brinch Hansen on a language called Edison. Nice Pascal-like language, and there's a complete listing of the compiler in the book. Nevertheless, Edison just never caught on. I am sure the literature is virtually carpeted with such derelict remains. There is also BASIC, which survives in spite of having absolutely no standard text, and no standard implementation. The reason BASIC thrives in contrary fashion is that, in the absense of any standard, it is possible to call any language BASIC. Just make sure it contains the keywords IF, GOTO, and GOSUB, and permits at least optional line labels. [Evidently you're talking about a necessary but not sufficient condition. Who uses Edison, after all? I suspect the other condition is that the language be better for some useful set of tasks than the other popular ones. In any event, this is getting sort of far afield from the topic of compilers. It might be interesting to compare real implementation experience for some languages. -John] -- Send compilers articles to ima!compilers or, in a pinch, to Levine@YALE.ARPA Plausible paths are { ihnp4 | decvax | cbosgd | harvard | yale | cca}!ima Please send responses to the originator of the message -- I cannot forward mail accidentally sent back to compilers. Meta-mail to ima!compilers-request