|
I'm new to this list so I hope that it is okay to disagree. If not please tell me, I know how to be quiet too. Compiler writers use lots of tools and have for years. Here is a core conceptual set-I haven't written any compilers for the S38/AS400 for about 13 years. 1. lex - creates lexical analyzers. Originally a UNIX tool, first appeared in the 70's. Lex reads a definition that uses regular expressions to define tokens and creates a program in the form of a finite state machine. When called, the generated program returns tokens to a parser. There are many derivatives. Hand written lexical analyzers that recognize many token types are ugly and tend to have bugs. I have written several for the 38 and one for the 400. 2. YACC - "yet another compiler compiler". Also a UNIX tool also from the 70's. Reads a language definition and creates a parser. The parser calls Lex for tokens and builds parse trees. Since I didn't have YACC, I had to write parsers myself. Not fun. 3. The generated languages themselves. A lot of ILE C is written in ILE C. The one formal language that I created has 9 (actually 11) bootstrap phases starting from MI. Two of the phases created language features that didn't perform well and I decided that I didn't need high-speed recursive function calls and whatever phase 11 did (I forget). Language creators (compiler writers) use tools with wild abandon. Since their life is generating code, they are very good at creating tools to create code. I will spare you the stories of Jennifer Hamilton (IBM Toronto) carrying around a laptop with the ILE C compiler on it that she constantly improved. The laptop ran UNIX. Richard Jackson mailto:richardjackson@richardjackson.net www.richardjacksonltd.com Voice: 1 (303) 808-8058 Fax: 1 (303) 663-4325 -----Original Message----- From: owner-midrange-l@midrange.com [mailto:owner-midrange-l@midrange.com]On Behalf Of James W. Kilgore Sent: Saturday, July 01, 2000 1:46 AM To: MIDRANGE-L@midrange.com Subject: Re: DDS Support Mark, A while back I was engaged in a thread about the number of lines of code a programmer could write in a year. In all fairness the comparison was an apples to oranges code purpose thing, but I did raise this same issue. Tool writing. If you are primarily engaged in maintenance instead of new development the tools needed would differ. But in either case, the tools make the job easier and quicker. If you are writing compilers, sorry, that's a whole bunch harder than applications and there is very little that can be tooled. Each piece is a custom job. As you noticed, "Programs -are- data" is not the normal view of programs. That's what made the statement so profound. I had to chew on the concept for a few days until it finally hit me. It radically changed my career. What we did was create a pseudo code to RPG translator and our own data dictionary. Our primary business has always been new development. Our tool added standards and consistency which made all other development easier and quicker. We more than recovered the time spent in developing the tools. I'm reminded of a story I was told (now I'm not very good at telling stories) but there was a lumberjack cutting down trees. He was working very hard from sun up till sun down. A person observed him and noticed that he could ease his work if he sharpened his saw. He mentioned this to the lumberjack who retorted: "I don't have time to sharpen my saw, I have a deadline to meet." Take the time to sharpen the saw. You'll meet the deadline and ease the burden in the process. "M. Lazarus" wrote: > > BTW, while the quote you mentioned is an interesting view of > programs, it must be anecdotal, since the common usage of programs > does not fall into the description of "Programs -are- data." > > -mark +--- | This is the Midrange System Mailing List! | To submit a new message, send your mail to MIDRANGE-L@midrange.com. | To subscribe to this list send email to MIDRANGE-L-SUB@midrange.com. | To unsubscribe from this list send email to MIDRANGE-L-UNSUB@midrange.com. | Questions should be directed to the list owner/operator: david@midrange.com +--- +--- | This is the Midrange System Mailing List! | To submit a new message, send your mail to MIDRANGE-L@midrange.com. | To subscribe to this list send email to MIDRANGE-L-SUB@midrange.com. | To unsubscribe from this list send email to MIDRANGE-L-UNSUB@midrange.com. | Questions should be directed to the list owner/operator: david@midrange.com +---
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.