<div dir="ltr"><div class="gmail_default" style="font-family:monospace,monospace">Haskell's "Maybe t" is essentially the same as ML's "'t option".</div><div class="gmail_default" style="font-family:monospace,monospace">ECMA Eiffel has a distinction between "T" and "T?" types which</div><div class="gmail_default" style="font-family:monospace,monospace">is related.  The idea of a compiler system with multiple front-</div><div class="gmail_default" style="font-family:monospace,monospace">ends for dissimilar languages goes back to Burroughs (where</div><div class="gmail_default" style="font-family:monospace,monospace">type checking applied cross-language) and to Univac (where several</div><div class="gmail_default" style="font-family:monospace,monospace">languages used the same back end) and with multiple source languages sharing a common IR with multiple target-specific</div><div class="gmail_default" style="font-family:monospace,monospace">back ends goes back at least to the Amsterdam Compiler Kit. Back</div><div class="gmail_default" style="font-family:monospace,monospace">in 1984 the idea of retaining code in an intermediate form until</div><div class="gmail_default" style="font-family:monospace,monospace">it was about to be executed with so far from novel that I used it</div><div class="gmail_default" style="font-family:monospace,monospace">in a design.  JIT compiling goes back at least to Brown's "throw-</div><div class="gmail_default" style="font-family:monospace,monospace">away compiling" for BASIC (compact IR, bulky native code compiled</div><div class="gmail_default" style="font-family:monospace,monospace">into a smallish buffer at need and periodically thrown away) and</div><div class="gmail_default" style="font-family:monospace,monospace">commercial Smalltalk systems.  (And there is at least one Smalltalk</div><div class="gmail_default" style="font-family:monospace,monospace">out there with Lisp and Prolog syntax on offer as well.)  Then there</div><div class="gmail_default" style="font-family:monospace,monospace">is the Poplog system, which incrementally compiled ML, Common Lisp</div><div class="gmail_default" style="font-family:monospace,monospace">(CLtL1 vintage), Pop-11, and Prolog, all quite different looking</div><div class="gmail_default" style="font-family:monospace,monospace">(and Pop-11 being arguably OO), into a common IR, with native code generation for multiple target processors.</div><div class="gmail_default" style="font-family:monospace,monospace"><br></div><div class="gmail_default" style="font-family:monospace,monospace">There may well be innovative things in Swift, but nothing in this</div><div class="gmail_default" style="font-family:monospace,monospace">thread would have seemed novel 30 years ago.</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, 31 Jan 2019 at 16:54, Saurabh Nanda <<a href="mailto:saurabhnanda@gmail.com">saurabhnanda@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="auto"><div class="gmail_quote" dir="auto"><div dir="ltr"><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div><br></div><div>Are the patents each not effectively processor-specific?</div></blockquote></div><div dir="auto"><br></div><div dir="auto">Alfred, if you're saying this because of the following clause in the independent claim... </div><div dir="auto"><br></div><div dir="auto">> <span style="font-family:sans-serif;font-size:12.8px">compiling the first and second intermediate representations using a back-end compiler that is specific to a target processor.</span></div><div dir="auto"><span style="font-family:sans-serif;font-size:12.8px"><br></span></div><div dir="auto"><span style="font-family:sans-serif">...then I'm not so sure, because isn't every backend compiler specific to an architecture/processor? </span><br></div><div class="gmail_quote" dir="auto"></div></div>
_______________________________________________<br>
Haskell-Cafe mailing list<br>
To (un)subscribe, modify options or view archives go to:<br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe</a><br>
Only members subscribed via the mailman list are allowed to post.</blockquote></div>