<div dir="ltr"><span style="font-size:12.8000001907349px">I guess it depends on your level of skills, but source to source compilers aren't that challenging. The more important point is that exercise might focus Jay's mind on the the complexity and desirability of those features. It's all fine talking about them in the abstract, it's completely different when you get down to brass tacks.</span><br></div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Jun 5, 2015 at 1:24 AM, Elmar Stellnberger <span dir="ltr"><<a href="mailto:estellnb@elstel.org" target="_blank">estellnb@elstel.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Am 04.06.15 um 20:32 schrieb Darko Volaric:<span class=""><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
You really should try writing your own language, it's really not that hard.<br>
</blockquote></span>
Darko, you are dreaming. Writing a small demo compiler may be one weeks job.<br>
However writing something that implements all that your hart desires will be<br>
very hard to do if at all doable for a single person.<span class=""><br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
M3 will never give you satisfaction. You've already implemented a C back end and no doubt have an idea of how a compiler works.<br>
<br>
As for language features, I think we should be looking for features to remove.<br>
<br>
</blockquote></span>
Jay, with a little more time I would have been at your side in a first place!<br>
A couple of years ago I had some own plans for a M3/Pascal like language<br>
with similar or even more venturous properties.<span class=""><br>
<br>
  1) operator overloading -- C++<br>
  2) templates with type deduction (i.e. C++ function templates, not just class templates or generic modules) -- C++<br>
  3) a small easy to understand language -- not C++, maybe Modula-3<br>
  4) a small easy to understand compiler (m3front I don't understand) -- nowhere<br>
  5) fast compilation -- Modula-3<br>
  6) optional safey -- Modula-3<br>
  7) multiple inheritance, at least of "interfaces" -- C++<br>
  8) optionally stack or inline allocation of "classes"/"objects" -- C++<br>
  9) clear choice of build system -- Modula-3 perhaps<br>
  10) locals with destructors -- C++<br>
  11) clear portable choice for remoting/RPC  -- Modula-3 perhaps<br>
  12) needs backend work -- Modula-3 perhaps<br>
  13) a small easty to understand backend -- Modula-3 perhaps kinda sorta<br>
  14) ?safety w/o garbage collection? -- rust??<br>
  15) static compilation for type checking -- C++, Modula-3, Java, Go, C#. Not Python/Perl/Ruby/Erlang/sh/Tcl.<br>
  16) static compilation to native code, maybe -- C++ and Modula-3!  Go? Net.Native?<br>
  17) non-virtual member functions -- not C or Modula-3<br>
  18) virtual member functions -- C++, Modula-3<br>
  19) safe numbers? Scheme?? C++ w/ library? (with operator overloading)<br>
  20) clear/portable choice for threads -- Modula-3, C++14? Java. Geez C++ was late here.<br>
  21) clear/portable choice for interlocked -- Win32, msvc gcc; Modula-3 and C are decades late.<br>
  22) good string library<br>
  23) good regex library<br>
<br></span>
Nonetheless I wanna see what can be done with Modula-3 in its current state. -<br>
and I believe it already offers some interesting properties compared to C like<br>
f.i. range checking and better type safety which could make a difference for<br>
security relevant projects like f.i. a web browser. The only thing that would be<br>
necessary for such a project was a *** well tested and ready-to-use shipped ***<br>
GUI toolkit ...<br>
<br>
</blockquote></div><br></div>