tag:blogger.com,1999:blog-7300628612207511335.comments2023-05-25T09:42:03.827+02:00Hi LanguageMarco Devillershttp://www.blogger.com/profile/16403899539858486372noreply@blogger.comBlogger23125tag:blogger.com,1999:blog-7300628612207511335.post-6150368743737628292015-10-17T23:44:44.215+02:002015-10-17T23:44:44.215+02:00Hi Ruurd, thank you for your interest.
I started ...Hi Ruurd, thank you for your interest.<br /><br />I started a reimplementation of Hi in C++ as an interpreter for various reasons. I got a (Unicode) lexer, parser, and somewhat of a semantics checker finished but failed at getting the type system right.<br /><br />I am rewriting that project (somewhat slowly at the moment) towards an algebraic specification language aimed at implementing mathematical models.<br /><br />I will post a github link here once I make the decision to open-source it. I have some dim hopes at creating a product to make some money from it, but that'll likely not pan out.<br /><br />Thank you again for your interest, I'll make a note to inform you once I've got something to show (publicly).Marco Devillershttps://www.blogger.com/profile/16403899539858486372noreply@blogger.comtag:blogger.com,1999:blog-7300628612207511335.post-79076609354805529252015-10-17T10:03:04.105+02:002015-10-17T10:03:04.105+02:00Hi,
Will you post a link to the new blog in this ...Hi,<br /><br />Will you post a link to the new blog in this blog?<br />If so, there will be another last post.<br />If not, how can we find the new blog?Ruurdhttps://www.blogger.com/profile/03712864631816079117noreply@blogger.comtag:blogger.com,1999:blog-7300628612207511335.post-44696477605331276392012-09-21T01:22:42.590+02:002012-09-21T01:22:42.590+02:00I didn't notice you posted here. Python speed?...I didn't notice you posted here. Python speed? As far as I know, Python runs about 20 times slower than most interpreted languages... My current language has about unoptimized Javascript/Lisp speed, so I am not that interested. <br /><br />In case of the Hi compiler, speed isn't really the problem, it is the verbose representation of literals and the verbosity of the generated code which makes the language impractical at the moment.Marco Devillershttps://www.blogger.com/profile/16403899539858486372noreply@blogger.comtag:blogger.com,1999:blog-7300628612207511335.post-62832322476485641092012-08-08T11:16:06.020+02:002012-08-08T11:16:06.020+02:00A "missing link":
http://groups.google.c...A "missing link":<br />http://groups.google.com/group/elalangAnonymoushttps://www.blogger.com/profile/04884118891990891372noreply@blogger.comtag:blogger.com,1999:blog-7300628612207511335.post-40855315868427590202012-08-08T10:56:04.945+02:002012-08-08T10:56:04.945+02:00Ela runs on the top of its own virtual machine (st...Ela runs on the top of its own virtual machine (stack based), so it is basically an interpreted language (like, say, python). You shouldn't expect rocket speed from it, but, despite .Net, its performance is pretty comparable with other interpreted languages. For example, this article contains a small benchmark of "functional python" vs. ela:<br />http://www.codeproject.com/Articles/158068/Ela-functional-programming-language<br />That should be quite convincing :)<br /><br />If you want to prototype a functional language, Ela (or EIL, Ela byte code) might save you time. You can ask questions, in Ela news group:Anonymoushttps://www.blogger.com/profile/04884118891990891372noreply@blogger.comtag:blogger.com,1999:blog-7300628612207511335.post-35631738058910544832011-02-11T17:21:07.064+01:002011-02-11T17:21:07.064+01:00There is no clarity. Everyone seems to agree that ...There is no clarity. Everyone seems to agree that RC has too much overhead until it is implemented to speed up -mostly generational- GC.<br /><br />I don't like any of the solutions at the moment.Marco Devillershttps://www.blogger.com/profile/16403899539858486372noreply@blogger.comtag:blogger.com,1999:blog-7300628612207511335.post-3356453323629451812011-02-09T19:31:45.961+01:002011-02-09T19:31:45.961+01:00Without my hands in the guts of your implementatio...Without my hands in the guts of your implementation, my first response is to implement literals in the following manner. (using a generic ML/Haskell'ish syntax)<br /><br />datatype litval = LInt int | LStr str | LChr char | LFlt real | LUnit unit | LBool bool;<br /><br />datatype Term = ... | Lit litval | ...;<br /><br />Now you can ignore literal values except in those cases where you need to further destructure Lit term constructors. <br /><br />Just an idea, but certainly avoids relexing/parsing strings representing literal values.<br /> <br />- ScottChibaCityhttps://www.blogger.com/profile/17753686218282634738noreply@blogger.comtag:blogger.com,1999:blog-7300628612207511335.post-55140559659851813672011-02-09T19:23:15.606+01:002011-02-09T19:23:15.606+01:00It might be interesting to dig around for 1) RC ov...It might be interesting to dig around for 1) RC overhead for functional languages vs. imperative languages, if such literature exists; and 2) low compiler overhead "stupid RC tricks" to elide incr/decr operations where possible and convenient.ChibaCityhttps://www.blogger.com/profile/17753686218282634738noreply@blogger.comtag:blogger.com,1999:blog-7300628612207511335.post-48894894314349378042011-01-18T00:05:46.777+01:002011-01-18T00:05:46.777+01:00Hi Sterling, I posted two responses on that Reddit...Hi Sterling, I posted two responses on that Reddit thread. They threw up the question what Hi interfaces are, with my response below. I thought I would include it here since you might be interested.<br /><br /><em>I am the designer of the Hi language, which you should consider to be unfinished.<br />No, the Hi language doesn't have type classes a-la Haskell.<br />In Hi, terms describe values. A type describes the run-time 'shape' of a value, each value being associated with a type constructor. An interface is a predicate on a type constructor and describes abstractly a set of values to be associated with values produced by that constructor. An instance describes which specific values are associated with a specific type constructor instantiating a specific interface. (At least, that it is how it is supposed to work)<br />Hi interfaces are much weaker than Haskell type classes which allow to associate values with types (not values), and which have a different manner of associating values associated with specific types with other run-time values.<br />The closest approximation of Hi interfaces in terms of Haskell/type terminology would be type constructor classes. (Approximation since in Hi you need to 'peel of' a method of a value explicitly a-la Java, which in type constructor classes one doesn't need to, as far as I remember.)</em>Marco Devillershttps://www.blogger.com/profile/16403899539858486372noreply@blogger.comtag:blogger.com,1999:blog-7300628612207511335.post-29600595388830102682011-01-17T23:01:04.718+01:002011-01-17T23:01:04.718+01:00Ah nice, thanks! I will be really interested if th...Ah nice, thanks! I will be really interested if there is a non-phenomenonological answer to that.Marco Devillershttps://www.blogger.com/profile/16403899539858486372noreply@blogger.comtag:blogger.com,1999:blog-7300628612207511335.post-13269605353135268962011-01-15T03:28:59.620+01:002011-01-15T03:28:59.620+01:00FYI: I posted this to reddit and got some nice res...FYI: I posted this to reddit and got some nice responses: http://www.reddit.com/r/haskell/comments/f0zps/type_classes_in_plain_english/Unknownhttps://www.blogger.com/profile/09247125866499343326noreply@blogger.comtag:blogger.com,1999:blog-7300628612207511335.post-54113433789112333582010-11-06T20:46:56.901+01:002010-11-06T20:46:56.901+01:00I tried it again. Otherwise, just send me a mail a...I tried it again. Otherwise, just send me a mail at marco (dot) devillers (at) gmail (dot) com.Marco Devillershttps://www.blogger.com/profile/16403899539858486372noreply@blogger.comtag:blogger.com,1999:blog-7300628612207511335.post-5534173724105858532010-11-06T05:42:58.405+01:002010-11-06T05:42:58.405+01:00hmm, i dont think i got pinged. might've gott...hmm, i dont think i got pinged. might've gotten put in spam. i just emptied spam so i can't test that theory.<br /><br />could also just be that mail is store-and-forward and takes awhile to shuffle through the intertubes.John Zabroskihttps://www.blogger.com/profile/17294832205855394228noreply@blogger.comtag:blogger.com,1999:blog-7300628612207511335.post-5552446209281835362010-11-04T04:08:21.488+01:002010-11-04T04:08:21.488+01:00I send you a ping.I send you a ping.Marco Devillershttps://www.blogger.com/profile/16403899539858486372noreply@blogger.comtag:blogger.com,1999:blog-7300628612207511335.post-10637180117031219522010-11-02T01:14:25.142+01:002010-11-02T01:14:25.142+01:00Marco,
could you contact me at the e-mail address...Marco,<br /><br />could you contact me at the e-mail address in my LtU profile? [first name] [last name] at yahoo dot comJohn Zabroskihttps://www.blogger.com/profile/17294832205855394228noreply@blogger.comtag:blogger.com,1999:blog-7300628612207511335.post-74689163901493887212010-07-22T12:55:54.860+02:002010-07-22T12:55:54.860+02:00Caught in the act. Fixed, thanks.Caught in the act. Fixed, thanks.Marco Devillershttps://www.blogger.com/profile/16403899539858486372noreply@blogger.comtag:blogger.com,1999:blog-7300628612207511335.post-29033924493408451562010-07-22T12:52:26.560+02:002010-07-22T12:52:26.560+02:00I was tracing a bug which was, I thought, a variab...I was tracing a bug which was, I thought, a variable passing bug. So, I dumped some of the intermediate representations to see if all variables are translated and passed in the right fashion. For that, I needed to trace whether all combinators got the right arguments, hence color coding.<br /><br />It turned out just to be another silly mistake.Marco Devillershttps://www.blogger.com/profile/16403899539858486372noreply@blogger.comtag:blogger.com,1999:blog-7300628612207511335.post-10896086293003032412010-07-21T20:54:51.859+02:002010-07-21T20:54:51.859+02:00What are you trying to do here exactly?
You may w...What are you trying to do here exactly?<br /><br />You may want to write a parser that styles this for you automatically, by the way. Looks like from the brush strokes that this is done manually.John Zabroskihttps://www.blogger.com/profile/17294832205855394228noreply@blogger.comtag:blogger.com,1999:blog-7300628612207511335.post-27731033444900078002010-07-21T20:23:03.798+02:002010-07-21T20:23:03.798+02:00John Syme, or Don Syme?John Syme, or Don Syme?John Zabroskihttps://www.blogger.com/profile/17294832205855394228noreply@blogger.comtag:blogger.com,1999:blog-7300628612207511335.post-56909021714954607732009-11-24T07:44:08.616+01:002009-11-24T07:44:08.616+01:00I didn't think it over very well. And, actuall...I didn't think it over very well. And, actually, at the moment it is a really long time ago. Most of the extra eta's I introduced to mimic lazy semantics in an eager language, i.e. evaluation is deferred until an argument -usually unit- is supplied.<br /><br />Hyphenated identifiers? Uh, 'x-y'? No.Marco Devillershttps://www.blogger.com/profile/16403899539858486372noreply@blogger.comtag:blogger.com,1999:blog-7300628612207511335.post-50238148783966322932009-11-24T01:22:58.044+01:002009-11-24T01:22:58.044+01:00Hi Leon, guess I've seen you on LtU, I didn...Hi Leon, guess I've seen you on LtU, I didn't see you posted here, it doesn't show old remarks. <br /><br />Different treatment of tail calls is unnecessary given the translation scheme I use, a simple LC to combinators to C translation. I just push thunks/stack frames into the heap, there is no need to treat a tail call any different than any other recursive call.<br /><br />I am not going for optimum speed, I just need code which is maintainable and readable for _years_, before I obfuscate it for optimizations.<br /><br />I aim at developing a commercial product, ok, wishful thinking here, which means LLVM and C-- are out. C is widely understood, LLVM and C-- are back-ends I don't want to deal with. C has been there for -what- forty years or so, and I don't see it going away for another forty years. LLVM and C-- are nice, but, hey, C-- looked nearly dead last time I looked. LLVM is going strong, but will not be around in another few years.<br /><br />Anyway, as it stands, I produce very basic C code from a rather abstract assembly, which could be compiled rather trivially to other targets, but I am not going to make the effort.Marco Devillershttps://www.blogger.com/profile/16403899539858486372noreply@blogger.comtag:blogger.com,1999:blog-7300628612207511335.post-3774595608489841832009-05-04T03:59:00.000+02:002009-05-04T03:59:00.000+02:00Ever considered LLVM or C--? That would prevent y...Ever considered LLVM or C--? That would prevent you from having to write your own machine code generator, and make things such as the proper treatment of tail calls much easier to perform...Unknownhttps://www.blogger.com/profile/06462854866941248768noreply@blogger.comtag:blogger.com,1999:blog-7300628612207511335.post-23039076425585069222009-04-11T09:26:00.000+02:002009-04-11T09:26:00.000+02:00Why aren't you able to get your tree_to_colist...Why aren't you able to get your tree_to_colist function down to O(n) by using an "accumulator" to track your continuations:<BR/><BR/>def tree_to_colist: tree a -> colist a -> colist a = <BR/> [ leaf, xs -> xs <BR/> | branch l v r, xs -> tree_to_colist l (cocons v (tree_to_colist r xs)) ]<BR/><BR/>I'm also not quite clear why you need an eta-abstraction in the second case... but it's quite possible I'm missing something here.<BR/><BR/>And, I'll admit your syntax does look to be rather clean, and probably an improvement on other ML dialects and Haskell... but you might want to consider tweaking your lexical syntax to allow hyphenated-identifiers, which I find much more humane than ugly_underscores or camelCase. <BR/><BR/>Take care!Unknownhttps://www.blogger.com/profile/06462854866941248768noreply@blogger.com