From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=unavailable autolearn_force=no version=3.4.4 Path: border1.nntp.dca3.giganews.com!backlog3.nntp.dca3.giganews.com!border3.nntp.dca.giganews.com!border1.nntp.dca.giganews.com!nntp.giganews.com!news-out.readnews.com!transit3.readnews.com!news.glorb.com!us.feeder.erje.net!feeder.erje.net!eu.feeder.erje.net!gandalf.srv.welterde.de!news.jacob-sparre.dk!loke.jacob-sparre.dk!pnx.dk!.POSTED!not-for-mail From: Tero Koskinen Newsgroups: comp.lang.ada Subject: Re: Augusta: An open source Ada 2012 compiler (someday?) Date: Wed, 19 Mar 2014 20:56:46 +0200 Organization: Jacob Sparre Andersen Research & Innovation Message-ID: References: NNTP-Posting-Host: 87-95-26-75.bb.dnainternet.fi Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Trace: loke.gir.dk 1395255413 9217 87.95.26.75 (19 Mar 2014 18:56:53 GMT) X-Complaints-To: news@jacob-sparre.dk NNTP-Posting-Date: Wed, 19 Mar 2014 18:56:53 +0000 (UTC) User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:24.0) Gecko/20100101 Thunderbird/24.4.0 In-Reply-To: X-Original-Bytes: 3274 Xref: number.nntp.dca.giganews.com comp.lang.ada:185200 Date: 2014-03-19T20:56:46+02:00 List-Id: 19.3.2014 15:24, Peter Chapin wrote: > Accordingly I started a pet project for myself to build an Ada 2012 > compiler from the ground up which I'm calling "Augusta." ... > The project is just a hobby project and its *real* purpose is to > provide me with a source of entertainment in my off hours. ... > For example Augusta will be written in Scala and will target LLVM. Me too! (Started to write a compiler as a hobby.) Except that I selected Clojure instead of Scala, the compiler backend is totally custom and the frontend language isn't Ada, but instead very simple procedural language with some of the keywords and syntax borrowed from Ada [1]. Thanks to having a language built on top of JVM and therefore able to use Java tools easily, I have also built parser with Antlr 4 [2]. Combined with Antlr 4 these new "JVM languages" are quite good for prototyping various areas of compiler design. You get results quick enough that you don't get bored. As a downside, (with Clojure) the code is unmaintainable mess of parenthesis: (letfn [(has-i [i s] (some (fn [x] (= (last x) i)) s)) (find-first [pred coll] (first (filter pred coll)))] ...) [3] What comes to Ada compilers, it is nice to always see someone to start a new open source Ada compiler to "compete" with GNAT (or just for hobby), however in the history all of the earlier attempts have sadly failed. Open source Ada community might be too small and diverse for such a project. One alternative approach could be to persuade one of the existing Ada vendors to open source their compiler; perhaps even create a (kickstarter) project to collect the money required for it. (Like it was done for Blender.[4]) > Peter Yours, Tero [1] Example program at https://bitbucket.org/tkoskine/antlr-ir/src/2fb34374ea8ded16ae6cc7769d7ce5536f65193f/examples/main.ir?at=default [2] https://bitbucket.org/tkoskine/antlr-ir/src/2fb34374ea8ded16ae6cc7769d7ce5536f65193f/IR.g4?at=default [3] https://bitbucket.org/tkoskine/antlr-ir/src/2fb34374ea8ded16ae6cc7769d7ce5536f65193f/src/ir/gen_amd64.clj?at=default#cl-467 [4] https://en.wikipedia.org/wiki/Blender_%28software%29#History