Path: csiph.com!weretis.net!feeder6.news.weretis.net!news.misty.com!news.iecc.com!.POSTED.news.iecc.com!nerds-end From: anton@mips.complang.tuwien.ac.at (Anton Ertl) Newsgroups: comp.compilers Subject: Re: Re: What attributes of a programming language simplify its implementation? RPN? Date: Wed, 16 Nov 2022 18:12:17 GMT Organization: Institut fuer Computersprachen, Technische Universitaet Wien Sender: news@iecc.com Approved: comp.compilers@iecc.com Message-ID: <22-11-021@comp.compilers> References: <22-09-026@comp.compilers> <22-10-025@comp.compilers> <29190_1668508275_63736A72_29190_327_1_22-11-007@comp.compilers> <22-11-009@comp.compilers> <22-11-013@comp.compilers> <22-11-015@comp.compilers> Injection-Info: gal.iecc.com; posting-host="news.iecc.com:2001:470:1f07:1126:0:676f:7373:6970"; logging-data="53407"; mail-complaints-to="abuse@iecc.com" Keywords: design, semantics Posted-Date: 16 Nov 2022 17:57:31 EST 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:3247 gah4 writes: >On Tuesday, November 15, 2022 at 1:15:04 PM UTC-8, minf...@arcor.de wrote: >> Citing its inventor Chuck Moore: >> "By permitting the program to dynamically modify its control language, >> we mark a qualitative change in capability. In a sense, our program >> has evolved into a meta-language which we apply to the application.” > >PostScript is also based on an RPN language interpreter, though I >am not sure that the above quotes apply in the same way. IMO it does. >One that I know about PostScript, and maybe not be true for Forth, >is the bind operator. Postscript uses run-time name binding (like Lisp), Forth binds the names statically. Postscript's bind makes Postscript more Forth-like, but note that it statically binds only operators (built-ins), names that are bound to non-operators are still resolved dynamically. >Before def, which defines a new operator, you can bind, which binds any >operators inside the new definition to their current value. (I believe it >also optimizes them to the address of the routine, saving the time for searching >for the name in a symbol table.) Yes, it replaces the names that are bound to operators in the definition with the operators. So there is no name lookup for those at run-time. >So we wrote a header with new macros, and which then redefined >def such that later macros wouldn't override them. >(I think we always called them macros, not operators, but I am not >sure by now what the right name is.) procedures >The Sun boot roms also use Forth, or something Forth-like as the >built-in control language. Yes, the base language of Open Firmware is Forth. - anton -- M. Anton Ertl anton@mips.complang.tuwien.ac.at http://www.complang.tuwien.ac.at/anton/