comp.lang.ada
 help / color / mirror / Atom feed
From: Peter Chapin <PChapin@vtc.vsc.edu>
Subject: Re: ANN: Kickstarter for beginning work on a new open-source Compiler
Date: Wed, 19 Mar 2014 09:02:02 -0400
Date: 2014-03-19T09:02:02-04:00	[thread overview]
Message-ID: <fKSdnQj47oHXCLTO4p2dnAA@giganews.com> (raw)
In-Reply-To: <b750be91-adb8-4630-90a2-ae700a3e9e67@googlegroups.com>

I think the proposal is interesting and I would love to see it succeed.
 Maciej Sobczak is concerned about the tool isolation that might arise
by storing program information in a database of ASTs (or similar). I can
see how that might be a problem. An IDE of the proposed nature would
definitely require a robust way to import/export traditional source
text. A user of such an IDE could then still use traditional version
control systems, CI systems, documentation generators, etc.

I understand that environments such as the one proposed have been
attempted before. However, just because they didn't work well in the
past doesn't mean this attempt must necessarily fail. This attempt could
take lessons from the other systems and, perhaps, avoid or work around
the issues that caused problems in the past.

The proposal is very ambitious because it provides both a complex IDE
and a compiler for Ada 2012. Either one of those projects would be
daunting on its own. To the OP: have you considered ways of having the
IDE interact with existing compilers? Ada, in particular, does have an
ASIS standard that can guide, to some extent, the design of abstract
program representations.

I ask this because I have a pet project of my own to write an Ada 2012
compiler from scratch. I will post more about that in another thread to
avoid hijacking this one. However, my vision follows the lead of clang,
Microsoft's Roslyn C# compiler, and to a lesser extent the Scala
compiler. Modern compilers, I believe, should not just slurp up text and
output object code. Instead they should be provided as a collection of
well documented libraries that can be directly loaded into other
applications. This allows applications, such as IDEs, to exchange
information with the compiler using abstract representations while at
the same time keeping both projects well isolated. See the clang
documentation for what I believe is the right way to do it.

Thus as a potential Ada 2012 compiler writer I ask: what sort of APIs
would be useful if one wanted to split off the code analysis and
generation from the IDE itself and move it into a separately developed
library?

Peter

  reply	other threads:[~2014-03-19 13:02 UTC|newest]

Thread overview: 71+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-03-18 23:23 ANN: Kickstarter for beginning work on a new open-source Compiler Shark8
2014-03-19  9:06 ` Maciej Sobczak
2014-03-19 13:02   ` Peter Chapin [this message]
2014-03-19 13:48     ` Dmitry A. Kazakov
2014-03-19 22:11       ` Randy Brukardt
2014-03-20 14:56         ` Robert A Duff
2014-03-19 21:59     ` Randy Brukardt
2014-03-19 22:03     ` Randy Brukardt
2014-03-20 20:41       ` Shark8
2014-03-20 23:04         ` Randy Brukardt
2014-03-20  0:12     ` Luke A. Guest
2014-03-20  0:36       ` Peter Chapin
2014-03-20  0:52         ` Luke A. Guest
2014-03-20 12:10       ` Simon Wright
2014-03-20 12:45         ` Luke A. Guest
2014-03-20 13:22           ` Simon Wright
2014-03-20 14:13             ` Luke A. Guest
2014-03-20 14:17             ` J-P. Rosen
2014-03-21  2:13               ` Lucretia
2014-03-21  5:23                 ` J-P. Rosen
2014-03-21  5:33                   ` Lucretia
2014-03-21  6:43                     ` J-P. Rosen
2014-03-21 22:51                     ` Randy Brukardt
2014-03-22  1:13                       ` Luke A. Guest
2014-03-22  6:27                       ` Tero Koskinen
2014-03-22  7:02                         ` J-P. Rosen
2014-03-24 20:50                           ` Randy Brukardt
2014-03-24 22:42                             ` Qun-Ying
2014-03-25 15:16                               ` Tero Koskinen
2014-03-20 15:27         ` Robert A Duff
2014-03-20 21:06           ` Simon Wright
2014-03-21 16:07             ` Robert A Duff
2014-03-23 17:52               ` Simon Wright
2014-03-19 14:25 ` ANN: " Stephen Leake
2014-03-19 19:55   ` Shark8
2014-03-19 22:28     ` Randy Brukardt
2014-03-20 17:55       ` Shark8
2014-03-20 17:53         ` Dmitry A. Kazakov
2014-03-19 22:49     ` Brian Drummond
2014-03-20 10:21     ` Lucretia
2014-03-20 23:35     ` Stephen Leake
2014-03-21  8:17       ` Simon Wright
2014-03-23 21:14         ` erlo
2014-03-23 22:36           ` Simon Wright
2014-03-24 20:31             ` erlo
2014-03-19 21:04 ` Alan Browne
2014-03-19 22:22   ` Randy Brukardt
2014-03-20 20:30   ` Shark8
2014-03-21  2:18     ` Lucretia
2014-03-21 21:51       ` Shark8
2014-03-22  5:48         ` J-P. Rosen
2014-03-22  6:01           ` Jeffrey Carter
2014-03-24 21:03             ` Randy Brukardt
2014-03-22  9:14           ` Ludovic Brenta
2014-03-22 10:15             ` Pascal Obry
2014-03-22 10:25             ` Dirk Craeynest
2014-03-22 12:41               ` Niklas Holsti
2014-03-22 14:59                 ` Dirk Craeynest
2014-03-22 16:20                   ` Niklas Holsti
2014-03-22 17:05                     ` Ludovic Brenta
2014-03-24  6:41           ` Shark8
2014-03-24  6:16             ` Luke A. Guest
2014-03-22  8:38         ` ANN: " Dmitry A. Kazakov
2014-03-22 19:28       ` Stephen Leake
2014-03-22 20:39         ` Shark8
2014-03-24  1:16           ` Stephen Leake
2014-03-24  6:40             ` Shark8
2014-03-25 20:04               ` Stephen Leake
2014-03-25 20:30                 ` Dmitry A. Kazakov
2014-03-20 21:35 ` gautier_niouzes
2014-03-21 22:19   ` Shark8
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox