Path: csiph.com!usenet.blueworldhosting.com!feeder01.blueworldhosting.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!news.iecc.com!.POSTED.news.iecc.com!nerds-end From: rockbrentwood@gmail.com Newsgroups: comp.compilers Subject: Re: Self compiling compiler Date: Mon, 22 Aug 2016 15:56:29 -0700 (PDT) Organization: Compilers Central Lines: 30 Sender: news@iecc.com Approved: comp.compilers@iecc.com Message-ID: <16-08-004@comp.compilers> References: <16-03-013@comp.compilers> <16-05-006@comp.compilers> <16-05-008@comp.compilers> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Injection-Info: miucha.iecc.com; posting-host="news.iecc.com:2001:470:1f07:1126:0:676f:7373:6970"; logging-data="55430"; mail-complaints-to="abuse@iecc.com" Keywords: history Posted-Date: 23 Aug 2016 12:43:57 EDT X-submission-address: compilers@iecc.com X-moderator-address: compilers-request@iecc.com X-FAQ-and-archives: http://compilers.iecc.com Xref: csiph.com comp.compilers:1726 On Wednesday, May 25, 2016 at 7:07:16 PM UTC-5, federat...@netzero.com wrote: > ...use the February 1985 printout PDFs http://www.softwarepreservation.org/projects/c_plus_plus On Sunday, May 29, 2016 at 8:02:22 PM UTC-5, federat...@netzero.com wrote: > I transcribed much of the version 1 PDF. It has to be cross-checked... Done. Paul McJones posted the transcription of Version E from 1985 ... http://www.softwarepreservation.org/projects/c_plus_plus/index.html#release_e ... 450 pages of printout verified against the 1986 so as to minimize diffs. That resolves most of the 365 places printout got clipped and restores most of the spaces and tabs. Not all the files required for compilation were in the printout; stuff would have to be scavenged from the 1986 version and pulled back -- if necessary -- to the earlier dialect. Neither version is in a C++ dialect recognized today. It compiles itself and only the 1986 version has C files. If interested in doing work on self-compiling compilers; picoc can be found on the net -- a C interpreter. It is only about 4000 lines when in minimal configuration. However it is (self-described) legacy code and serious recoding and redesign of the data structures will be needed; particularly to remove the "God" objects that the entire parser; stack frame and lexer states were each wrapped up in. The parser is recursive descent with backtracking. But the grammar processed by it is not large enough to allow the interpreter to run itself. A large part of the complication is that it uses no byte-code compiling (but yet you gotta do something with the function bodies and loop bodies -- you'll have to look and see how it's handled.)