Path: csiph.com!goblin3!goblin.stu.neva.ru!news.misty.com!news.iecc.com!.POSTED.news.iecc.com!nerds-end From: luser droog Newsgroups: comp.compilers Subject: Re: implementation languages, was Supporting multiple input syntaxes Followup-To: alt.folklore.computers Date: Fri, 28 Aug 2020 10:56:15 -0700 (PDT) Organization: Compilers Central Lines: 88 Sender: news@iecc.com Approved: comp.compilers@iecc.com Message-ID: <20-08-019@comp.compilers> References: <20-08-002@comp.compilers> <20-08-009@comp.compilers> <20-08-010@comp.compilers> <20-08-011@comp.compilers> <20-08-012@comp.compilers> <20-08-014@comp.compilers> <20-08-015@comp.compilers> <20-08-017@comp.compilers> Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Injection-Info: gal.iecc.com; posting-host="news.iecc.com:2001:470:1f07:1126:0:676f:7373:6970"; logging-data="87046"; mail-complaints-to="abuse@iecc.com" Keywords: tools, comment Posted-Date: 29 Aug 2020 12:59:45 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:2571 On Monday, August 24, 2020 at 2:12:13 PM UTC-5, Thomas Koenig wrote: > luser droog schrieb: > > [PostScript] > > > But the language itself I just really enjoy. It's my "Lego blocks" > > language. The RPN syntax removes all ambiguity about precedence and > > sequencing. > > I recently had the doubtful pleasure of evaluating the formula > > x = ((a-b)*c^2+(-d^2+e^2-a^2+b^2)*c+a^2*b+(f^2-e^2-b^2)*a > +(-f^2+d^2)*b)/((-2*d+2*e)*c+(2*f-2*e)*a-2*b*(f-d)) > > in Postscript. (Yes, really. Don't ask.) > In case you need it, I've got a PostScript debugger that can single step into loops and procedures. https://github.com/luser-dr00g/debug.ps $ gsnd db5.ps GPL Ghostscript 9.52 (2020-03-19) Copyright (C) 2020 Artifex Software, Inc. All rights reserved. This software is supplied under the GNU AGPLv3 and comes with NO WARRANTY: see the file COPYING for details. GS>{ 0 0 1 5 { add } for } stepon traceon debug %|- 0 %|- 0 0 %|- 0 0 1 %|- 0 0 1 5 %|- 0 0 1 5 {add} %|- 0 0 1 5 {add} for nametype object for step: (continue|next|bypass|step|prompt|quit)?s %|- 0 0 add nametype object add step: (continue|next|bypass|step|prompt|quit)? %|- 0 1 %|- 0 1 1 %|- 0 1 1 5 %|- 0 1 1 5 {add} %|- 0 1 1 5 {add} for nametype object for step: (continue|next|bypass|step|prompt|quit)? %|- 0 1 add nametype object add step: (continue|next|bypass|step|prompt|quit)? %|- 1 2 %|- 1 2 1 %|- 1 2 1 5 %|- 1 2 1 5 {add} %|- 1 2 1 5 {add} for nametype object for step: (continue|next|bypass|step|prompt|quit)? %|- 1 2 add nametype object add step: (continue|next|bypass|step|prompt|quit)? %|- 3 3 %|- 3 3 1 %|- 3 3 1 5 %|- 3 3 1 5 {add} %|- 3 3 1 5 {add} for nametype object for step: (continue|next|bypass|step|prompt|quit)? %|- 3 3 add nametype object add step: (continue|next|bypass|step|prompt|quit)? %|- 6 4 %|- 6 4 1 %|- 6 4 1 5 %|- 6 4 1 5 {add} %|- 6 4 1 5 {add} for nametype object for step: (continue|next|bypass|step|prompt|quit)? %|- 6 4 add nametype object add step: (continue|next|bypass|step|prompt|quit)? %|- 10 5 %|- 10 5 1 %|- 10 5 1 5 %|- 10 5 1 5 {add} %|- 10 5 1 5 {add} for nametype object for step: (continue|next|bypass|step|prompt|quit)? %|- 10 5 add nametype object add step: (continue|next|bypass|step|prompt|quit)? %|- 15 6 %|- 15 6 1 %|- 15 6 1 5 %|- 15 6 1 5 {add} %|- 15 6 1 5 {add} for nametype object for step: (continue|next|bypass|step|prompt|quit)? GS<1>== 15 GS>quit [This is drifting rather far from compilers now. -John]