Path: csiph.com!weretis.net!feeder6.news.weretis.net!news.misty.com!news.iecc.com!.POSTED.news.iecc.com!nerds-end From: Roger L Costello Newsgroups: comp.compilers Subject: Are there different programming languages that are compiled to the same intermediate language? Date: Sun, 29 Jan 2023 15:49:14 +0000 Organization: Compilers Central Sender: johnl@iecc.com Approved: comp.compilers@iecc.com Message-ID: <23-01-078@comp.compilers> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 8bit Injection-Info: gal.iecc.com; posting-host="news.iecc.com:2001:470:1f07:1126:0:676f:7373:6970"; logging-data="12704"; mail-complaints-to="abuse@iecc.com" Keywords: translator, practice, comment Posted-Date: 29 Jan 2023 11:58:54 EST X-submission-address: compilers@iecc.com X-moderator-address: compilers-request@iecc.com X-FAQ-and-archives: http://compilers.iecc.com Thread-Topic: Are there different programming languages that are compiled to the same intermediate language? Thread-Index: Adkz+TvWa4zLl8W9Qd6ovtClKZpZrA== Accept-Language: en-US Content-Language: en-US authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=mitre.org; Xref: csiph.com comp.compilers:3346 Hi Folks, Programming_Language_1 has a compiler which generates Intermediate_Code_1. Many backends are created for Intermediate_Code_1. Time passes .... Sally Smith creates Programming_Language_2. Sally wants to leverage the compiler work done on Programming_Language_1. She considers two approaches: 1. Create a compiler front-end for Programming_Language_2 which compiles instances to Intermediate_Code_1. 2. Create a translator which converts instances of Programming_Language_2 into Programming_Language_1 instances. Sally is concerned. She asks herself: - With either approach, how do I prove that my mapping is correct? - For approach 1, how do I prove that the Intermediate_Code_1 that I generate is correct for my programming language? - For approach 2, how do I prove that the instance of Programming_Language_1 that I generate is semantically equivalent to my Programming_Language_2 instance?" What is the answer to Sally's questions? /Roger [I think the answer either way is that you don't, and you try to have a test suite that is as comprehensive as possible. -John]